矩阵的特征值与特征向量
对于n阶方阵A,求数λ和向量ξ,使得等式Aξ=λξ成立,满足等式的数λ称为A的特征值,而向量ξ称为A的特征向量。
实际上,方程Aξ=λξ和(A-λI)ξ=0是两个等价方程。要使方程(A-λI)ξ=0有非零解ξ,必须使其系数行列式为0,即|A-λI|=0。
线性代数中已经证明,行列式|A-λI|是一个关于λ的n次多项式,因而方程|A-λI|=0是一个n次方程,有n个根(含重根),就是矩阵A的n个特征值,每一个特征值对应无穷多个特征向量。矩阵的特征值问题有确定解,但特征向量问题没有确定解。
特征值和特征向量在科学研究和工程计算中有广泛应用。在MATLAB中,计算矩阵A的特征值和特征向量的函数是**eig(A)**,常用的调用格式有以下3种。
(1)V=eig(A):求矩阵A的全部特征值,构成向量V。
(2)[X,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X各列是相应的特征向量,满足A·X=X·D。
(3)[X,D]=eig(A,'nobalance):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。
一个矩阵的特征向量有无穷多个,eig函数只找出其中的n个,A的其他特征向量均可由这n个特征向量的线性组合表示。
>> A=[1,1,0.5;1,1,0.25;0.5,0.25,2]
A =
1.0000 1.0000 0.5000
1.0000 1.0000 0.2500
0.5000 0.2500 2.0000
>> [X,D]=eig(A)
X =
0.7212 0.4443 0.5315
-0.6863 0.5621 0.4615
-0.0937 -0.6976 0.7103
D =
-0.0166 0 0
0 1.4801 0
0 0 2.5365
求得的3个特征值是-0.0166、1.4801和2.5365,各特征值对应的特征向量为X的各列构成的向量。验证结果AX和XD的值均为
>> A*X
ans =
-0.0120 0.6576 1.3481
0.0114 0.8320 1.1705
0.0016 -1.0325 1.8018
>> X*D
ans =
-0.0120 0.6576 1.3481
0.0114 0.8320 1.1705
0.0016 -1.0325 1.8018
例1用求特征值的方法解方程。
3x⁵-7x⁴+5x²+2x-18=0
先构造与方程对应的多项式的伴随矩阵A,再求A的特征值。
>> p=[3,-7,0,5,2,-18];
>> A=compan(p)
A =
2.3333 0 -1.6667 -0.6667 6.0000
1.0000 0 0 0 0
0 1.0000 0 0 0
0 0 1.0000 0 0
0 0 0 1.0000 0
>> x1=eig(A)
x1 =
2.1837 + 0.0000i
1.0000 + 1.0000i
1.0000 - 1.0000i
-0.9252 + 0.7197i
-0.9252 - 0.7197i
>> x2=roots(p)
x2 =
2.1837 + 0.0000i
1.0000 + 1.0000i
1.0000 - 1.0000i
-0.9252 + 0.7197i
-0.9252 - 0.7197i
A的特征值即为方程的根可以看出,两种方法求得的方程的根是完全一致的,实际上,roots函数正是应用求伴随矩阵的特征值的方法来求方程的根。
Matlab学习笔记内容来源于《MATLAB程序设计与应用 第三版》刘卫国主编