关于 matlab 中的 eig 函数(求特征值和特征向量)
在 MATLAB 中,eig 用途:Find eigenvalues(特征值)and eigenvectors(特
征向量),常用的调用格式有 5 种:
(1) E=eig(A):求矩阵 A 的全部特征值,构成向量 E。(注意,第一列为对应第
一个特征值的特征向量)
(2) [V,D]=eig(A):求矩阵 A 的全部特征值,构成对角阵 D,并求 A 的特征向量
构成 V 的全部列向量。
(3) [V,D]=eig(A,'nobalance'):与第 2 种格式类似,但第 2 种格式中先对 A
作相似变换后求矩阵 A 的特征值和特征向量,而格式 3 直接求矩阵 A 的特征值和
特征向量。
(4) E=eig(A,B):由 eig(A,B)返回 N×N 阶方阵 A 和 B 的 N 个广义特征值,构成
向量 E。
(5) [V,D]=eig(A,B):由 eig(A,B)返回方阵 A 和 B 的 N 个广义特征值,构成 N×N
阶对角阵 D,其对角线上的 N 个元素即为相应的广义特征值,同时将返回相应的
特征向量构成 N×N 阶满秩矩阵,且满足 AV=BVD。
Syntax(句法)如下:
d = eig(A)
d = eig(A,B)
[V,D] = eig(A)
[V,D] = eig(A,'nobalance')
[V,D] = eig(A,B)
[V,D] = eig(A,B,flag)
d = eig(A)和 [V,D] = eig(A)最为常用
注意,第一列为对应第一个特征值的特征向量,
比如:B=rand(4)
B =
0.5653 0.7883 0.1365 0.9749
0.2034 0.5579 0.3574 0.6579
0.5070 0.1541 0.9648 0.0833
0.5373 0.7229 0.3223 0.3344
>> [a,b]=eig(B) %求矩阵 B 的全部特征值,构成对角阵 b,并求 B 的特征向量
构成 a 的列向量。
a =
-0.6277 -0.3761 -0.7333 0.7110
-0.4304 -0.5162 0.2616 -0.2155
-0.4297 0.1563 0.6049 -0.6471
-0.4859 0.7534 -0.1672 0.1713
b =
1.9539 0 0 0
0 -0.3623 0 0
0 0 0.3937 0
0 0 0 0.4370
则 1.9539 对应的特征向量为:
-0.6277
-0.4304
-0.4297
-0.4859