在MATLAB中,`eig`函数用于计算矩阵的特征值和特征向量。以下是`eig`函数的一些常见调用格式及其用法:
求矩阵的全部特征值和特征向量
```matlab
[V, D] = eig(A)
```
其中,`V`是一个`N x N`矩阵,其列是矩阵`A`的左特征向量;`D`是一个`N x N`对角矩阵,其对角线上的元素是矩阵`A`的特征值。
求矩阵的全部特征值
```matlab
E = eig(A)
```
其中,`E`是一个`N x 1`列向量,包含矩阵`A`的全部特征值。
求矩阵的特征值和特征向量,并指定不进行相似变换
```matlab
[V, D] = eig(A, 'nobalance')
```
这种格式与第一种格式类似,但在计算特征值和特征向量时不对矩阵`A`进行相似变换。
求矩阵A和B的广义特征值
```matlab
[E, V, D] = eig(A, B)
```
其中,`E`是一个`N x 1`列向量,包含矩阵`A`和`B`的广义特征值;`V`是一个`N x N`矩阵,其列是矩阵`A`和`B`的广义特征向量;`D`是一个`N x N`对角矩阵,其对角线上的元素是相应的广义特征值。
示例
```matlab
% 定义一个矩阵
A = [1, 1, 0.5; 1, 1, 0.25; 0.5, 0.25, 2];
% 求矩阵A的全部特征值和特征向量
[V, D] = eig(A);
% 输出特征值和特征向量
disp('特征值:');
disp(D);
disp('特征向量:');
disp(V);
```
建议
确保在使用`eig`函数之前,矩阵`A`和`B`是有效的,并且满足所需的维度要求。
如果矩阵`A`是稀疏矩阵,可以考虑使用`eigs`函数来求解稀疏矩阵的特征值和特征向量,以提高计算效率。