怎么用Matlab求矩阵的(最大)特征值和特征向量
在进行数据分析的时候我们有时候需要求我们建立的矩阵的特征值,尤其是最大特征值以及其对应的特征向量。小编还记得当初学习矩阵的时候笔算特征值和特征向量的痛苦,随着矩阵阶数的扩大,运算量比较大,但是如果使用软件Matlab来计算可以节省很多时间。所以今天小编和大家一起使用Matlab来计算矩阵的最大特征值和相应的特征向量
操作方法
- 01
启动Matlab ,在命令窗口输入要处理的矩阵A A=[1,4,2,4;1/4,1,1/2,1;1/2,2,1,1/2;1/4,1,2,1] 输入完成后回车软件会按行列的形式显示矩阵 顺便我们可以检查一下矩阵是否输入错误
- 02
接着输入[x,y]=eig(A) 回车 我们就可以看到矩阵的所有特征值和特征向量了 特征值是对角矩阵y 矩阵x的每一列对应一个y中相应列的特征值 此处注意括号必须是在英文输入法下输入 如果显示红色表示有问题需要重新输入
- 03
虽然我们已经计算出了矩阵的特征值和特征向量 但是如果我们只是计算这一个的话 我们完全可以观察得到最大的特征值 接着输入 eigenvalue=diag(y); lamda=eigenvalue(1) lamda表示最大的特征值 这里lamda=4.2498
- 04
求出矩阵最大特征值之后我们虽然可以一眼看到特征向量 但是不方便以后我们大量的处理矩阵 此时再输入 y_lamda = x(:, 1) 即最大特征值对应的特征向量
- 05
上面的过程只是适合我们进行一次两次这样的计算 如果遇到需要较多的矩阵的时候或者这样的过程只是某些计算中的几步需求的时候我们就需要把前面的计算合在一起进行计算 比如小编这样 同样我们也可以把这段代码放在需要的算法程序中
- 06
除了直接输入变量结果来查看的方法外 我们还可以直接在workspace中查看变量运算结果 如图中的lamda和y_lamda的结果值