掌握 MATLAB 中的特征值和特征向量:实用指南
特征值和特征向量是线性代数中的基本概念,广泛应用于物理、工程和数据分析等各个领域。在 MATLAB 中,可以轻松探索和计算这些概念。
什么是特征值?
特征值是一个标量,表示为 (lambda),与向量空间的线性变换相关。它表示变换过程中相应特征向量缩放的因子。
什么是特征向量?
特征向量是一个非零向量,当对其应用线性变换时,它仅改变标量因子。换句话说,如果 A 是矩阵,则 v 是 A 的特征向量,对应于特征值 if -
AV=v
这里,A是方阵,v是特征向量, 是特征值。
MATLAB 函数
MATLAB 提供内置函数来计算特征值和特征向量。
使用 eig
该函数计算矩阵的特征值和特征向量。
语法
<前>01前>语法解释
e =eig(A) 返回一个包含方阵 A 特征值的列向量。
[V,D] =eig(A) 返回具有 A 特征值的对角矩阵 D 和矩阵 V,其列是相应的特征向量。这意味着 A 乘以 V 与 V 乘以 D 相同。
[V,D,W] =eig(A) 还返回一个完整矩阵 W,其列是相应的左特征向量。这意味着将 W 的转置乘以 A 与将 D 乘以 W 的转置相同。
特征值问题是寻找方程 Av =v 的解,其中 A 是方阵,v 是列向量,v 是标量。满足这个方程的值是特征值,满足它的v值是右特征向量。左特征向量w满足方程w'A =w'。
e =eig(A,B) 返回具有方阵 A 和 B 的广义特征值的列向量。
[V,D] =eig(A,B) 返回具有广义特征值的对角矩阵 D 和一个满矩阵 V,其列是相应的右特征向量。这意味着 A 乘以 V 与 B、V 和 D 相乘相同。
[V,D,W] =eig(A,B) 还返回一个完整矩阵 W,其列是相应的左特征向量。这意味着将 W 的转置乘以 A 与将 D、W 的转置和 B 相乘相同。
广义特征值问题是求方程 Av =Bv 的解,其中 A 和 B 是方阵,v 是列向量,v 是标量。满足该方程的值是广义特征值,v值是相应的右特征向量。左特征向量 w 满足方程 w'A =w'B。
[___] =eig(A,balanceOption),其中balanceOption为“nobalance”,关闭算法中的初步平衡步骤。默认情况下,balanceOption为“balance”,这会打开平衡。 eig 函数可以返回前面示例中提到的任何输出参数。
[___] =eig(A,B,algorithm),其中算法为“chol”,使用 B 的 Cholesky 分解来计算广义特征值。默认算法取决于A和B的属性,但当A或B不对称时,它是“qz”(QZ算法)。
[___] =eig(___,outputForm) 使用前面提到的任何输入或输出参数,以 outputForm 指定的格式返回特征值。将outputForm设置为“vector”以获取列向量中的特征值,或设置为“matrix”以获取对角矩阵中的特征值。
Matlab 函数 eig() 示例
以下是一些示例来说明如何使用它 -
示例 1:使用 e =eig(A) 计算特征值
在 MATLAB 中,您可以使用 eig 函数求出矩阵 A 的特征值。考虑以下代码 -
<前>10前>在上面的例子中 -
- 矩阵 A 定义为 3x3 矩阵,其条目如图所示。
- eig(A) 函数计算矩阵 A 的特征值。
- eig(A) 的结果存储在变量 e 中,它是一个包含 A 特征值的列向量。
当计算代码时,我们得到的输出如下 -
<前>28前>示例 2:使用 [V,D] =eig(A) 获取 eigenValues 和 eigenVectors
在MATLAB中,您可以使用eig函数求矩阵A的特征值和特征向量。
考虑以下代码 -
<前>32前>在上面的代码中,我们有 -
- 矩阵 A 定义为 2x2 矩阵,其条目如图所示。
- [V, D] =eig(A) 函数计算矩阵 A 的特征值 (D) 和相应的特征向量 (V)。
- D 是包含 A 特征值的对角矩阵。
- V 是一个矩阵,其列是相应的特征向量。
当代码执行时,我们得到的输出如下 -
<前>40前>MATLAB