matlab数值分析程序--高等数学,数值代数的matlab实现-文字版, matlab电子书, 和matlab 有关的电子书:

5.2.2 幂法的MATLAB程序

5.2.2  幂法的MATLAB程序

用幂法计算矩阵的主特征值和对应的特征向量的MATLAB主程序

function [k,lambda,Vk,Wc]=mifa(A,V0,jd,max1)

lambda=0;k=1;Wc =1; ,jd=jd*0.1;state=1; V=V0;

while((k<=max1)&(state==1))

Vk=A*V; [m j]=max(abs(Vk)); mk=m;

tzw=abs(lambda-mk); Vk=(1/mk)*Vk;

Txw=norm(V-Vk); Wc=max(Txw,tzw); V=Vk;lambda=mk;state=0;

if(Wc>jd)

state=1;

end

k=k+1;Wc=Wc;

end

if(Wc<=jd)

disp('请注意:迭代次数k,主特征值的近似值lambda,主特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:') 

else

disp('请注意:迭代次数k已经达到最大迭代次数max1,主特征值的迭代值lambda,主特征向量的迭代向量Vk,相邻两次迭代的误差Wc如下:')    

end

 Vk=V;k=k-1;Wc;

 

例5.2.2  用幂法计算下列矩阵的主特征值和对应的特征向量的近似向量,精度.并把(1)和(2)输出的结果与例5.1.1中的结果进行比较.

(1); (2);(3);(4).

解  (1)输入MATLAB程序

>>A=[1 -1;2 4]; V0=[1,1]';

 [k,lambda,Vk,Wc]=mifa(A,V0,0.00001,100),

[V,D] = eig (A), Dzd=max(diag(D)), wuD= abs(Dzd- lambda), wuV=V(:,2)./Vk,

运行后屏幕显示结果

请注意:迭代次数k,主特征值的近似值lambda,主特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:

k =         lambda =                    Wc =

    33             3.00000173836804       8.691862856124999e-007

Vk =                       V =                                wuV =

-0.49999942054432   -0.70710678118655  0.44721359549996   -0.89442822756294

1.00000000000000   0.70710678118655   -0.89442719099992   -0.89442719099992

Dzd =      wuD =                          

     3       1.738368038406435e-006         

由输出结果可看出,迭代33次,相邻两次迭代的误差Wc 8.69 19e-007,矩阵的主特征值的近似值lambda3.000 00和对应的特征向量的近似向量Vk (-0.500 00,1.000 00,lambda与例5.1.1中的最大特征值近似相等,绝对误差约为1.738 37e-006,Vk与特征向量 的第1个分量的绝对误差约等于0,第2个分量的绝对值相同.由wuV可以看出,的特征向量V(:,2) 与Vk的对应分量的比值近似相等.因此,用程序mifa.m计算的结果达到预先给定的精度.

 

(2) 输入MATLAB程序

>>B=[1 2 3;2 1 3;3 3 6]; V0=[1,1,1]';

[k,lambda,Vk,Wc]=mifa(B,V0,0.00001,100), [V,D] = eig (B),

Dzd=max(diag(D)), wuD= abs(Dzd- lambda), wuV=V(:,3)./Vk,

运行后屏幕显示结果

请注意:迭代次数k,主特征值的近似值lambda,主特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:

k =         lambda =      Wc =     Dzd =      wuD =

   3                9          0         9           0

Vk =                       wuV =

   0.50000000000000            0.81649658092773

   0.50000000000000            0.81649658092773

   1.00000000000000            0.81649658092773

V =

   0.70710678118655   0.57735026918963   0.40824829046386

  -0.70710678118655   0.57735026918963   0.40824829046386

                   0  -0.57735026918963   0.81649658092773

 

 

 (3) 输入MATLAB程序

>> C=[1 2 2;1 -1 1;4 -12 1];V0=[1,1,1]';

[k,lambda,Vk,Wc]=mifa(C,V0,0.00001,100), [V,D] = eig (C),

Dzd=max(diag(D)), wuD=abs(Dzd-lambda),

Vzd=V(:,1),wuV=V(:,1)./Vk,

运行后屏幕显示

请注意:迭代次数k已经达到最大迭代次数max1,主特征值的迭代值lambda,主特征向量的迭代向量Vk,相邻两次迭代的误差Wc如下:

k =      lambda =            Wc =        

 100       0.09090909090910   2.37758124193119     

Dzd =                      wuD =

   1.00000000000001            0.90909090909091

Vk=                   Vzd =                  wuV =

0.99999999999993      0.90453403373329        0.90453403373335

0.99999999999995      0.30151134457776        0.30151134457778

1.00000000000000     -0.30151134457776       -0.30151134457776

由输出结果可见,迭代次数k已经达到最大迭代次数max1=100,并且lambda的相邻两次迭代的误差Wc2.377 58>2,由wuV可以看出,lambda的特征向量Vk与真值Dzd的特征向量Vzd对应分量的比值相差较大,所以迭代序列发散.实际上,实数矩阵C的特征值的近似值为,并且对应的特征向量的近似向量分别为=(0.90453403373329,0.30151134457776,-0.30151134457776)

*(-0.72547625011001,-0.21764287503300-0.07254762501100i,

 0.58038100008801-0.29019050004400i)

*( -0.72547625011001, -0.21764287503300 + 0.07254762501100i,

 0.58038100008801 + 0.29019050004400i) 是常数).

 

(4)输入MATLAB程序

>> D=[-4 14 0;-5 13 0;-1 0 2]; V0=[1,1,1]';

[k,lambda,Vk,Wc]=mifa(D,V0,0.00001,100), [V,Dt] =eig (D),

Dtzd=max(diag(Dt)), wuDt=abs(Dtzd-lambda),

 Vzd=V(:,2),wuV=V(:,2)./Vk,

运行后屏幕显示结果

请注意:迭代次数k,主特征值的近似值lambda,主特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:

k =    lambda =              Wc =

  19     6.00000653949528    6.539523793591684e-006

Dtzd =                       wuDt =

   6.00000000000000          6.539495284840768e-006

Vk =                  Vzd =                 wuV =

0.79740048053564   0.79740048053564     0.79740048053564

   0.71428594783886   0.56957177181117     0.79740021980618

  -0.24999918247180   -0.19935012013391    0.79740308813370


欢迎转载,转载请注明来自一手册:http://yishouce.com/book/3/3050202.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1