第五章 矩阵的特征值与特征向量的计算DOCWord文件下载.docx
《第五章 矩阵的特征值与特征向量的计算DOCWord文件下载.docx》由会员分享,可在线阅读,更多相关《第五章 矩阵的特征值与特征向量的计算DOCWord文件下载.docx(62页珍藏版)》请在冰豆网上搜索。
if(Wc<
=jd)
disp('
请注意:
迭代次数k,主特征值的近似值lambda,主特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:
'
)
else
迭代次数k已经达到最大迭代次数max1,主特征值的迭代值lambda,主特征向量的迭代向量Vk,相邻两次迭代的误差Wc如下:
Vk=V;
k=k-1;
Wc;
例5.2.2用幂法计算下列矩阵的主特征值和对应的特征向量的近似向量,精度
.并把
(1)和
(2)输出的结果与例5.1.1中的结果进行比较.
(1)
;
(2)
(3)
(4)
.
解
(1)输入MATLAB程序
>
A=[1-1;
24];
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=Wc=
333.000001738368048.691862856124999e-007
Vk=V=wuV=
-0.49999942054432-0.707106781186550.44721359549996-0.89442822756294
1.000000000000000.70710678118655-0.89442719099992-0.89442719099992
Dzd=wuD=
31.738368038406435e-006
由输出结果可看出,迭代33次,相邻两次迭代的误差Wc
8.6919e-007,矩阵
的主特征值的近似值lambda
3.00000和对应的特征向量的近似向量Vk
(-0.50000,1.00000
lambda与例5.1.1中
的最大特征值
近似相等,绝对误差约为1.73837e-006,Vk与特征向量
的第1个分量的绝对误差约等于0,第2个分量的绝对值相同.由wuV可以看出,
的特征向量V(:
2)与Vk的对应分量的比值近似相等.因此,用程序mifa.m计算的结果达到预先给定的精度
(2)输入MATLAB程序
B=[123;
213;
336];
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=Wc=Dzd=wuD=
39090
Vk=wuV=
0.500000000000000.81649658092773
1.000000000000000.81649658092773
V=
0.707106781186550.577350269189630.40824829046386
-0.707106781186550.577350269189630.40824829046386
0-0.577350269189630.81649658092773
(3)输入MATLAB程序
C=[122;
1-11;
4-121];
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=lambda=Wc=
1000.090909090909102.37758124193119
Dzd=wuD=
1.000000000000010.90909090909091
Vk=Vzd=wuV=
0.999999999999930.904534033733290.90453403373335
0.999999999999950.301511344577760.30151134457778
1.00000000000000-0.30151134457776-0.30151134457776
由输出结果可见,迭代次数k已经达到最大迭代次数max1=100,并且lambda的相邻两次迭代的误差Wc
2.37758>
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=[-4140;
-5130;
-102];
[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,
196.000006539495286.539523793591684e-006
Dtzd=wuDt=
6.000000000000006.539495284840768e-006
Vk=Vzd=wuV=
0.797400480535640.797400480535640.79740048053564
0.714285947838860.569571771811170.79740021980618
-0.24999918247180-0.199********3910.79740308813370
5.3反幂法和位移反幂法及其MATLAB程序
5.3.3原点位移反幂法的MATLAB程序
(一)原点位移反幂法的MATLAB主程序1
用原点位移反幂法计算矩阵
的特征值和对应的特征向量的MATLAB主程序1
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);
ifRA1==0
因为A-aE的n阶行列式hl等于零,所以A-aE不能进行LU分解.'
)
return
ifRA1~=0
forp=1:
n
h(p)=det(A1(1:
p,1:
p));
hl=h(1:
n);
fori=1:
ifh(1,i)==0
因为A-aE的r阶主子式等于零,所以A-aE不能进行LU分解.'
ifh(1,i)~=0
因为A-aE的各阶主子式都不等于零,所以A-aE能进行LU分解.'
Vk=V0;
[LU]=lu(A1);
Yk=L\Vk;
Vk=U\Yk;
mk=m;
Vk1=Vk/mk;
Yk1=L\Vk1;
Vk1=U\Yk1;
[mj]=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;
%Vk=Vk2,mk=mk1,
A-aE的秩R(A-aE)和各阶顺序主子式值hl、迭代次数k,按模最小特征值的近似值lambda,特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:
A-aE的秩R(A-aE)和各阶顺序主子式值hl、迭代次数k已经达到最大迭代次数max1,按模最小特征值的迭代值lambda,特征向量的迭代向量Vk,相邻两次迭代的误差Wc如下:
hl,RA1
[V,D]=eig(A,'
nobalance'
),Vk;
lambdan=jlamb+1/mk1;
例5.3.2用原点位移反幂法的迭代公式(5.28),根据给定的下列矩阵的特征值
的初始值
,计算与
对应的特征向量
的近似向量,精确到0.0001.
(2)
A=[1-10;
-24-2;
0-12];
[k,lambda,Vk,Wc]=ydwyfmf(A,V0,0.2,0.0001,10000)
因为A-aE的各阶主子式都不等于零,所以A-aE能进行LU分解.
k=lambda=Wc=hl=
30.23841.0213e-0070.80001.04000.2720
Vk=V=D=
1.0000-0.2424-1.0000-0.57075.124900
0.76161.0000-0.76160.363300.23840
0.4323-0.3200-0.43231.0000001.6367
(2)输入MATLAB程序
A=[1-1;
V0=[20,1]'
[k,lambda,Vk,Wc]=ydwyfmf(A,V0,2.001,0.0001,100)
22.00205.1528e-007-1.0010-0.0010
1.0000-1.00000.500020
-1.00001.0000-1.000003
(3)输入MATLAB程序
A=[-11215;
2583;
153-3];
V0=[1,1,-1]'
[k,lambdan,Vk,Wc]=ydwyfmf(A,V0,8.26,0.0001,100)
k=lambdan=Wc=hl=
28.26406.9304e-008-19.2600-961.9924-6.1256
-0.76920.79280.60810.0416-22.524900
0.09120.0030-0.07210.997408.26400
-1.0000-0.60950.79060.05900058.2609
例5.3.3用原点位移反幂法的迭代公式(5.28),计算
的分别对应于特征值
的特征向量
的近似向量,相邻迭代误差为0.001.将计算结果与精确特征向量比较.
解
(1)计算特征值
的近似向量.输入MATLAB程序
A=[011-5;
-217-7;
-426-10];
[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(:
hl=
-1.001000000000005.98500100000000-0.00299600100000
k=lambda=RA1=
51.00200000000000-0.00299600100000
Vk=VD=wuV=
-0.50000000000000-0.408248290463860.81649658092773
-1.00000000000000-0.816496580927730.81649658092773
Wc=Dzd=wuD=
1.378794763695562e-0091.000000000000000.00200000000000
从输出的结果可见,迭代5次,特征向量
的近似向量
的相邻两次迭代的误差Wc
1.379e-009,由wuV可以看出,
=Vk与VD的对应分量的比值相等.特征值
的近似值lambda
1.002与初始值
1.001的绝对误差为0.001,而与
的绝对误差为0.002,其中
(2)计算特征值
对应特征向量
的近似向量.
输入MATLAB程序
>
[k,lambda,Vk,Wc]=ydwyfmf(A,V0,2.001,0.001,100),
WD=lambda-D(2,2),VD=V(:
-2.00100000000000-8.012999000000000.00200099900000
k=Wc=lambda=WD=
23.131363162302120e-0072.002000000000160.00200000000016
-0.249999999999990.21821789023599-0.87287156094401
-0.499999999999990.43643578047198-0.87287156094398
-1.000000000000000.87287156094397-0.87287156094397
从输出的结果可见,迭代2次,特征向量
3.131e-007,
与
的对应分量的比值近似相等.特征值
的近似值lambda
2.002与初始值
2.001的绝对误差约为0.001,而lambda与
的绝对误差约为0.002,其中
(3)计算特征值
[k,lambda,Vk,Wc]=ydwyfmf(A,V0,4.001,0.001,100)
WD=lambda-max(diag(D)),VD=V(:
3),wuV=V(:
-4.00100000000000-30.00899900000000-0.00600500099999
k=lambda=Wc=WD=
24.001999999999901.996084182914842e-0070.00199999999990
0.40000000000001-0.32444284226153-0.81110710565380
0.60000000000001-0.48666426339229-0.81110710565381
1.00000000000000-0.81110710565381-0.81110710565381
1.996e-007,
的近似值
的绝对误差近似为
,而lambda与
-0.40000000000000,-0.60000000000000,-1.00000000000000
(二)原点位移反幂法的MATLAB主程序2
的特征值和对应的特征向量的MATLAB主程序2
function[k,lambdan,Vk,Wc]=wfmifa1(A,V0,jlamb,jd,max1)
A1=A-jlamb*eye(n);
nA1=inv(A1);
lambda1=0;
U=V0;
Vk=A1\U;
Vk1=A1\Vk;
[m1j]=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;
disp('
请注意迭代次数k,特征值的近似值lambda,对应的特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:
请注意迭代次数k已经达到最大迭代次数max1,特征值的近似值lambda,对应的特征向量的近似向量Vk,相邻两次迭代的误差Wc如下:
[V,D]=eig(A,'
),Vk=U;
lambdan=jlamb+1/mk;
例5.3.4用原点位移反幂法的迭代公式(5.27),计算例题5.3.3,并且将这两个例题的计算结果进行比较.再用两种原点位移反幂法的MATLAB主程序,求
对应的特征向量.
[k,lambda,Vk,Wc]=wfmifa1(A,V0,1.001,0.001,100)
51.002000000001381.376344154436924e-006
Vk’=-0.50000000000000-0.50000000000000-1.00000000000000
同理可