资源预览内容
第1页 / 共40页
第2页 / 共40页
第3页 / 共40页
第4页 / 共40页
第5页 / 共40页
第6页 / 共40页
第7页 / 共40页
第8页 / 共40页
第9页 / 共40页
第10页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
方阵的特征值、特征向量和二次型实验目的实验目的 熟悉利用MATLAB中有关 方阵的迹 方阵的特征值、特征向量 二次型的操作方法11. 方阵的迹 矩阵A的迹是指矩阵的对角线上元素的和,也等于矩阵的特征值的和。 命令格式为:trace(A) 例1. 设 ,计算A的迹t. 程序设计 A=1 1 1;2 1 0;1 0 1; t=trace(A) t= 1 2 例2. 设 ,计算A的迹t。 程序设计 A=8 6 5 2;3 2 2 1;4 2 3 1;3 5 1 1; t=trace(A)t= 14 32. 方阵的特征值与特征向量 手工计算方阵的特征值与特征向量并不是一件容易的事,而用MATLAB来计算方阵的特征值与特征向量只需要一个简单的命令。这里需注意两个英文单词:eigenvalues(特征值)和 eigenvectors(特征向量)。理解这两个单词,对以下命令的使用是有好处的。 计算方阵的特征值与特征向量的命令格式为: eig(A) 给出方阵A的所有特征值4 V, D=eig(A) 给出由方阵A的所有特征值组成的对角 矩阵D和特征向量矩阵V,满足 A*V=V*D, 或者 A=V*D*V-1, 第k个特征值对应的特征向量是V的第k 个列向量。 poly(A) 当A是n阶方阵时,给出的是A的特征 多项式的n+1个按降幂排列的系数。即 特征多项式 |E-A|=DET(lambda*EYE(SIZE(A)-A) 的系数5 例3. 设 ,计算A的特征值和特征向量。 程序设计 : A=8 6 5 2;3 2 2 1;4 2 3 1;3 5 1 1 A= 8 6 5 2 3 2 2 1 4 2 3 1 3 5 1 16 eig(A) % A的特征值 ans= 13.5891 0.9455 0.1191 -0.65377 V, D=eig(A) % A的特征值与特征向量 V= % A的特征向量,列向量 -0.7985 -0.0957 -0.6547 0.1876 -0.3038 0.1230 0.2322 -0.3533 -0.3913 -0.3777 0.7118 -0.2531 -0.3420 0.9127 0.1038 0.8809 D= % 对角元素是A的特征值 13.5891 0 0 0 0 0.9455 0 0 0 0 0.1191 0 0 0 0 -0.65378 V*D*inv(V) % 验证A=V*D*V-1 ans= 8.0000 6.0000 5.0000 2.0000 3.0000 2.0000 2.0000 1.0000 4.0000 2.0000 3.0000 1.0000 3.0000 5.0000 1.0000 1.0000 a1=V( : ,1) % 特征值1=13.5891对应的特征向量 a1= -0.7985 -0.3038 -0.3913 -0.34209 a2=V( : ,2) % 特征值2=0.9455对应的特征向量 a2= -0.0957 0.1230 -0.3777 0.9127 a3=V( : ,3) % 特征值3=0.1191对应的特征向量 a3= -0.6547 0.2322 0.7118 0.103810 a4=V( : ,4) % 特征值4=-0.6537对应的特征向量 a4= 0.1876 -0.3533 -0.2531 0.880911 c=poly(A) % A的特征多项式的n+1个按降幂排列的系数 c= Columns 1 through 5 1 -14 5 8 -1 f=poly2sym(c) % 将多项式向量c表示为符号形式 f= x4-14*x3+5*x2+8*x- 9007199254740961/9007199254740992 % f 即为A的特征多项式|E-A|=4-143+52+8-112 例4. 设 ,计算A的特征值与特征向量。 程序设计 A=1 1 1 1;1 1 1 1;1 1 1 1;1 1 1 1; eig(A) % A的特征值ans= -2.0000 2.0000 2.0000 2.000013 V,D=eig(A) % A的特征值与特征向量V= % A的特征向量,列向量 -0.5000 0.2113 0.2887 0.7887 0.5000 0.7887 -0.2887 0.2113 0.5000 -0.5774 -0.2887 0.5774 0.5000 0 0.8660 0D= % 对角线元素是A的特征值 -2.0000 0 0 0 0 2.0000 0 0 0 0 2.0000 0 0 0 0 2.000014c=poly(A) % A的特征多项式的n+1个按降幂排列的系数c= Columns 1 through 5 1 -4 0 16 -16f =poly2sym(c) % 将多项式向量c表示为符号形式f= x4-4*x3+3/1125899906842624*x2+16*x-16 % f 即为A的特征多项式|E-A|=4-43+16-16 15 例5. 设 ,计算正交矩阵 ,使得 为对角矩阵。 程序设计A=0 1 1 1;1 0 1 1;1 1 0 1;-1 1 1 0;isequal(A, A ) % 判断A和A是否相等,即A是否是对称矩阵 ans= 1 % A是对称矩阵 16 Q,D=eig(A) % A的特征值与特征向量满足A*Q=Q*D Q= -0.5000 0.2887 0.7887 0.2113 0.5000 -0.2887 0.2113 0.7887 0.5000 -0.2887 0.5774 -0.5774 -0.5000 -0.8660 0 0 D= -3 0 0 0 0 1 0 0 0 0 1 0 0 0 0 117Q ans= -0.5000 0.5000 0.5000 -0.5000 0.2887 -0.2887 -0.2887 -0.8660 0.7887 0.2113 0.5774 0 0.2113 0.7887 -0.5774 0inv(Q) ans= -0.5000 0.5000 0.5000 -0.5000 0.2887 -0.2887 -0.2887 -0.8660 0.7887 0.2113 0.5774 0 0.2113 0.7887 -0.5774 0 % Q现在是正交矩阵,因为Q =inv(Q)18Q *A*Q % 得到结果Q *A*Q=D或者A=Q*D*Q ans= -3 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 程序说明:当矩阵A为实对称矩阵时,V,D=eig(A) 给出由方阵A的所有特征值组成的对角矩阵D和特征向量矩阵V,这时的V已经是一个正交矩阵。 193. 二次型通过正交变换化为标准型 对任意的实二次型 ,其中 是 阶实对称矩阵,一定可以经过正交的变量替换 变成标准形 其中,系数 是实对称矩阵 的全部特征值。 在MATLAB中,可以运用eig命令,计算系 数矩阵 的特征值矩阵 和特征向量矩阵 , 即可得到正交变换 以及二次型的标准型。 20 例6. 计算正交的变量替换 ,化二次型 为标准型。 程序设计 A=1 1 0 1;1 1 1 0;0 1 1 1;-1 0 1 1 % 二次型的系数矩阵 A A= 1 1 0 -1 1 1 -1 0 0 -1 1 1 -1 0 1 1 21 syms x1 x2 x3 x4; % 变量声明 X=x1 x2 x3 x4 X = conj(x1) conj(x2) conj(x3) conj(x4) f =X *A*X % 二次型 f = (x1+x2-x4)*conj(x1)+(x1+x2-x3)*conj(x2)+(- x2+x3+x4)*conj(x3)+(-x1+x3+x4)*conj(x4) % 对于一个复数X,CONJ(X)=REAL(X)-I*IMAG(X),即X的复共轭 22 P,D=eig(A) % 计算系数矩阵A的特征值矩阵D和特征向量矩阵P P= % 特征向量矩阵P -0.5000 0.7071 0.0000 0.5000 0.5000 0.0000 0.7071 0.5000 0.5000 0.7071 0.0000 -0.5000 -0.5000 0 0.7071 -0.5000 D= % 特征值矩阵D -1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0 0 0 0 3.0000 23 syms y1 y2 y3 y4; % 变量声明 Y=y1;y2;y3;y4 Y= y1 y2 y3 y424 X=P*Y % 正交变换X=PY X= -1/2*y1+1/2*2(1/2)*y2+29/144115188075855872*y3+1/2*y4 1/2*y1- 5822673418478107/40564819207303340847894502572032*y2+ 1/2*2(1/2)*y3+1/2*y4 1/2*y1+1/2*2(1/2)*y2+3/144115188075855872*y3-1/2*y4 -1/2*y1+1/2*2(1/2)*y3-1/2*y4 f =Y *D*Y % 二次型的标准型 f = -conj(y1)*y1+conj(y2)*y2+conj(y3)*y3+3*conj(y4)*y4 25 例7. 计算正交的变量替换 ,化二次型为标准型。 程序设计 A=4 2 2;2 4 2;2 2 4 % 二次型的系数矩阵A= 4 2 2 2 4 2 2 2 4 format short 26 P,D=eig(A) % 计算系数矩阵A的特征值矩阵D和特征向量矩阵PP= 0.4082 0.7071 0.5774 0.4082 -0.7071 0.5774 -0.8165 0 0.5774D= 2.0000 0 0 0 2.0000 0 0 0 8.0000 27 syms x1 x2 x3 y1 y2 y3; % 变量声明 X=x1;x2;x3; Y=y1;y2;y3; X=P*Y % 正交变换X=PYX= 1/6*6(1/2)*y1+1/2*2(1/2)*y2+1/3*3(1/2)*y3 1/6*6(1/2)*y1-1/2*2(1/2)*y2+1/3*3(1/2)*y3 -1/3*6(1/2)*y1+1/3*3(1/2)*y3 f=Y *D*Y % 二次型的标准型f = 2*y1*conj(y1)+2*y2*conj(y2)+8*y3*conj(y3) 284. 二次型的正定性判定 实二次型 称为正定二次型,如果对任何 ,都有 。 正定二次型的矩阵称为正定矩阵。 判定二次型为正定的充分必要条件是,它的系数矩阵A的特征值全部为正,或者A的各阶主子为正。 在MATLAB中,可以运用eig命令计算系数矩阵A的特征值矩阵D或者计算A的各阶主子式来进行判定。 29 例8. 判定二次型的正定性。 程序设计: example8.mclear all % 清除各种变量A=2 2 2;2 5 4;-2 4 5 D=eig(A) if all(D0) fprintf(二次型正定 ) else fprintf(二次型非正定 ) end 30 运行结果:A= 2 2 -2 2 5 -4 -2 -4 5D= 1.0000 1.0000 10.0000二次型正定31 例9. 利用主子式法判定二次型的正定性。 程序设计:example9.mclear allA=1 1 2 1;-1 3 0 3;2 0 9 6;1 3 6 19c=1; 32for i=1:4 fprintf(第%d阶主子式为, i ) B=A(1:i,1:i) fprintf(第%d阶主子式的值为, i ) det(B) if (det(B)0) c=-1; break endendif(c=-1) fprintf(判定的结论:二次型非正定 )else fprintf(判定的结论:二次型正定 )end33 执行的结果:A= 1 -1 2 1 -1 3 0 -3 2 0 9 -6 1 -3 -6 19第1阶主子式为B= 1第1阶主子式的值为 ans= 1 34第2阶主子式为B= 1 -1 -1 3第2阶主子式的值为ans= 2第3阶主子式为B= 1 -1 2 -1 3 0 2 0 9 35第3阶主子式的值为ans= 6第4阶主子式为B= 1 -1 2 1 -1 3 0 -3 2 0 9 -6 1 -3 -6 19第4阶主子式的值为ans= 24判定的结论:二次型正定 36 例10. 判定二次型的正定性。 程序设计:example10.m clear allA=10 4 12;4 2 14;12 14 1c=1; for i=1:3 fprintf(第%d阶主子式为, i ) B=A(1:i,1:i) fprintf(第%d阶主子式的值为, i )37 det(B) if (det(B)0) c=-1; break endendif (c=-1) fprintf(判定的结论:二次型非正定 )else fprintf(判定的结论:二次型正定 )end38 执行的结果:A= 10 4 12 4 2 -14 12 -14 1第1阶主子式为B= 10第1阶主子式的值为ans= 10第2阶主子式为 39B= 10 4 4 2第2阶主子式的值为ans= 4第3阶主子式为B= 10 4 12 4 2 -14 12 -14 1第3阶主子式的值为ans= -3588判定的结论:二次型非正定40
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号