
试验5特征值特征向量和二次型课件.ppt
40页方阵的特征值、特征向量和二次型实验目的实验目的 熟悉利用MATLAB中有关 方阵的迹 方阵的特征值、特征向量 二次型的操作方法1试验5-特征值、特征向量和二次型1. 方阵的迹 矩阵A的迹是指矩阵的对角线上元素的和,也等于矩阵的特征值的和 命令格式为:trace(A) 例1. 设 ,计算A的迹t. 程序设计 >> A=[1 1 1;2 –1 0;1 0 1]; >> t=trace(A) t= 1 2试验5-特征值、特征向量和二次型 例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 3试验5-特征值、特征向量和二次型2. 方阵的特征值与特征向量 手工计算方阵的特征值与特征向量并不是一件容易的事,而用MATLAB来计算方阵的特征值与特征向量只需要一个简单的命令。
这里需注意两个英文单词:eigenvalues(特征值)和 eigenvectors(特征向量)理解这两个单词,对以下命令的使用是有好处的 计算方阵的特征值与特征向量的命令格式为: eig(A) 给出方阵A的所有特征值4试验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) 的系数5试验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试验5-特征值、特征向量和二次型>> eig(A) % A的特征值 ans= 13.5891 0.9455 0.1191 -0.65377试验5-特征值、特征向量和二次型>> [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试验5-特征值、特征向量和二次型>> 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试验5-特征值、特征向量和二次型>> 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试验5-特征值、特征向量和二次型>> a4=V( : ,4) % 特征值λ4=-0.6537对应的特征向量 a4= 0.1876 -0.3533 -0.2531 0.880911试验5-特征值、特征向量和二次型>> c=poly(A) % A的特征多项式的n+1个按降幂排列的系数 c= Columns 1 through 5 1 -14 5 8 -1>> f=poly2sym(c) % 将多项式向量c表示为符号形式 f= x^4-14*x^3+5*x^2+8*x- 90961/90992 % f 即为A的特征多项式|λE-A|=λ4-14λ3+5λ2+8λ-112试验5-特征值、特征向量和二次型 例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试验5-特征值、特征向量和二次型>> [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.000014试验5-特征值、特征向量和二次型>>c=poly(A) % A的特征多项式的n+1个按降幂排列的系数c= Columns 1 through 5 1 -4 0 16 -16>>f =poly2sym(c) % 将多项式向量c表示为符号形式f= x^4-4*x^3+3/1125899906842624*x^2+16*x-16 % f 即为A的特征多项式|λE-A|=λ4-4λ3+16λ-16 15试验5-特征值、特征向量和二次型 例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试验5-特征值、特征向量和二次型>> [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 117试验5-特征值、特征向量和二次型>>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>>inv(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)18试验5-特征值、特征向量和二次型>>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已经是一个正交矩阵。
19试验5-特征值、特征向量和二次型3. 二次型通过正交变换化为标准型 对任意的实二次型 ,其中 是 阶实对称矩阵,一定可以经过正交的变量替换 变成标准形 其中,系数 是实对称矩阵 的全部特征值 在MATLAB中,可以运用eig命令,计算系 数矩阵 的特征值矩阵 和特征向量矩阵 , 即可得到正交变换 以及二次型的标准型 20试验5-特征值、特征向量和二次型 例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试验5-特征值、特征向量和二次型>> 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试验5-特征值、特征向量和二次型>> [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试验5-特征值、特征向量和二次型>> syms y1 y2 y3 y4; % 变量声明>> Y=[y1;y2;y3;y4] Y= [y1] [y2] [y3] [y4]24试验5-特征值、特征向量和二次型>> X=P*Y % 正交变换X=PY X= [-1/2*y1+1/2*2^(1/2)*y2+29/1441872*y3+1/2*y4] [1/2*y1- 5822673418478107/4502572032*y2+ 1/2*2^(1/2)*y3+1/2*y4] [1/2*y1+1/2*2^(1/2)*y2+3/1441872*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试验5-特征值、特征向量和二次型 例7. 计算正交的变量替换 ,化二次型为标准型。
程序设计>> A=[4 2 2;2 4 2;2 2 4] % 二次型的系数矩阵A= 4 2 2 2 4 2 2 2 4>> format short 26试验5-特征值、特征向量和二次型>> [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试验5-特征值、特征向量和二次型>> 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) 28试验5-特征值、特征向量和二次型4. 二次型的正定性判定 实二次型 称为正定二次型,如果对任何 ,都有 。
正定二次型的矩阵称为正定矩阵 判定二次型为正定的充分必要条件是,它的系数矩阵A的特征值全部为正,或者A的各阶主子为正 在MATLAB中,可以运用eig命令计算系数矩阵A的特征值矩阵D或者计算A的各阶主子式来进行判定 29试验5-特征值、特征向量和二次型 例8. 判定二次型的正定性 程序设计: example8.mclear all % 清除各种变量A=[2 2 –2;2 5 –4;-2 –4 5] D=eig(A) if all(D>0) fprintf('二次型正定' ) else fprintf('二次型非正定' ) end 30试验5-特征值、特征向量和二次型 运行结果:A= 2 2 -2 2 5 -4 -2 -4 5D= 1.0000 1.0000 10.0000二次型正定31试验5-特征值、特征向量和二次型 例9. 利用主子式法判定二次型的正定性。
程序设计:example9.mclear allA=[1 –1 2 1;-1 3 0 –3;2 0 9 –6;1 –3 –6 19]c=1; 32试验5-特征值、特征向量和二次型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) fprintf('判定的结论:二次型非正定' )else fprintf('判定的结论:二次型正定' )end33试验5-特征值、特征向量和二次型 执行的结果:A= 1 -1 2 1 -1 3 0 -3 2 0 9 -6 1 -3 -6 19第1阶主子式为B= 1第1阶主子式的值为 ans= 1 34试验5-特征值、特征向量和二次型第2阶主子式为B= 1 -1 -1 3第2阶主子式的值为ans= 2第3阶主子式为B= 1 -1 2 -1 3 0 2 0 9 35试验5-特征值、特征向量和二次型第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试验5-特征值、特征向量和二次型 例10. 判定二次型的正定性。
程序设计:example10.m clear allA=[10 4 12;4 2 –14;12 –14 1]c=1; for i=1:3 fprintf('第%d阶主子式为', i ) B=A(1:i,1:i) fprintf('第%d阶主子式的值为', i )37试验5-特征值、特征向量和二次型 det(B) if (det(B)<0) c=-1; break endendif (c==-1) fprintf('判定的结论:二次型非正定' )else fprintf('判定的结论:二次型正定' )end38试验5-特征值、特征向量和二次型 执行的结果:A= 10 4 12 4 2 -14 12 -14 1第1阶主子式为B= 10第1阶主子式的值为ans= 10第2阶主子式为 39试验5-特征值、特征向量和二次型B= 10 4 4 2第2阶主子式的值为ans= 4第3阶主子式为B= 10 4 12 4 2 -14 12 -14 1第3阶主子式的值为ans= -3588判定的结论:二次型非正定40试验5-特征值、特征向量和二次型。
