MATLAB程序设计与应用
3. 第3章 MATLAB矩阵处理
3.4 矩阵的特征值与特征向量
对于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)。
常用调用格式:
- V=eig(A):求矩阵A的全部特征值,构成向量V。
- [X,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X各列是相应的特征向量,满足A·X=X·D。
- [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];
>> [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的各列构成的向量。验证结果A·X和X·D的值均为
>> X * D
ans =
-0.0120 0.6576 1.3481
0.0114 0.8320 1.1705
0.0016 -1.0325 1.8018
示例:用求特征值的方法解方程
先构造与方程对应的多项式的伴随矩阵A,再求A的特征值。A的特征值即为方程的根。
>> p = [3,-7,0,5,2,-18];
>> A = compan(p); % 求A 的伴随矩阵
>> x1 = eig(A) % 求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) % 直接求多项式p的零点
x2 =
2.1837 + 0.0000i
1.0000 + 1.0000i
1.0000 - 1.0000i
-0.9252 + 0.7197i
-0.9252 - 0.7197i
可以看出,两种方法求得的方程的根是完全一致的,实际上,roots 函数正是应用求伴随矩阵的特征值的方法来求方程的根。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。