MATLAB - 特征值和特征向量



特征值和特征向量是线性代数中的基本概念,广泛应用于各个领域,包括物理学、工程学和数据分析。在 MATLAB 中,可以轻松地探索和计算这些概念。

什么是特征值?

特征值是一个标量,表示为 λ(lambda),与向量空间的线性变换相关联。它表示在变换期间相应特征向量缩放的因子。

什么是特征向量?

特征向量是一个非零向量,当对其应用线性变换时,它只会按标量因子改变。换句话说,如果 A 是一个矩阵,v 是 A 的对应于特征值 λ 的特征向量,则 -

Av=λv

这里,A 是一个方阵,v 是特征向量,λ 是特征值。

MATLAB 函数

MATLAB 提供了计算特征值和特征向量的内置函数。

使用 eig

此函数计算矩阵的特征值和特征向量。

语法

e = eig(A)
[V,D] = eig(A)
[V,D,W] = eig(A)
e = eig(A,B)
[V,D] = eig(A,B)
[V,D,W] = eig(A,B)
[___] = eig(A,balanceOption)
[___] = eig(A,B,algorithm)
[___] = eig(___,outputForm)

语法说明

e = eig(A) 返回一个列向量,其中包含方阵 A 的特征值。

[V,D] = eig(A) 返回一个对角矩阵 D,其中包含 A 的特征值,以及一个矩阵 V,其列是相应的特征向量。这意味着将 A 乘以 V 与将 V 乘以 D 相同。

[V,D,W] = eig(A) 还返回一个完整的矩阵 W,其列是相应的左特征向量。这意味着将 W 的转置乘以 A 与将 D 乘以 W 的转置相同。

特征值问题是关于找到方程 Av = λv 的解,其中 A 是一个方阵,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 值是相应的右特征向量。左特征向量 w 满足方程 w'A = λw'B。

[___] = eig(A, balanceOption),其中 balanceOption 为 "nobalance",关闭算法中的初步平衡步骤。默认情况下,balanceOption 为 "balance",打开平衡。eig 函数可以返回前面示例中提到的任何输出参数。

[___] = eig(A,B,algorithm),其中 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 的特征值。考虑以下代码 -

% Define the matrix A
A = [1, 2, 3;
     4, 5, 6;
     7, 8, 9];

% Compute the eigenvalues
e = eig(A)

在上面的示例中 -

  • 矩阵 A 定义为一个 3x3 矩阵,其条目如所示。
  • eig(A) 函数计算矩阵 A 的特征值。
  • eig(A) 的结果存储在变量 e 中,这是一个包含 A 的特征值的列向量。

计算代码时,我们得到的输出如下 -

>> % Define the matrix A
A = [1, 2, 3;
     4, 5, 6;
     7, 8, 9];

% Compute the eigenvalues
e = eig(A)


e =

   16.1168
   -1.1168
   -0.0000

示例 2:使用 [V,D] = eig(A) 获取特征值和特征向量

在 MATLAB 中,您可以使用 eig 函数找到矩阵 A 的特征值和特征向量。

考虑以下代码 -

% Define the matrix A
A = [2, -1;
     4, 3];

% Compute the eigenvalues and eigenvectors
[V, D] = eig(A);

% Display the eigenvalues
disp('Eigenvalues:');
disp(D);

% Display the eigenvectors
disp('Eigenvectors:');
disp(V);

在上面的代码中,我们有 -

  • 矩阵 A 定义为一个 2x2 矩阵,其条目如所示。
  • [V, D] = eig(A) 函数计算矩阵 A 的特征值 (D) 和相应的特征向量 (V)。
  • D 是一个包含 A 的特征值的对角矩阵。
  • V 是一个矩阵,其列是相应的特征向量。

执行代码时,我们得到的输出如下 -

>> % Define the matrix A
A = [2, -1;
     4, 3];

% Compute the eigenvalues and eigenvectors
[V, D] = eig(A);

% Display the eigenvalues
disp('Eigenvalues:');
disp(D);

% Display the eigenvectors
disp('Eigenvectors:');
disp(V);

Eigenvalues:
   2.5000 + 1.9365i   0.0000 + 0.0000i
   0.0000 + 0.0000i   2.5000 - 1.9365i

Eigenvectors:
  -0.1118 + 0.4330i  -0.1118 - 0.4330i
   0.8944 + 0.0000i   0.8944 + 0.0000i
广告