收藏 分享(赏)

第五章矩阵的特征值与特征向量的计算doc.doc

上传人:微传9988 文档编号:2516064 上传时间:2018-09-20 格式:DOC 页数:36 大小:1.04MB
下载 相关 举报
第五章矩阵的特征值与特征向量的计算doc.doc_第1页
第1页 / 共36页
第五章矩阵的特征值与特征向量的计算doc.doc_第2页
第2页 / 共36页
第五章矩阵的特征值与特征向量的计算doc.doc_第3页
第3页 / 共36页
第五章矩阵的特征值与特征向量的计算doc.doc_第4页
第4页 / 共36页
第五章矩阵的特征值与特征向量的计算doc.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、 在自然科学和工程设计中的许多问题,如电磁振荡、桥梁振动、机械振动等,常归结为求矩阵的特征值和特征向量.求矩阵的特征值和特征向量的问题是代数计算中的重要课题.本章着重介绍直接计算矩阵的特征值和特征向量的 MATLAB 程序、间接计算矩阵的特征值和特征向量的幂法、反幂法、雅可比方法、豪斯霍尔德方法和 QR 方法及其它们的 MATLAB 计算程序.最后我们还讨论广义特征值问题.5.1 直接计算特征值和特征向量的 MATLAB 程序5.1.4 计算特征值和特征向量的 MATLAB 程序从以上的讨论可以看到,有许多问题归结为求矩阵的特征值和特征向量,而用手工计算高阶矩阵的特征值与特征向量的难度较大,但

2、是,计算机软件 MATLAB 提供了直接计算特征值与特征向量的 MATLAB 函数 (见表 51) ,下面介绍这些函数的使用方法. 表 51命 令 功 能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;如果

3、A 是对称矩阵,则输出的结果与程序 V,D = eig (A)的运行结果相同5.2 幂法及其 MATLAB 程序幂法是求实矩阵 的主特征值(即实矩阵 按模最大的特征值)及其对应的特征A向量的一种迭代方法.5.2.2 幂法的 MATLAB 程序设 阶实矩阵 的 个特征值为 ,且满足 , 的主nnn,21 021n A特征值 对应的特征向量为 ,则我们可以用下面的 MATLAB 程序计算 和 的1X1X近似值和近似向量. 用幂法计算矩阵 的主特征值和对应的特征向量的 MATLAB 主程序A输入的量: 阶实矩阵 、 维初始实向量 V0、计算要求的精度 jd、迭代的最大次数 max1;输出的量:迭代的

