根据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.
所以我们建立了4×4单位矩阵和矩阵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)