gpt4 book ai didi

matlab - MATLAB 中的广义特征向量?

转载 作者:太空宇宙 更新时间:2023-11-03 19:44:58 26 4
gpt4 key购买 nike

在特征值多重性高的情况下,有没有一种方法可以通过单个命令或至少很少的命令获得广义特征向量?如果每个特征值的重数为 1,我可以使用 [V,D] = eig(A),但此命令不适用于多个特征值。

最佳答案

根据 Matlab 文档,[V,D] = eig(A,B) 生成广义特征值的对角矩阵 D 和满矩阵 V,其列是相应的特征向量,因此 A*V = B*V*D

这是一个如何自己做的例子......首先我们输入一个样本矩阵A:

 A = [ 35  -12   4   30 ;
22 -8 3 19 ;
-10 3 0 -9 ;
-27 9 -3 -23 ];

然后我们探索它的特征多项式、特征值和特征向量。

 poly(A) 
ans =
1.0000 -4.0000 6.0000 -4.0000 1.0000

这些是特征多项式的系数,因此是 (λ − 1)^4然后

 [V, D] = eigensys(A) 
V =
[ 1, 0]
[ 0, 1]
[-1, 3]
[-1, 0]


D =
[1]
[1]
[1]
[1]

因此 MATLAB 只找到两个独立的特征向量

 w1 = [1  0  -1  -1]';     
w2 = [0 1 3 0]';

与单个多重性 4 特征值 λ=1 相关联,因此具有缺陷 2。
所以我们设置4x4的单位矩阵和矩阵B=A-λI

  Id = eye(4);        
B = A - L*Id;

当L=1时,当我们计算B^2和B^3

  B2 = B*B      
B3 = B2*B

我们发现B2≠0,但是B3=0,所以应该有一个长度为3的链与
特征值 λ = 1 。选择第一个广义特征向量

 u1 = [1  0  0  0]'; 

我们计算进一步的广义特征向量

 u2 = B*u1 
u2 =
34
22
-10
-27

 u3 = B*u2 
u3 =
42
7
-21
-42

因此我们根据(普通)找到了长度为3的链{u3, u2, u1}特征向量 u3。 (为了使这个结果与 MATLAB 的 eigensys 计算一致,你可以检查 u3-42w1=7w2)

关于matlab - MATLAB 中的广义特征向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12672408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com