4、次数 k、 的主特征值 的近似值 lambda、 对应的特征向量11的近似向量 Vk、相邻两次迭代的误差 Wc.如果迭代次数已经达到最大的迭代次数1Xmax1,则给出提示的相关信息.第五章 矩阵的特征值与特征向量的计算根据迭代公式(5.20) ,现提供用幂法计算矩阵 的主特征值和对应的特征向量的AMATLAB主程序如下: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(kjd)state=1;endk=k+1;Wc=Wc;endif(Wc A=1 -1;2 4

5、;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.804 8.4999e-007Vk = V = wuV =-0.432 -0.655 0.996 -0.2941.000 0.655 -0.992 -0.992Dzd = wuD = 3

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

7、先给定的精度 .510(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,相邻两次迭代的第五章 矩阵的特征值与特征向量的 MATLAB 程序61高等教育出版社 教育电子音像出版社 作者:任玉杰 误差 Wc 如下:k = lambda =

8、Wc = Dzd = wuD =3 9 0 9 0Vk = wuV =0.000 0.7730.000 0.7731.000 0.773V =0.655 0.963 0.386-0.655 0.963 0.3860 -0.963 0.773由输出结果可看出,迭代 3 次,相邻两次迭代的误差 Wc=0,实对称矩阵 B 的主特征值的近似值 lambda=9 和对应的特征向量的近似向量 Vk =(0.500 00,0.500 00,1.000 00 ,lambda 与例 5.1.1 中 的最大特征值 相同,V k 与特征向量T)B93XT3k的对应分量成比例.从 wuV 的每个分量的值也可以看出,

9、的特征向21()(3k 量 V(:,3) 与 Vk 的对应分量的比值相等.因此,用程序 mifa.m 计算的结果达到预先给定的精度 .50此例说明,幂法对实对称矩阵 的迭代速度快且计算结果精度高,(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 已经达到最大迭代次数 max

10、1,主特征值的迭代值 lambda,主特征向量的迭代向量 Vk,相邻两次迭代的误差 Wc 如下:k = lambda = Wc = 100 0.910 2.119 Dzd = wuD =1.001 0.091Vk= Vzd = wuV =0.993 0.329 0.3350.995 0.776 0.7781.000 -0.776 -0.776由输出结果可见,迭代次数 k 已经达到最大迭代次数 max1=100,并且 lambda 的相邻两次迭代的误差 Wc 2.377 582,由 wuV 可以看出,lambda 的特征向量 Vk 与真值 Dzd的特征向量 Vzd 对应分量的比值相差较大,所以迭

11、代序列发散.实际上,实数矩阵 C 的特征值的近似值为 ,并且对应的特征向量的近i,011.032 似向量分别为 = (0.329 ,0.776,-0.776) ,XTkT(-0.001,-0.300-0.100i,T2k0.801-0.400i) ,( -0.001, -0.300 + 0.100i,30.801 + 0.400i) , 是常数).T0,(21k3此例说明,当 阶实矩阵有复数特征值时,不宜用幂法计算它的主特征值 对应的n 1特征向量 .1X(4)输入 MATLAB 程序 D=-4 14 0;-5 13 0;-1 0 2; V0=1,1,1; k,lambda,Vk,Wc=mif

12、a(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.528 6.1684e-006Dtzd = wuDt =6.000 6.0768e-006Vk = Vzd = wuV =0.564 0.564 0.5640.886 0.117 0.618-0.180 -0.

13、391 0.370由输出结果可见,迭代 19 次,相邻两次迭代的误差 Wc 6.539 52e-006,矩阵 D 的主特征值的近似值 lambda 6.000 01 和对应的特征向量的近似向量为 Vk (0.797 40,0.714 29,-0.250 00 .用 eig(A)计算,lambda 与对应的特征值的真值 Dtzd 的绝对T)误差 wuDt ,二者的特征向量 V(:,2) 与 Vk 的对应分量的比值近似相等(请对比510wuV 的每个分量的值).因此,用程序 mifa.m 计算的结果达到预先给定的精度 .510由例 5.2.2 的计算结果可见,用幂法计算实对称矩阵 的主特征值对应的

14、特征向量B时,得到的迭代序列的收敛速度最快且计算结果精度也最高;非实对称矩阵对应的迭代序列的敛散性不定,有时发散(例如矩阵 C),有时收敛(例如矩阵 A 和 D) ,且收敛速度较慢,比较(1)和(4)的计算结果可知,用幂法得到的迭代序列的收敛速度与矩阵的阶数无关;当实矩阵有复数特征值时,不宜用幂法计算它的主特征值对应的特征向量.5.3 反幂法和位移反幂法及其 MATLAB 程序反幂法是求非奇异矩阵 的按模最小特征值及其对应的特征向量的一种迭代方法.A5.3.3 原点位移反幂法的 MATLAB 程序设 阶实矩阵 的 个特征值 都不相同,且满足nnn,21,且 的按模最小特征值 对应的特征向量为

15、,则j)(jnnX我们可以根据迭代公式(5.27)和(5.28)编写两种 MATLAB 程序分别计算 和 的近似值和近似向量.(一) 原点位移反幂法的 MATLAB 主程序 1根据原点位移反幂法的迭代公式(5.28) ,现提供用原点位移反幂法计算矩阵 的A按模最小特征值和对应的特征向量的MATLAB主程序如下: 用原点位移反幂法计算矩阵 的特征值和对应的特征向量的 MATLAB 主程序 1A输入的量: 阶实矩阵 、 维初始实向量 V0、特征值的近似值 jlamb、计算的精nn度 jd、迭代的最大次数 max1;输出的量:迭代的次数 k、 的特征值 的近似值 lambdan、与 对应的特征向nn

16、量 的近似向量 Vk、相邻两次迭代的误差 Wc.如果迭代次数已经达到最大的迭代次数nXmax1,则给出提示的相关信息 .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=0disp(请注意:因为A-aE的n 阶行列式 hl等于零,所以A-aE不能进行Lu分解.)returnendlambda=0;if RA1=0for p=1:nh(p)=det(A1(1:p, 1:p);endhl=h(1:n);for i=1:n

17、第五章 矩阵的特征值与特征向量的 MATLAB 程序63高等教育出版社 教育电子音像出版社 作者:任玉杰 if h(1,i)=0disp(请注意:因为A-aE的r 阶主子式等于零,所以A-aE不能进行Lu分解.) returnendendif h(1,i)=0 disp(请注意:因为A-aE的各阶主子式都不等于零,所以A-aE 能进行Lu分解.)k=1;Wc =1;state=1; Vk=V0;while(kjd)state=1;endk=k+1;%Vk=Vk2,mk=mk1,endif(Wc A=1 -1 0;-2 4 -2;0 -1 2;V0=1,1,1;k,lambda,Vk,Wc=yd

18、wyfmf(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.2720Vk = V = D =1.0000 -0.2424 -1.0000 -0.5707 5.1249 0 00.7616 1.0000 -0.7616

19、0.3633 0 0.2384 00.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.00

20、20 5.1528e-007 -1.0010 -0.0010Vk = 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,特征向

21、量的近似向量 Vk,相邻两次迭代的误差 Wc 如下:k = lambdan= Wc = hl = 2 8.2640 6.9304e-008 -19.2600 -961.9924 -6.1256Vk = V = D =-0.7692 0.7928 0.6081 0.0416 -22.5249 0 00.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) ,计算 的分别126475A对应于特征值 , , 的特征向量 , 1.0.01 2 0

22、1.3X, 的近似向量,相邻迭代误差为 0.001.将计算结果与精确特征向量比较,其中2X30.999 999 999 999 97, 1.999 999 999 999 99, 4.000 000 000 000 12 302,分别对应特征向量为0.500 000 000 000 00,0.500 000 000 000 00,1.000 000 000 000 00 ,( T)-0.249 999 999 999 99,-0.500 000 000 000 00,-1.000 000 000 000 00 ,2-0.400 000 000 000 00,-0.600 000 000 000

23、 00,-1.000 000 000 000 00 .3X解 (1)计算特征值 对应的特征向量 的近似向量.输入 MATLAB1.01X程序 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)和各阶

24、顺序主子式值 hl、迭代次数 k,按模最小特征值的近似值 lambda,特征向量的近似向量 Vk,相邻两次迭代的误差 Wc 如下:hl =-1.000 5.000 -0.000k = lambda = RA1 = 5 1.000 -0.000Vk = VD = wuV =-0.000 -0.386 0.773-0.000 -0.386 0.773-1.000 -0.773 0.773第五章 矩阵的特征值与特征向量的 MATLAB 程序65高等教育出版社 教育电子音像出版社 作者:任玉杰 Wc = Dzd = wuD =1.5562e-009 1.000 0.000 从输出的结果可见,迭代 5

25、次,特征向量 的近似向量 的相邻两次迭代的误差1X1Wc 1.379 e-009,由 wuV 可以看出, = Vk 与 VD 的对应分量的比值相等.特征值的近似值 lambda 1.002 与初始值 1.001 的绝对误差为 0.001,而与 的绝对误11 1差为 0.002,其中,X T)01.0 ,0.5- ,00.5( .1(2)计算特征值 对应特征向量 的近似向量1 222X输入 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

26、); 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.000 -8.000 0.000k = Wc = lambda = WD = 2 3.2120e-007 2.016 0.016Vk = VD = wuV =-0.999 0.599 -0.401-0.999 0.198 -0.

27、398-1.000 0.397 -0.397从输出的结果可见,迭代 2 次,特征向量 的近似向量 的相邻两次迭代的误2X2差 Wc 3.131e-007, 与 的对应分量的比值近似相等.特征值 的近似值 lambdaX2.002 与初始值 2.001 的绝对误差约为 0.001,而 lambda 与 的绝对误差约为2 20.002,其中,2X T)00.1,949.0,94.0( . - 5- - (3)计算特征值 对应特征向量 的近似向量.输入 MATLAB 程序1.33X A=0 11 -5;-2 17 -7;-4 26 -10;V0=1,1,1;k,lambda,Vk,Wc=ydwyfm

28、f(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.000 -30.000 -0.999k = lambda = Wc = WD =2 4.990 1.4842e-007 0.990Vk = VD = w

29、uV =0.001 -0.153 -0.3800.001 -0.229 -0.3811.000 -0.381 -0.381从输出的结果可见,迭代 2 次,特征向量 的近似向量 的相邻两次迭代的误3X3差 Wc 1.996e-007, 与 的对应分量的比值近似相等.特征值 的近似值3X3的绝对误差近似为 ,而 lambda 与 的绝对 4014.022 lambd 01. 3误差约为 0.002,其中-0.400 000 000 000 00,-0.600 000 000 000 00,-1.000 000 000 000 00 ,3( T). 0.,.6,.综上所述,用原点位移反幂法的迭代公式

30、(5.28)求矩阵的全部特征值分别对应特征向量的收敛速度快,且精确度高.但是求矩阵的全部特征值的结果不理想.(二) 、原点位移反幂法的 MATLAB 主程序 2根据迭代公式(5.27) ,我编写用原点位移反幂法计算矩阵 的按模最小特征值和A对应的特征向量的 MATLAB 主程序如下: 用原点位移反幂法计算矩阵 的特征值和对应的特征向量的 MATLAB 主程序 2A输入的量: 阶实矩阵 、 维初始实向量 V0、特征值的近似值 jlambn、计算的nn精度 jd、迭代的最大次数 max1.输出的量:迭代的次数 k、 的特征值 的近似值 lambdan、 对应的特征向量nn的近似向量 Vk、相邻两次

31、迭代的误差 Wc.如果迭代次数已经达到最大的迭代次数nXmax1,则给出提示的相关信息.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(kjd)state=1;endk=k+1;endif(Wc 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,

32、100)运行后屏幕显示结果请注意迭代次数 k,特征值的近似值 lambda,对应的特征向量的近似向量 Vk,相第五章 矩阵的特征值与特征向量的 MATLAB 程序67高等教育出版社 教育电子音像出版社 作者:任玉杰 邻两次迭代的误差 Wc 如下:k = lambda = Wc =5 1.138 1.6924e-006Vk = -0.000 -0.000 -1.000同理可得,另外与两个特征值对应的特征向量,将计算结果列表53.表 53 例题 5.3.3 和例题 5.3.4 计算结果比较由(5.27)式计算结果 由(5.28)式计算结果迭代次数 k和其近似向量 Vk1X的相邻迭代误差 Wc和其近

33、似值 lambda1k = 5=(0.500, 0.500, 1.000) 1XTVk=(-0.500, -0.500, -1.000)Wc = 1.376 344 154 436 924e-006lambda=1.002 000 000 001 38970.91 k = 5= (0.500, 0.500, 1.000)1XTVk=(-0.500, -0.500, -1.000)Wc =1.378 794 763 695 562e-009lambda=1.002 000 000 000 00970.91 迭代次数 k和其近似向量 Vk2X的相邻迭代误差 Wc和其近似值 lambda2k = 2

34、=(-0.250, -0.500, -1.000)2XTVk =(-0.250, -0.500, -1.000)Wc = 6.252 343 455 491 521e-004lambda = 2.001 999 999 687 0391.92 k =2=(-0.250, -0.500, -1.000)2XTVk=(-0.250, -0.500, -1.000)Wc =3.131 258 787 820 493e-007lambda =2.002 000 000 000 1691.92迭代次数 k和其近似向量 Vk3X的相邻迭代误差 Wc和其近似值 lambda3k = 2=(-0.400, -

35、0.600, -1.000)3XTVk=(0.400, 0.600, 1.000)Wc =3.997 600 240 971 801e-004lambda = 4.001 999 999 800 30024.03 k = 2=(-0.400, -0.600, -1.000)3XTVk=(0.400, 0.600, 1.000)Wc=1.996 005 395 108 913e-007lambda =4.001 999 999 999 90024.03通过比较表53中列出的例题5.3.3和例题5.3.4的计算结果可见,由原点位移反幂法的迭代公式(5.27)的迭代序列的收敛速度比迭代公式(5.28

36、)稍慢些.(2)再用两种原点位移反幂法的MATLAB主程序,求 对97.91应的特征向量.输入MATLAB程序 A=0 11 -5;-2 17 -7;-4 26 -10;V0=1,1,1;k,lambda,Vk,Wc=ydwyfmf(A,V0,0.997,0.001,100)运行后屏幕显示结果请注意:因为A-aE的各阶主子式都不等于零,所以A-aE能进行Lu分解.A-aE的秩 R(A-aE)和各阶顺序主子式值hl 、迭代次数k, 按模最小特征值的近似值lambda,特征向量的近似向量 Vk,相邻两次迭代的误差Wc如下:hl =-0.997 6.045 0.010RA1 =1.9192e-013

37、k =2lambda =1.000输入MATLAB程序 A=0 11 -5;-2 17 -7;-4 26 -10;V0=1,1,1;k,lambda,Vk,Wc=wfmifa1(A,V0, 0.997,0.001,100)运行后屏幕显示结果Vk =0.0000.0001.000Wc =4.6759e-013请注意迭代次数 k,特征值的近似值 lambda,对应的特征向量的近似向量 Vk,相邻两次迭代的误差 Wc 如下:k =3lambda =1.000Wc =5.7640e-0165.4 雅可比(Jacobi)方法及其 MATLAB 程序雅可比方法是用来计算实对称矩阵的全部特征值和对应的特征向

38、量的一种迭代的方法,最早由雅可比给出.自从计算机出现以后,古典的雅可比方法已有了不少的改进和推广.5.4.3 雅可比方法的 MATLAB 程序设 阶实对称矩阵 的 个特征值为 ,特征值 对应的特征向量为nAnn,21 i,则我们可以用下面的 MATLAB 程序计算 的全部特征值和对应的特征向量的近iXA似值和向量.用雅可比方法计算对称矩阵 的特征值和对应的特征向量的 MATLAB 主程序输入的量: 阶实对称矩阵 、计算的精度 jd、迭代的最大次数 max1;输出的量:计算全过程中每次迭代的序号 k, 选取的旋转主元 mk 及其所在的行数和列数 ,c,t,pii 和 pij 的值,旋转矩阵 Pk

39、,正交矩阵 Vk=P1P2Pk,对称矩阵 Bk,ij判断是否满足控制迭代终止的条件 Wc,以特征向量为列向量的矩阵 V,特征值为对角元的对角矩阵 D.如果迭代次数已经达到最大的迭代次数 max1,则给出提示的相关信息.根据雅可比迭代求 阶实对称矩阵 A的特征值 和对应的特征向量 的近似向量,niiX精度为 的一般步骤,现提供MATLAB主程序如下:function k,Bk,V,D,Wc=renyujjacobite(A,jd,max1)n,n=size(A);Vk=eye(n);Bk=A;state=1;k=0;P0=eye(n);Aij=abs(Bk-diag(diag(Bk);m1 i=

40、max(Aij);m2 j=max(m1);i=i(j);while (kjd)state=1;elsereturnendPk;Vk;Bk=B2;Wc;endif(kmax1)disp(请注意迭代次数k已经达到最大迭代次数max1, 迭代次数k,对称矩阵Bk,以特征向量为列向量的矩阵 V,特征值为对角元的对角矩阵 D如下:)elsedisp(请注意迭代次数k,对称矩阵Bk,以特征向量为列向量的矩阵V, 特征值为对角元的对角矩阵D如下: ) endWc;k=k; V=Vk;Bk=B2;D=diag(diag(Bk);V1,D1 =eig(A,nobalance)Vk =0.0000.0001.0

41、00第五章 矩阵的特征值与特征向量的 MATLAB 程序69高等教育出版社 教育电子音像出版社 作者:任玉杰 例 5.4.2 用雅可比方法的 MATLAB 程序计算例 5.4.1 中矩阵 的特征值 和对应Ai的特征向量 ( ) .iX4,321解 (1)保存名为renjacobite.m为M文件;(2)输入MATLAB程序 A=12 -56 3 -1;-56 7 2 0;3 2 5 1;-1 0 1 12;k,B,V,D,Wc=renyujjacobite(A,0.001,100)(3)运行后屏幕显示计算的全过程中每次迭代的序号k, 选取的旋转主元mk及其所在的行数 和列数 ,c,t, pii

42、 和pij 的值,旋转矩阵P k,正交矩阵V k=P1P2Pk,对称矩ij阵B k,判断是否满足控制迭代终止的条件W c,以特征向量为列向量的矩阵V ,特征值为对角元的对角矩阵D和相关信息如下:k = i = j = mk = Wc =1 2 1 -56 56c = t =-0.286 -0.972pii = pij =0.843 -0.510Pk =0.843 0.510 0 0-0.510 0.843 0 00 0 1.000 00 0 0 1.000Vk =0.843 0.510 0 0-0.510 0.843 0 00 0 1.000 00 0 0 1.000Bk =65.456 0

43、0.509 -0.843-0.001 -46.456 3.217 -0.5100.509 3.217 5.000 1.000-0.843 -0.510 1.000 12.000k = i = j = mk = Wc =2 3 2 3.217 3.217c = t =-7.824 -0.129pii = pij =0.446 -0.592Pk =1.000 0 0 00 0.446 0.592 00 -0.592 0.446 00 0 0 1.000Vk =0.843 0.035 0.127 0-0.510 0.581 0.449 00 -0.592 0.446 00 0 0 1.000Bk =

44、65.456 -0.092 0.672 -0.843-0.093 -46.285 0 -0.6270.672 0.000 5.829 0.318-0.843 -0.627 0.318 12.000k = i = j = mk = Wc =3 4 3 0.318 0.318c = t =-3.213 -0.116pii = pij =0.324 -0.460Pk =1.000 0 0 00 1.000 0 00 0 0.324 0.4600 0 -0.460 0.324Vk =0.843 0.035 0.032 0.403-0.510 0.581 0.712 0.1430 -0.592 0.096 0.8420 0 -0.460 0.324Bk =65.456 -0.092 0.061 -0.628-0.093 -46.285 0.562 -0.8800.061 0.562 5.532 -0.000-0.628 -0.880 -0.000 12.297k = i = j = mk = Wc =4 1 3 0.061 0.061c = t =-34.430 -0.914pii = pij =

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报