目录
一、特征值和特征向量的定义
二、特征值和特征向量的相关函数
三、特征值和特征向量的计算
一、特征值和特征向量的定义
假设A是一个n×n的矩阵,A的特征值问题就是找到下面方程组的解:
其中,λ为标量,V为矢量,若把矩阵A的n个特征值放在矩阵P的对角线上,相应的特征向量按照与特征值对应的顺序排列,作为矩阵V的列,特征值问题可以改写为:
如果V是非奇异的,该问题可以认为是一个特征值分解问题,此时关系式如下:
广义特征值问题是指方程A·x=λ·B·x的非平凡解问题,其中A、B都是n×n的矩阵,λ为标量。满足此方程的λ为广义特征值,对应的向量x为广义特征向量。
如果X是一个列向量为a的特征向量的矩阵,并且它的秩为n,那么特征向量线性无关。如果不是这样,则称矩阵为缺陷阵。如果X'·X=I,则特征向量正交,这对于对称矩阵是成立的。
二、特征值和特征向量的相关函数
现将MATLAB中矩阵特征值与特征向量的相关函数的具体调用格式及其功能列出:
- eig(A):求包含矩阵A的特征值的向量。
- [X,D]=eig(A):产生一个矩阵A的特征值在对角线上的对角矩阵D和矩阵X,它们的列是相应的特征向量,满足 AX=XD。为了得到有更好条件特征值的矩阵,要进行相似变换。
- [T,B]=balance(A):找到一个相似变换矩阵T和矩阵B,使得它们满足B=T-A·T。B是用命令balance求得的平衡矩阵。
- eig(A,'nobalance'):不经过平衡处理求得矩阵 A 的特征值和特征向量,也就是不进行平衡相似变换。
- eigs(A):返回一个由矩阵A的部分特征值组成的向量,和eig命令一样,但是不返回全部的特征值。如果不带有参量,则计算出最大的特征值。当计算所有特征值时,如果矩阵A的秩不小于6,则计算出6个特征值。
- eigs(f,n):求出矩阵A的部分特征值。在使用一个矩阵列的线性运算符时,字符串f中包含的是M文件的文件名,n指定问题的阶次。用这种方法来求特征值比开始就用运算符来求要快。
- eigs(A,B,k,sigma):求矩阵A的部分特征值,矩阵B的大小和A相同;如果没有给出B=eye(size(A)),那么k就是要计算的特征值的个数;如果k没有给出,就用小于6的数或者A的秩。变量sigma是一个实数或者复数的移位参数,或者下列文本字符串中的一个,文本字符串指明的是特征值的属性:“lm”为最大的特征值,“sm”为最小的特征值,“lr”为最大的实数部分,“sr”为最小的实数部分,“be”为同时求得最大和最小的实数部分。
- condeig(A):返回一个由矩阵A的特征值条件数组成的向量。
- [V,D,s]=condeig(A):返回[V,D]=eig(A)和s=condeig(A)。
三、特征值和特征向量的计算
示例:矩阵特征值与特征向量的计算
A=[0.8 0.2;0.2 0.8];
[Q,D]=eig(A) %矩阵的舒尔分解
B=Q*Q' %验证
运行结果: