1 / 60

实验三

实验三. 矩阵的特征值和特征向量 二次型. 实验目的. 1 、学会用 MATLAB 软件求矩阵的特征值和特征向量. 2 、学会用 MATLAB 软件将二次型化为标准型. 3 、通过用 MATLAB 软件编程来判断二次型的正定性. 一、特征值与特征向量. 用 Matlab 计算特征值和特征向量的命令如下:. d=eig(A). 仅计算 A 的特征值 ( 以向量形式 d 存放 ). 其中: D 为由特征值构成的对角阵, V 为由特征向量作为列向量构成的矩阵。且使 AV = VD 成立. [V,D]=eig(A). trace(A). 计算矩阵 A 的迹.

adonica
Download Presentation

实验三

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 实验三 矩阵的特征值和特征向量 二次型

  2. 实验目的 1、学会用MATLAB软件求矩阵的特征值和特征向量 2、学会用MATLAB软件将二次型化为标准型 3、通过用MATLAB软件编程来判断二次型的正定性

  3. 一、特征值与特征向量

  4. 用Matlab计算特征值和特征向量的命令如下: d=eig(A) 仅计算A的特征值(以向量形式d存放) 其中:D为由特征值构成的对角阵,V为由特征向量作为列向量构成的矩阵。且使 AV=VD 成立 [V,D]=eig(A) trace(A) 计算矩阵A的迹

  5. 例1:求方阵 的特征值、特征向量和迹 解: >> A=[2 2 -2;2 5 -4;-2 -4 5]; >> [V D]=eig(A) >> trace(A)

  6. V = -0.2981 0.8944 0.3333 -0.5963 -0.4472 0.6667 -0.7454 0 -0.6667 >> trace(A) ans = 12 D = 1.0000 0 0 0 1.0000 0 0 0 10.0000

  7. 答: 特征值为:

  8. 例2:求方阵 的特征值、特征向量和迹 解: >> A=[4 6 0;-3 -5 0;-3 -6 1]; >> [V D]=eig(A) >> trace(A)

  9. 二、矩阵的相似对角化

  10. 例3:判断下列方阵是否可对角化。若可对角 化,求出可逆阵P,使P-1AP为对角阵。

  11. 解(1): >> A=[4 6 0;-3 -5 0;-3 -6 1]; >> [V D]=eig(A) ans = 3 >> rank(V) V = 0 0.5774 -0.8944 0 -0.5774 0.4472 1.0000 -0.5774 0 D = 1 0 0 0 -2 0 0 0 1 答:A可对角化,且

  12. 解(2): >> A=[0 1 0;-1 2 0;-1 1 1]; >> [V D]=eig(A) ans = 2 >> rank(V) V = 0 0.6325 0.4511 0 0.6325 0.4511 1.0000 0.4472 0.7701 D = 1 0 0 0 1 0 0 0 1 答:A不可对角化。

  13. 下述函数可用来判断矩阵是否可对角化,若可对角化返回1,否则返回0。下述函数可用来判断矩阵是否可对角化,若可对角化返回1,否则返回0。

  14. return; end d=e(1); f=sum(abs(e-d)<10*eps); g=n-rank(A-d*eye(n)); if f~=g y=0; return; end e(find(abs(e-d)<10*eps))=[ ]; end function y=trigle(A) %可对角化返回1,否则返回0。 y=1;c=size(A); if c(1)~=c(2) y=0; return; end e=eig(A);n=length(A); while 1 if isempty(e)

  15. function y=trigle(A) %可对角化返回1,否则返回0。 y=1;c=size(A); if c(1)~=c(2) y=0; return end e=eig(A);n=length(A); while 1 if isempty(e) %若为空阵则为真

  16. return; end d=e(1); f=sum(abs(e-d)<10*eps); %特征值d的代数重数 g=n-rank(A-d*eye(n)); %特征值d的几何重数 if f~=g y=0; return; end e(find(abs(e-d)<10*eps))=[ ]; end

  17. 例4:判断下列方阵是否可对角化。若可对角 化,求出可逆阵P,使P-1AP为对角阵。

  18. 解(1): >> A=[4 -3 1 2;5 -8 5 4;6 -12 8 5;1 -3 2 2] ans = 0 >> trigle(A) 答:A不可对角化。 解(2): >> A=[1 1 1 1;1 1 –1 –1;1 –1 1 –1 ;1 –1 –1 1]; >> trigle(A) ans = 1 >> [P D]=eig(A)

  19. P = -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 0 D = -2.0000 0 0 0 0 2.0000 0 0 0 0 2.0000 0 0 0 0 2.0000 答:A可对角化,且

  20. 二、 二次型化标准型

  21. 例5:判断下列矩阵是否对称 解: A=[1 3 4 6;3 7 9 5;4 9 4 1;6 5 1 0]; B=A'; if(A==B) fprintf('A是对称矩阵') elseif(A==-B) fprintf('A是反对称矩阵') else fprintf('A既不是对称矩阵,也不是反对称矩阵') end A是对称矩阵

  22. Matlab中二次型化成标准形的命令为: [ P , T ] = schur (A) [ P , T ] = eig (A) 其中: A 二次型矩阵(即实对称矩阵); T 为 A 的特征值所构成的对角形矩阵; P 为 T 对应的正交变换的正交矩阵 , P 的列向量为 A的特征值所对应的特征向量

  23. 例6:求一个正交变换,将二次型 化成标准形 解:该二次型所对应的矩阵为

  24. >> A = [1 1 0 –1; 1 1 –1 0; 0 –1 1 1;-1 0 1 1]; >> [ P , T ] = schur (A) [ P , T ] = eig (A) 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

  25. T = -1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0 0 0 0 3.0000 答:所作的正交变换为: 二次型的标准型为:

  26. 例7:求一个正交变换,将二次型 化成标准形 解:该二次型所对应的矩阵为

  27. >> A = [4 –2 2;-2 1 –1/2;2 –1/2 1]; >> [ P , T ] = schur (A) P = 0.5458 -0.0000 0.8379 0.5925 0.7071 -0.3859 -0.5925 0.7071 0.3859

  28. T = -0.3423 0 0 0 0.5000 0 0 0 5.8423 答:所作的正交变换为: 二次型的标准型为:

  29. 三、 正定二次型的判定

  30. 1. 顺序主子式判断法 ⑴ 求二次型 F=X’AX 的矩阵 A 的各阶顺序 主子式 Di (i=1,2,3…..); ⑵判断 Di是否大于0 . 程序:建立函数文件 shxu.m

  31. function [C,M] =shxu(A) % C为A的各阶顺序主子式组成的向量 % M为判定向量: if C(i)>0, then M(i)=1; % others M(i)=0 n=size(A); C=[ ]; M=[ ]; for i=1:n(1) A1=A([1:i],[1:i]); D=det(A1); C=[C D]; if D>0 m=1; else m=0; end M=[M,m]; end

  32. ⑴ 求二次型 f =X’AX 的矩阵 A 的全部特征 值 (i=1,2,……); ⑵ 判断 是否大于 0 . 2、特征值判别法 程序:建立函数文件 tezh.m

  33. function [ T , M ] = tezh (A) n=size(A); T=(eig(A))’ ; M=[ ]; for i =1:n(1) if T(i)>0 m=1; else m=0; end M=[M,m]; end

  34. 例8判定下列二次型是否正定 解 二次型矩阵

  35. 方法一 顺序主子式 >> A = [1 –1 2 1;-1 3 0 –3;2 0 9 –6;1 –3 –6 19] ; >> [C,M] = shxu (A) C = 1 2 6 24 M = 1 1 1 1 答:此二次型是正定的。

  36. 方法二 特征值法 >> A = [ 1 –1 2 1;-1 3 0 –3;2 0 9 –6;1 –3 –6 19] >> [ T , M ] = tezh (A) T = 0.0643 2.2421 7.4945 22.1991 M = 1 1 1 1 答:此二次型是正定的。

  37. 例9判定下列二次型是否正定 解 二次型矩阵

  38. 方法一 顺序主子式 >> A = [9 –6 24;-6 130 –30;24 –30 71] ; >> [C,M] = shxu (A) C = 9 1134 6174 M = 1 1 1 答:此二次型是正定的。

  39. 方法二 特征值法 >> A = [9 –6 24;-6 130 –30;24 –30 71] ; >> [ T , M ] = tezh (A); T = 0.6576 65.0894 144.2530 M = 1 1 1 答:此二次型是正定的。

  40. 例10判定下列二次型是否正定 解 二次型矩阵

  41. 方法一 顺序主子式 >> A = [10 4 12;4 2 –14;12 –14 1] ; >> [C,M] = shxu (A) C = 10 4 -3588 M = 1 1 0 答:此二次型不是正定的。

  42. 方法二 特征值法 >> A = [10 4 12;4 2 –14;12 –14 1] ; >> [ T , M ] = tezh (A) T = -17.4209 10.1708 20.2501 M = 0 1 1 答:此二次型不是正定的。

  43. function [C,M] =shxu1(A) % C为A的各阶顺序主子式组成的向量 % M为判定向量: if C(i)>0, then M(i)=1; if C(i)<0, then M(i)=-1; others M(i)=0 n=size(A); C=[ ]; M=[ ]; for i=1:n(1) A1=A([1:i],[1:i]); D=det(A1); C=[C D]; if D>0 m=1; elseif D<0 m=-1; else m=0; end M=[M,m]; end

  44. function [ T , M ] = tezh1 (A) n=size(A); T=(eig(A))’ ; M=[ ]; for i =1:n(1) if T(i)<0 m=-1; else m=0; end M=[M,m]; end

More Related