- Matlab 教程
- MATLAB - 首页
- MATLAB - 概述
- MATLAB - 特性
- MATLAB - 环境设置
- MATLAB - 编辑器
- MATLAB - 在线
- MATLAB - 工作区
- MATLAB - 语法
- MATLAB - 变量
- MATLAB - 命令
- MATLAB - 数据类型
- MATLAB - 运算符
- MATLAB - 日期和时间
- MATLAB - 数字
- MATLAB - 随机数
- MATLAB - 字符串和字符
- MATLAB - 文本格式化
- MATLAB - 时间表
- MATLAB - M 文件
- MATLAB - 冒号表示法
- MATLAB - 数据导入
- MATLAB - 数据输出
- MATLAB - 数据归一化
- MATLAB - 预定义变量
- MATLAB - 决策
- MATLAB - 决策
- MATLAB - If End 语句
- MATLAB - If Else 语句
- MATLAB - If…Elseif Else 语句
- MATLAB - 嵌套 If 语句
- MATLAB - Switch 语句
- MATLAB - 嵌套 Switch
- MATLAB - 循环
- MATLAB - 循环
- MATLAB - For 循环
- MATLAB - While 循环
- MATLAB - 嵌套循环
- MATLAB - Break 语句
- MATLAB - Continue 语句
- MATLAB - End 语句
- MATLAB - 数组
- MATLAB - 数组
- MATLAB - 向量
- MATLAB - 转置运算符
- MATLAB - 数组索引
- MATLAB - 多维数组
- MATLAB - 兼容数组
- MATLAB - 分类数组
- MATLAB - 元胞数组
- MATLAB - 矩阵
- MATLAB - 稀疏矩阵
- MATLAB - 表格
- MATLAB - 结构体
- MATLAB - 数组乘法
- MATLAB - 数组除法
- MATLAB - 数组函数
- MATLAB - 函数
- MATLAB - 函数
- MATLAB - 函数参数
- MATLAB - 匿名函数
- MATLAB - 嵌套函数
- MATLAB - 返回语句
- MATLAB - 空函数
- MATLAB - 局部函数
- MATLAB - 全局变量
- MATLAB - 函数句柄
- MATLAB - 滤波器函数
- MATLAB - 阶乘
- MATLAB - 私有函数
- MATLAB - 子函数
- MATLAB - 递归函数
- MATLAB - 函数优先级顺序
- MATLAB - 映射函数
- MATLAB - 平均值函数
- MATLAB - End 函数
- MATLAB - 错误处理
- MATLAB - 错误处理
- MATLAB - Try...Catch 语句
- MATLAB - 调试
- MATLAB - 绘图
- MATLAB - 绘图
- MATLAB - 绘制数组
- MATLAB - 绘制向量
- MATLAB - 条形图
- MATLAB - 直方图
- MATLAB - 图形
- MATLAB - 2D 线图
- MATLAB - 3D 图
- MATLAB - 格式化绘图
- MATLAB - 对数坐标轴图
- MATLAB - 绘制误差条
- MATLAB - 绘制 3D 等值线
- MATLAB - 极坐标图
- MATLAB - 散点图
- MATLAB - 绘制表达式或函数
- MATLAB - 绘制矩形
- MATLAB - 绘制频谱图
- MATLAB - 绘制网格曲面
- MATLAB - 绘制正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 线性插值
- MATLAB - 2D 数组插值
- MATLAB - 3D 数组插值
- MATLAB - 多项式
- MATLAB - 多项式
- MATLAB - 多项式加法
- MATLAB - 多项式乘法
- MATLAB - 多项式除法
- MATLAB - 多项式的导数
- MATLAB - 变换
- MATLAB - 变换
- MATLAB - 拉普拉斯变换
- MATLAB - 拉普拉斯滤波器
- MATLAB - 高斯-拉普拉斯滤波器
- MATLAB - 逆傅里叶变换
- MATLAB - 傅里叶变换
- MATLAB - 快速傅里叶变换
- MATLAB - 2D 逆余弦变换
- MATLAB - 向坐标轴添加图例
- MATLAB - 面向对象
- MATLAB - 面向对象编程
- MATLAB - 类和对象
- MATLAB - 函数重载
- MATLAB - 运算符重载
- MATLAB - 用户定义类
- MATLAB - 复制对象
- MATLAB - 代数
- MATLAB - 线性代数
- MATLAB - 高斯消元法
- MATLAB - 高斯-约旦消元法
- MATLAB - 简化行阶梯形
- MATLAB - 特征值和特征向量
- MATLAB - 积分
- MATLAB - 积分
- MATLAB - 二重积分
- MATLAB - 梯形法则
- MATLAB - 辛普森法则
- MATLAB - 杂项
- MATLAB - 微积分
- MATLAB - 微分
- MATLAB - 矩阵的逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用资源
- MATLAB - 快速指南
- MATLAB - 有用资源
- MATLAB - 讨论
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