[我在math.stackexchange中发布了这个,并被告知它在这里更适合。]
对于我的线性代数介绍中的最后一个项目,我的任务是编写一个脚本,在MATLAB中找到对称矩阵的最大和第二大特征向量。为了获得最佳等级,它还必须包含一个功能。到目前为止,我已经能够让我的脚本验证矩阵是否对称,并且感觉有点卡住了。我需要一些指导才能完成这项任务,因为我的MATLAB经验非常有限。
这是我到目前为止所做的:
prompt = 'Please input a symmetric matrix A.'
A = input(prompt);
if (A == A'),
eig(A)
else
disp('A is not a symmetric matrix. Please input a symmetric matrix.')
end
请注意,该脚本有望验证A
是否对称,我有A
的特征值,但我不知道从这里到哪里:
如果有任何帮助,我将非常感激。谢谢!
答案 0 :(得分:3)
您有一个检查对称矩阵的解决方案。
对于特征向量,请参阅Luis Mendo建议的documentation for eig
,以及documentation for eigs
,它允许您根据k
请求sigma
特征向量:
eigs(A,k,sigma)
sigma
可以是:
'lm'
最大幅度(默认)。
'sm'
最小的。与sigma = 0相同。对于真正的对称问题,以下也是选项:
'la'
最大的代数('lr')
'sa'
最小代数('sr') '是' 两端(如果k为奇数,则从高端再一端)
使用eigs
语法k
应该比eig
稍微容易一些,但两者都可以。