《试验5-特征值、特征向量和二次型.ppt》由会员分享,可在线阅读,更多相关《试验5-特征值、特征向量和二次型.ppt(40页珍藏版)》请在三一办公上搜索。
1、1,方阵的特征值、特征向量和二次型,实验目的 熟悉利用MATLAB中有关 方阵的迹 方阵的特征值、特征向量 二次型的操作方法,2,1.方阵的迹,矩阵A的迹是指矩阵的对角线上元素的和,也等于矩阵的特征值的和。命令格式为:trace(A)例1.设,计算A的迹t.程序设计 A=1 1 1;2 1 0;1 0 1;t=trace(A)t=1,3,例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,4,2.方阵的特征值与特征向量,手工计算方阵的特征值与特征向量并不是一件容易的事,而用MATLAB来计算方阵的特征值与特征向量只
2、需要一个简单的命令。这里需注意两个英文单词:eigenvalues(特征值)和 eigenvectors(特征向量)。理解这两个单词,对以下命令的使用是有好处的。计算方阵的特征值与特征向量的命令格式为:eig(A)给出方阵A的所有特征值,5,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)的系数,6,例3.设,
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 1,7,eig(A)%A的特征值 ans=13.5891 0.9455 0.1191-0.6537,8,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
4、.5891 0 0 0 0 0.9455 0 0 0 0 0.1191 0 0 0 0-0.6537,9,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.3420,10,a2=V(:,2)%特征值2=0.9455对应的特征向量 a2=-0.0957 0.1
5、230-0.3777 0.9127 a3=V(:,3)%特征值3=0.1191对应的特征向量 a3=-0.6547 0.2322 0.7118 0.1038,11,a4=V(:,4)%特征值4=-0.6537对应的特征向量 a4=0.1876-0.3533-0.2531 0.8809,12,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-%f 即为A的特征多项式|E-A|=4-143+52+8-1,13,例4.设,计算
6、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.0000,14,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.0000
7、,15,c=poly(A)%A的特征多项式的n+1个按降幂排列的系数c=Columns 1 through 5 1-4 0 16-16f=poly2sym(c)%将多项式向量c表示为符号形式f=x4-4*x2+16*x-16%f 即为A的特征多项式|E-A|=4-43+16-16,16,例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是对称矩阵,17,Q,D=eig(A)%A的特征值与特征向量满足A*Q=Q*D Q=-0.5000 0.2887
8、 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 1,18,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 0inv(Q)ans=-0.5000 0.5000 0.5000-0.5000 0.2887-0.2887-0.2887-0.866
9、0 0.7887 0.2113 0.5774 0 0.2113 0.7887-0.5774 0%Q现在是正交矩阵,因为Q=inv(Q),19,Q*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已经是一个正交矩阵。,20,3.二次型通过正交变换化为标准型,对任意的实二次型,其中 是 阶实对称矩阵,一定可以经过正交的变量替换 变成标准形 其中,系数 是实对称矩阵 的全部特征值。在MATLAB中,可以运用
10、eig命令,计算系 数矩阵 的特征值矩阵 和特征向量矩阵,即可得到正交变换 以及二次型的标准型。,21,例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,22,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)*
11、conj(x3)+(-x1+x3+x4)*conj(x4)%对于一个复数X,CONJ(X)=REAL(X)-I*IMAG(X),即X的复共轭,23,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,24,syms y1 y
12、2 y3 y4;%变量声明 Y=y1;y2;y3;y4 Y=y1 y2 y3 y4,25,X=P*Y%正交变换X=PY X=-1/2*y1+1/2*2 1/2*y1-1/2*2(1/2)*y3+1/2*y4 1/2*y1+1/2*2-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,26,例7.计算正交的变量替换,化二次型为标准型。程序设计 A=4 2 2;2 4 2;2 2 4%二次型的系数矩阵A=4 2 2 2 4 2 2 2 4 format s
13、hort,27,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,28,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)*
14、y1+1/3*3(1/2)*y3 f=Y*D*Y%二次型的标准型f=2*y1*conj(y1)+2*y2*conj(y2)+8*y3*conj(y3),29,4.二次型的正定性判定,实二次型 称为正定二次型,如果对任何,都有。正定二次型的矩阵称为正定矩阵。判定二次型为正定的充分必要条件是,它的系数矩阵A的特征值全部为正,或者A的各阶主子为正。在MATLAB中,可以运用eig命令计算系数矩阵A的特征值矩阵D或者计算A的各阶主子式来进行判定。,30,例8.判定二次型的正定性。程序设计:example8.mclear all%清除各种变量A=2 2 2;2 5 4;-2 4 5 D=eig(A)if
15、 all(D0)fprintf(二次型正定)else fprintf(二次型非正定)end,31,运行结果:A=2 2-2 2 5-4-2-4 5D=1.0000 1.0000 10.0000二次型正定,32,例9.利用主子式法判定二次型的正定性。程序设计:example9.mclear allA=1 1 2 1;-1 3 0 3;2 0 9 6;1 3 6 19c=1;,33,for 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)fprin
16、tf(判定的结论:二次型非正定)else fprintf(判定的结论:二次型正定)end,34,执行的结果:A=1-1 2 1-1 3 0-3 2 0 9-6 1-3-6 19第1阶主子式为B=1第1阶主子式的值为 ans=1,35,第2阶主子式为B=1-1-1 3第2阶主子式的值为ans=2第3阶主子式为B=1-1 2-1 3 0 2 0 9,36,第3阶主子式的值为ans=6第4阶主子式为B=1-1 2 1-1 3 0-3 2 0 9-6 1-3-6 19第4阶主子式的值为ans=24判定的结论:二次型正定,37,例10.判定二次型的正定性。程序设计:example10.m clear a
17、llA=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),38,det(B)if(det(B)0)c=-1;break endendif(c=-1)fprintf(判定的结论:二次型非正定)else fprintf(判定的结论:二次型正定)end,39,执行的结果:A=10 4 12 4 2-14 12-14 1第1阶主子式为B=10第1阶主子式的值为ans=10第2阶主子式为,40,B=10 4 4 2第2阶主子式的值为ans=4第3阶主子式为B=10 4 12 4 2-14 12-14 1第3阶主子式的值为ans=-3588判定的结论:二次型非正定,