MATLAB - 特征值和特征向量
MATLAB - 特征值与特征向量现代指南
Section titled “MATLAB - 特征值与特征向量现代指南”特征值和特征向量是线性代数的核心概念,在科学和工程领域有着深远的应用。它们揭示了线性变换的基本性质。MATLAB 提供了强大的、数值稳定的函数来计算它们。
想象一个矩阵 A 是一个线性变换,它在空间中拉伸、收缩或旋转向量。这个变换的特征向量是一个特殊的非零向量 v,当变换 A 作用于它时,其方向不会改变。它只会被缩放(拉伸或收缩)。
对应的特征值 λ (lambda) 是特征向量被缩放的标量因子。这种关系由基本方程捕捉:
A * v = λ * v其中 A 是一个方阵,v 是特征向量,λ 是特征值。
使用 eig 计算特征值和特征向量
Section titled “使用 eig 计算特征值和特征向量”MATLAB 中用于此任务的主要函数是 eig。让我们探索其最常见用法。
语法 1:仅获取特征值
Section titled “语法 1:仅获取特征值”e = eig(A)这返回一个列向量 e,其中包含方阵 A 的特征值。
语法 2:获取特征值和特征向量
Section titled “语法 2:获取特征值和特征向量”[V, D] = eig(A)D是一个对角矩阵,其中对角线元素D(i,i)是特征值。V是一个矩阵,其列V(:,i)是对应的右特征向量。- 此输出满足矩阵方程
A*V = V*D。
示例 1:一个简单的几何变换
Section titled “示例 1:一个简单的几何变换”让我们使用一个表示沿 x 轴拉伸和沿 y 轴收缩的矩阵。特征向量和特征值应该是直观的。
% 变换:x 轴拉伸 3 倍,y 轴收缩 0.5 倍A = [3 0; 0 0.5];
% 计算特征值和特征向量[V, D] = eig(A);
% 以清晰的格式显示结果lambda1 = D(1,1);v1 = V(:,1);lambda2 = D(2,2);v2 = V(:,2);
fprintf('特征值 1: %.2f\n', lambda1);disp('对应的特征向量 1:');disp(v1);
fprintf('\n特征值 2: %.2f\n', lambda2);disp('对应的特征向量 2:');disp(v2);输出将显示特征值 0.5 和 3.0,以及分别沿 y 轴 [0; 1] 和 x 轴 [1; 0] 的特征向量。这证实了我们的直觉:这些轴上的向量仅通过变换进行缩放。
示例 2:一个更复杂的矩阵
Section titled “示例 2:一个更复杂的矩阵”对于大多数矩阵,特征向量不与轴对齐。
% 定义矩阵A = [1 -1; 2 4];
% 计算特征值和特征向量[V, D] = eig(A);
% 显示结果eigenvalues = diag(D);disp('特征值:');disp(eigenvalues);
disp('特征向量(V 的列):');disp(V);验证:终极健全性检查
Section titled “验证:终极健全性检查”您可以通过检查 A*V 是否接近 V*D 来验证结果的正确性。由于浮点算术的原因,它们可能不完全相等,因此我们检查差异是否非常小。
% 使用上一个示例中的 A、V 和 D
% 计算差值residual = A*V - V*D;
% 计算最大绝对误差max_error = max(abs(residual), [], 'all');
fprintf('\n验证:A*V - V*D 的最大误差为 %e\n', max_error);% 该值应非常接近零,例如 1e-15。为什么特征值和特征向量很重要?(实际应用)
Section titled “为什么特征值和特征向量很重要?(实际应用)”- 主成分分析(PCA):在数据科学和机器学习中,协方差矩阵的特征向量是主成分,用于降维。
- 结构工程:它们用于查找结构的固有频率和振动模式,有助于防止共振。
- 量子力学:在量子力学中,物理量由算子(矩阵)表示,其特征值是可能的测量值。
- 图论:图的邻接矩阵中对应最大特征值的特征向量用于 Google 的 PageRank 等算法中,以确定网络中节点的重要性。
- 稳定性分析:在控制系统中,系统矩阵的特征值决定其稳定性。如果所有特征值的实部都为负,则系统稳定。
高级主题(简要介绍)
Section titled “高级主题(简要介绍)”eig 函数在高级数值线性代数方面具有更多功能:
- 广义特征值问题:
[V,D] = eig(A,B)解决问题A*V = B*V*D。这在有限元分析等领域很常见。 - 数值稳定性:可以使用可选参数
'nobalance',但默认的'balance'选项在计算前对矩阵A进行置换和缩放,以提高数值精度。除非您是专家,否则建议坚持使用默认设置。