资源描述
第五章 矩阵的特征值与特征向量的计算
在自然科学和工程设计中的许多问题,如电磁振荡、桥梁振动、机械振动等,常归结为求矩阵的特征值和特征向量.求矩阵的特征值和特征向量的问题是代数计算中的重要课题.本章着重介绍直接计算矩阵的特征值和特征向量的MATLAB程序、间接计算矩阵的特征值和特征向量的幂法、反幂法、雅可比方法、豪斯霍尔德方法和QR方法及其它们的MATLAB计算程序.最后我们还讨论广义特征值问题.
5.1 直接计算特征值和特征向量的MATLAB程序
5.1.4 计算特征值和特征向量的MATLAB程序
从以上的讨论可以看到,有许多问题归结为求矩阵的特征值和特征向量,而用手工计算高阶矩阵的特征值与特征向量的难度较大,但是,计算机软件MATLAB提供了直接计算特征值与特征向量的MATLAB函数 (见表5–1),下面介绍这些函数的使用方法.
表5–1
命 令
功 能
b = eig(A)
输入方阵A,运行后输出b为由方阵A的全部特征值构成的列向量
[V,D] = eig (A)
输入对称矩阵A,运行后输出D为由A的全部特征值构成的对角矩阵,V的各列为对应于特征值的特征向量构成的矩阵,使得AV = DV
[V,D] = eig (A,'nobalance')
输入方阵A,运行后输出D为由A的全部特征值构成的对角矩阵,V的各列为对应于特征值的特征向量构成的矩阵,使得AV = DV;如果A是对称矩阵,则输出的结果与程序 [V,D] = eig (A)的运行结果相同
5.2 幂法及其MATLAB程序
幂法是求实矩阵的主特征值(即实矩阵按模最大的特征值)及其对应的特征向量的一种迭代方法.
5.2.2 幂法的MATLAB程序
设阶实矩阵的个特征值为,且满足,的主特征值对应的特征向量为,则我们可以用下面的MATLAB程序计算和的近似值和近似向量.
用幂法计算矩阵的主特征值和对应的特征向量的MATLAB主程序
输入的量:阶实矩阵、维初始实向量V0、计算要求的精度jd、迭代的最大次数max1;
输出的量:迭代的次数k、的主特征值的近似值lambda、对应的特征向量的近似向量Vk、相邻两次迭代的误差Wc.如果迭代次数已经达到最大的迭代次数max1,则给出提示的相关信息.
根据迭代公式(5.20),现提供用幂法计算矩阵的主特征值和对应的特征向量的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次,相邻两次迭代的误差Wc=0,实对称矩阵B的主特征值的近似值lambda=9和对应的特征向量的近似向量Vk =(0.500 00,0.500 00,1.000 00,lambda与例5.1.1中的最大特征值相同,Vk与特征向量 的对应分量成比例.从wuV的每个分量的值也可以看出,的特征向量V(:,3) 与Vk的对应分量的比值相等.因此,用程序mifa.m计算的结果达到预先给定的精度.
此例说明,幂法对实对称矩阵的迭代速度快且计算结果精度高,
(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
由输出结果可见,迭代19次,相邻两次迭代的误差Wc6.539 52e-006,矩阵D的主特征值的近似值lambda6.000 01和对应的特征向量的近似向量为Vk (0.797 40,0.714 29,-0.250 00.用eig(A)计算,lambda与对应的特征值的真值Dtzd的绝对误差wuDt,二者的特征向量V(:,2) 与Vk的对应分量的比值近似相等(请对比wuV的每个分量的值).因此,用程序mifa.m计算的结果达到预先给定的精度.
由例5.2.2的计算结果可见,用幂法计算实对称矩阵的主特征值对应的特征向量时,得到的迭代序列的收敛速度最快且计算结果精度也最高;非实对称矩阵对应的迭代序列的敛散性不定,有时发散(例如矩阵C),有时收敛(例如矩阵A和D),且收敛速度较慢,比较(1)和(4)的计算结果可知,用幂法得到的迭代序列的收敛速度与矩阵的阶数无关;当实矩阵有复数特征值时,不宜用幂法计算它的主特征值对应的特征向量.
5.3 反幂法和位移反幂法及其MATLAB程序
反幂法是求非奇异矩阵的按模最小特征值及其对应的特征向量的一种迭代方法.
5.3.3 原点位移反幂法的MATLAB程序
设阶实矩阵的个特征值都不相同,且满足 ,且的按模最小特征值对应的特征向量为,则我们可以根据迭代公式(5.27)和(5.28)编写两种MATLAB程序分别计算和的近似值和近似向量.
(一) 原点位移反幂法的MATLAB主程序1
根据原点位移反幂法的迭代公式(5.28),现提供用原点位移反幂法计算矩阵的按模最小特征值和对应的特征向量的MATLAB主程序如下:
用原点位移反幂法计算矩阵的特征值和对应的特征向量的MATLAB主程序1
输入的量:阶实矩阵、维初始实向量V0、特征值的近似值jlamb、计算的精度jd、迭代的最大次数max1;
输出的量:迭代的次数k、的特征值的近似值lambdan、与对应的特征向量的近似向量Vk、相邻两次迭代的误差Wc.如果迭代次数已经达到最大的迭代次数max1,则给出提示的相关信息.
function [k,lambdan,Vk,Wc]=ydwyfmf(A,V0,jlamb,jd,max1)
[n,n]=size(A); A1=A-jlamb*eye(n); jd= jd*0.1;RA1=det(A1);
if RA1==0
disp('请注意:因为A-aE的n阶行列式hl等于零,所以A-aE不能进行Lu分解.')
return
end
lambda=0;
if RA1~=0
for p=1:n
h(p)=det(A1(1:p, 1:p));
end
hl=h(1:n);
for i=1:n
if h(1,i)==0
disp('请注意:因为A-aE的r阶主子式等于零,所以A-aE不能进行Lu分解.')
return
end
end
if h(1,i)~=0
disp('请注意:因为A-aE的各阶主子式都不等于零,所以A-aE能进行Lu分解.')
k=1;Wc =1;state=1; Vk=V0;
while((k<=max1)&(state==1))
[L U]=lu(A1); Yk=L\Vk;Vk=U\Yk; [m j]=max(abs(Vk));
mk=m;Vk1=Vk/mk; Yk1=L\Vk1;Vk1=U\Yk1;
[m j]=max(abs(Vk1)); mk1=m;Vk2=(1/mk1)*Vk1;tzw1=abs((mk-mk1)/mk1);
tzw2=abs(mk1-mk);Txw1=norm(Vk)-norm(Vk1);
Txw2=(norm(Vk)-norm(Vk1))/norm(Vk1);
Txw=min(Txw1,Txw2); tzw=min(tzw1,tzw2); Vk=Vk2;
mk=mk1; Wc=max(Txw,tzw); Vk=Vk2;mk=mk1;state=0;
if(Wc>jd)
state=1;
end
k=k+1;%Vk=Vk2,mk=mk1,
end
if(Wc<=jd)
disp('A-aE的秩R(A-aE)和各阶顺序主子式值hl、迭代次数k,按模最小特征值的近似值lambda,特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:')
else
disp('A-aE的秩R(A-aE)和各阶顺序主子式值hl、迭代次数k已经达到最大迭代次数max1,按模最小特征值的迭代值lambda,特征向量的迭代向量Vk,相邻两次迭代的误差Wc如下:')
end
hl,RA1
end
end
[V,D]=eig(A,'nobalance'),Vk;k=k-1;Wc;lambdan=jlamb+1/mk1;
例5.3.2 用原点位移反幂法的迭代公式(5.28),根据给定的下列矩阵的特征值的初始值,计算与对应的特征向量的近似向量,精确到0.000 1.
(1),;(2),;(3),.
解 (1)输入MATLAB程序
>> A=[1 -1 0;-2 4 -2;0 -1 2];V0=[1,1,1]';
[k,lambda,Vk,Wc]=ydwyfmf(A,V0,0.2,0.0001,10000)
运行后屏幕显示结果
请注意:因为A-aE的各阶主子式都不等于零,所以A-aE能进行Lu分解.
A-aE的秩R(A-aE)和各阶顺序主子式值hl、迭代次数k,按模最小特征值的近似值lambda,特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:
k = lambda = Wc = hl =
3 0.2384 1.0213e-007 0.8000 1.0400 0.2720
Vk = V = D =
1.0000 -0.2424 -1.0000 -0.5707 5.1249 0 0
0.7616 1.0000 -0.7616 0.3633 0 0.2384 0
0.4323 -0.3200 -0.4323 1.0000 0 0 1.6367
(2)输入MATLAB程序
>> A=[1 -1;2 4];V0=[20,1]';
[k,lambda,Vk,Wc]=ydwyfmf(A,V0,2.001,0.0001,100)
运行后屏幕显示结果
请注意:因为A-aE的各阶主子式都不等于零,所以A-aE能进行Lu分解.
A-aE的秩R(A-aE)和各阶顺序主子式值hl、迭代次数k,按模最小特征值的近似值lambda,特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:
k = lambda = Wc = hl =
2 2.0020 5.1528e-007 -1.0010 -0.0010
Vk = V = D =
1.0000 -1.0000 0.5000 2 0
-1.0000 1.0000 -1.0000 0 3
(3)输入MATLAB程序
>> A=[-11 2 15;2 58 3;15 3 -3];V0=[1,1,-1]';
[k,lambdan,Vk,Wc]=ydwyfmf(A,V0,8.26, 0.0001,100)
运行后屏幕显示结果
请注意:因为A-aE的各阶主子式都不等于零,所以A-aE能进行Lu分解.
A-aE的秩R(A-aE)和各阶顺序主子式值hl、迭代次数k,按模最小特征值的近似值lambda,特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:
k = lambdan= Wc = hl =
2 8.2640 6.9304e-008 -19.2600 -961.9924 -6.1256
Vk = V = D =
-0.7692 0.7928 0.6081 0.0416 -22.5249 0 0
0.0912 0.0030 -0.0721 0.9974 0 8.2640 0
-1.0000 -0.6095 0.7906 0.0590 0 0 58.2609
例 5.3.3 用原点位移反幂法的迭代公式(5.28),计算的分别对应于特征值,,的特征向量,,的近似向量,相邻迭代误差为0.001.将计算结果与精确特征向量比较,其中
0.999 999 999 999 97…,1.999 999 999 999 99…,4.000 000 000 000 02…,分别对应特征向量为
0.500 000 000 000 00,0.500 000 000 000 00,1.000 000 000 000 00,
-0.249 999 999 999 99,-0.500 000 000 000 00,-1.000 000 000 000 00,
-0.400 000 000 000 00,-0.600 000 000 000 00,-1.000 000 000 000 00.
解 (1)计算特征值对应的特征向量的近似向量.输入MATLAB程序
>> A=[0 11 -5;-2 17 -7;-4 26 -10];V0=[1,1,1]';
[k,lambda,Vk,Wc]= ydwyfmf(A,V0,1.001, 0.001,100),[V,D]=eig(A);
Dzd=min(diag(D)), wuD= abs(Dzd- lambda),VD=V(:,1),wuV=V(:,1)./Vk,
运行后屏幕显示结果
请注意:因为A-aE的各阶主子式都不等于零,所以A-aE能进行Lu分解.
A-aE的秩R(A-aE)和各阶顺序主子式值hl、迭代次数k,按模最小特征值的近似值lambda,特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:
hl =
-1.00100000000000 5.98500100000000 -0.00299600100000
k = lambda = RA1 =
5 1.00200000000000 -0.00299600100000
Vk = VD = wuV =
-0.50000000000000 -0.40824829046386 0.81649658092773
-0.50000000000000 -0.40824829046386 0.81649658092773
-1.00000000000000 -0.81649658092773 0.81649658092773
Wc = Dzd = wuD =
1.378794763695562e-009 1.00000000000000 0.00200000000000
从输出的结果可见,迭代5次,特征向量的近似向量的相邻两次迭代的误差Wc1.379 e-009,由wuV可以看出,= Vk与VD 的对应分量的比值相等.特征值的近似值lambda 1.002与初始值1.001的绝对误差为0.001,而与的绝对误差为0.002,其中
,
.
(2)计算特征值对应特征向量的近似向量.
输入MATLAB程序
>> A=[0 11 -5;-2 17 -7;-4 26 -10];V0=[1,1,1]';
[k,lambda,Vk,Wc]=ydwyfmf(A,V0,2.001, 0.001,100) ,
[V,D]=eig(A); WD=lambda-D(2,2),VD=V(:,2),wuV=V(:,2)./Vk,
运行后屏幕显示结果
请注意:因为A-aE的各阶主子式都不等于零,所以A-aE能进行Lu分解.
A-aE的秩R(A-aE)和各阶顺序主子式值hl、迭代次数k,按模最小特征值的近似值lambda,特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:
hl =
-2.00100000000000 -8.01299900000000 0.00200099900000
k = Wc = lambda = WD =
2 3.131363162302120e-007 2.00200000000016 0.00200000000016
Vk = VD = wuV =
-0.24999999999999 0.21821789023599 -0.87287156094401
-0.49999999999999 0.43643578047198 -0.87287156094398
-1.00000000000000 0.87287156094397 -0.87287156094397
从输出的结果可见,迭代2次,特征向量的近似向量的相邻两次迭代的误差Wc3.131e-007,与的对应分量的比值近似相等.特征值的近似值lambda2.002与初始值2.001的绝对误差约为0.001,而lambda与的绝对误差约为0.002,其中
,
.
(3)计算特征值对应特征向量的近似向量.输入MATLAB程序
>> A=[0 11 -5;-2 17 -7;-4 26 -10];V0=[1,1,1]';
[k,lambda,Vk,Wc]=ydwyfmf(A,V0,4.001, 0.001,100)
[V,D]=eig(A); WD=lambda-max(diag(D)),VD=V(:,3),wuV=V(:,3)./Vk,
运行后屏幕显示结果
请注意:因为A-aE的各阶主子式都不等于零,所以A-aE能进行Lu分解.
A-aE的秩R(A-aE)和各阶顺序主子式值hl、迭代次数k,按模最小特征值的近似值lambda,特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:
hl =
-4.00100000000000 -30.00899900000000 -0.00600500099999
k = lambda = Wc = WD =
2 4.00199999999990 1.996084182914842e-007 0.00199999999990
Vk = VD = wuV =
0.40000000000001 -0.32444284226153 -0.81110710565380
0.60000000000001 -0.48666426339229 -0.81110710565381
1.00000000000000 -0.81110710565381 -0.81110710565381
从输出的结果可见,迭代2次,特征向量的近似向量的相邻两次迭代的误差Wc1.996e-007,与的对应分量的比值近似相等.特征值的近似值的绝对误差近似为,而lambda与的绝对误差约为0.002,其中
-0.400 000 000 000 00,-0.600 000 000 000 00,-1.000 000 000 000 00,
.
综上所述,用原点位移反幂法的迭代公式(5.28)求矩阵的全部特征值分别对应特征向量的收敛速度快,且精确度高.但是求矩阵的全部特征值的结果不理想.
(二)、原点位移反幂法的MATLAB主程序2
根据迭代公式(5.27),我编写用原点位移反幂法计算矩阵的按模最小特征值和对应的特征向量的MATLAB主程序如下:
用原点位移反幂法计算矩阵的特征值和对应的特征向量的MATLAB主程序2
输入的量:阶实矩阵、维初始实向量V0、特征值的近似值jlambn、计算的精度jd、迭代的最大次数max1.
输出的量:迭代的次数k、的特征值的近似值lambdan、对应的特征向量的近似向量Vk、相邻两次迭代的误差Wc.如果迭代次数已经达到最大的迭代次数max1,则给出提示的相关信息.
function [k,lambdan,Vk,Wc]=wfmifa1(A,V0,jlamb,jd,max1)
[n,n]=size(A); jd= jd*0.1;A1=A-jlamb*eye(n);nA1=inv(A1);
lambda1=0;k=1;Wc =1;state=1; U=V0;
while((k<=max1)&(state==1))
Vk=A1\U; [m j]=max(abs(Vk)); mk=m; Vk=(1/mk)*Vk; Vk1=A1\Vk;
[m1 j]=max(abs(Vk1)); mk1=m1,Vk1=(1/mk1)*Vk1;U=Vk1,
Txw=(norm(Vk1)-norm(Vk))/norm(Vk1);
tzw=abs((lambda1-mk1)/mk1);
Wc=max(Txw,tzw); lambda1=mk1;state=0;
if(Wc>jd)
state=1;
end
k=k+1;
end
if(Wc<=jd)
disp('请注意迭代次数k,特征值的近似值lambda,对应的特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:')
else
disp('请注意迭代次数k已经达到最大迭代次数max1, 特征值的近似值lambda,对应的特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:')
end
[V,D] =eig(A,'nobalance'), Vk=U;k=k-1;Wc;lambdan=jlamb+1/mk;
例5.3.4 用原点位移反幂法的迭代公式(5.27),计算例题5.3.3,并且将这两个例题的计算结果进行比较.再用两种原点位移反幂法的MATLAB主程序,求对应的特征向量.
解 (1)计算特征值对应特征向量的近似向量.
输入MATLAB程序
>> A=[0 11 -5;-2 17 -7;-4 26 -10];V0=[1,1,1]';
[k,lambda,Vk,Wc]=wfmifa1(A,V0,1.001,0.001,100)
运行后屏幕显示结果
请注意迭代次数k,特征值的近似值lambda,对应的特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:
k = lambda = Wc =
5 1.00200000000138 1.376344154436924e-006
Vk’ = -0.50000000000000 -0.50000000000000 -1.00000000000000
同理可得,另外与两个特征值对应的特征向量,将计算结果列表5–3.
表5–3 例题5.3.3和例题5.3.4计算结果比较
由(5.27)式计算结果
由(5.28)式计算结果
迭代次数k
和其近似向量Vk
的相邻迭代误差Wc
和其近似值lambda
k = 5
=(0.500, 0.500, 1.000)
Vk=(-0.500, -0.500, -1.000)
Wc = 1.376 344 154 436 924e-006
lambda=1.002 000 000 001 38
k = 5
= (0.500, 0.500, 1.000)
Vk=(-0.500, -0.500, -1.000)
Wc =1.378 794 763 695 562e-009
lambda=1.002 000 000 000 00
迭代次数k
和其近似向量Vk
的相邻迭代误差Wc
和其近似值lambda
k = 2
=(-0.250, -0.500, -1.000)
Vk =(-0.250, -0.500, -1.000)
Wc = 6.252 343 455 491 521e-004
lambda = 2.001 999 999 687 03
k =2
=(-0.250, -0.500, -1.000)
Vk=(-0.250, -0.500, -1.000)
Wc =3.131 258 787 820 493e-007
lambda =2.002 000 000 000 16
迭代次数k
和其近似向量Vk
的相邻迭代误差Wc
和其近似值lambda
k = 2
=(-0.400, -0.600, -1.000)
Vk=(0.400, 0.600, 1.000)
Wc =3.997 600 240 971 801e-004
lambda = 4.001 999 999 800 30
k = 2
=(-0.400, -0.600, -1.000)
Vk=(0.400, 0.600, 1.000)
Wc=1.996 005 395 108 913e-007
lambda =4.001 999 999 999 90
通过比较表5–3中列出的例题5.3.3和例题5.3.4的计算结果可见,由原点位移反幂法的迭代公式(5.27)的迭代序列的收敛速度比迭代公式(5.28)稍慢些.
(2)再用两种原点位移反幂法的MATLAB主程序,求对应的特征向量.输入MATLAB程序
>> A=[0 11 -5;-2 17 -7;-4 26 -10];V0=[1,1,1]';
[k,lamb
展开阅读全文