本文主要是介绍MATLAB中的eig函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有5种:
- E=eig(A):求矩阵A的全部特征值,构成向量E。
- [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。
- [V,D]=eig(A,'nobalance'):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。
- E=eig(A,B):由eig(A,B)返回N×N阶方阵A和B的N个广义特征值,构成向量E。
- [V,D]=eig(A,B):由eig(A,B)返回方阵A和B的N个广义特征值,构成N×N阶对角阵D,其对角线上的N个元素即为相应的广义特征值,同时将返回相应的特征向量构成N×N阶满秩矩阵,且满足AV=BVD。
eig
Find eigenvalues and eigenvectors
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) 最为常用,注意,第一列为对应第一个特征值的特征向量。
附录:
matlab中关于eig的说明:
- E = EIG(X) is a vector containing the eigenvalues of a square matrix X.
- [V,D] = EIG(X) produces a diagonal matrix D of eigenvalues and a full matrix V whose columns are the corresponding eigenvectors so that X*V = V*D.
- [V,D] = EIG(X,'nobalance') performs the computation with balancing disabled, which sometimes gives more accurate results for certain problems with unusual scaling. If X is symmetric, EIG(X,'nobalance') is ignored since X is already balanced.
- E = EIG(A,B) is a vector containing the generalized eigenvalues of square matrices A and B.
- [V,D] = EIG(A,B) produces a diagonal matrix D of generalized eigenvalues and a full matrix V whose columns are the corresponding eigenvectors so that A*V = B*V*D.
- EIG(A,B,'chol') is the same as EIG(A,B) for symmetric A and symmetric positive definite B.
It computes the generalized eigenvalues of A and B using the Cholesky factorization of B. - EIG(A,B,'qz') ignores the symmetry of A and B and uses the QZ algorithm.
这篇关于MATLAB中的eig函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!