第三章矩阵的分解
(一) 矩阵的特征值与特征向量(Eigenvalues and EigenVectors)
1. 矩阵的特征值与特征向量
解Ax=λx 运算式中的λ及其所对应的非零的向量x , 我们称λ/ x 为矩阵A的
特征值与特征向量。
改写原式为, (A-λI) x = 0 , I 是单位矩阵, 我们令P(λ) = det(A-λI) = 0, 则 P(λ)的展开式称为矩阵 A 的特征多项式, 解出矩阵 A 的特征多项式, 就可得矩阵 A 的所有eigenvalues 。再将每一个 eigenvalue 代入原式中, 即可求出其相对应的 eigenvectors 。
例 1 : 解矩阵A = [ -9 -3 -16 ; 13 7 16; 3 3 10] 的特征值与特征向量。
【解 1】先利用函数 poly() 求出矩阵 A 的特征多项式, 再用roots()函数,
求出特征多项式所有的根。
A=[ -9 -3 -16; 13 7 16; 3 3 10 ] ;
poly(A) %利用一个向量来储存此多项式的系数
roots(poly(A))
ans =
- -
ans =
-
上面输出结果中, 第一个 ans 是 A 的特征多项式的系数,
即
第二个 ans 是 A 的eigenvalues : 10, 4, -6
接着针对某个特征值, 我们找出其对应之特征向量
利用 rref() 函数, 求出(A-λI) 的 row reduced echelon form或是
利用 null() 函数, 求出(A-λI) null space 的基底向量
A = [ -9 -3 -16; 13 7 16; 3 3 10 ];
rref(A - 10*eye(size(A)))
null(A - 10*eye(size(A)))
ans =
1 0 1
0 1 -1
0 0 0
ans =
-
-
上面输出结果中, 第一个 ans 是的 reduced row echelon
form
即令,
得为 10所对应的eigenvectors
第二个 ans 是 null space 的基底向量, 这个基底向量
的长度为1. 上述的解x, 当取 t=-1再除以norm(x), 即可得这个
基底向量。
依此方法, 将其他的 eigenvectors 求出。
【解 2】使用 matlab 函数 eig(), eig() 有两种不同的输出形式:
eig(A) 只传回eigenvalues, 而[V,D] = eig(A) 则传回D是由
eigenvalues形成的diagonal matrix; V是由eigenvalues所对应的
eigenvectors形成的matrix , 满足A*V=V*D , 当 V是nonsingular
时, 则表示矩阵A可对角化。
A = [ 1 1 -1; 2 0 1; 1 1 0] ;
eig(A) % 传回eigenvalues所形成的行向量
[V, D] = eig(A) % D是由eigenvalues形成的diagonal matrix
% V是由eigenvalues所对应的eigenvectors形成的matrix
ans =
-
V =
- -
-
- -
D =
0 0
0 - 0
0 0
在上面的输出结果中, V的第一行行向量, 为eigenvalue
所对应的eigenvector ; 第二行行向量, 为eigenvalue -
对应的eigenvector ; 第三行行向量, 即为eigenvalue
对应的eigenvector。
rank(V) %检查V的行向量是否线性独立
inv(V)*A*V %验证A是否对角化
ans =
3
ans =
- -
- -
- -
从 rank(V)
matlab矩阵的分解 来自淘豆网www.taodocs.com转载请标明出处.