Matlab 编写脚本以查找对称矩阵的最大和第二大特征向量
[我在math.stackexchange上发布了这篇文章,并被告知它更适合这里。] 在我的线性代数简介的最后一个项目中,我的任务是编写一个脚本,在MATLAB中查找对称矩阵的最大和第二大特征向量。为了获得最佳等级,它还必须包含一个函数。到目前为止,我已经能够让我的脚本验证矩阵是对称的,我感觉有点卡住了。我需要一些指导来完成这项任务,因为我的MATLAB经验非常有限Matlab 编写脚本以查找对称矩阵的最大和第二大特征向量,matlab,matrix,eigenvalue,Matlab,Matrix,Eigenvalue,[我在math.stackexchange上发布了这篇文章,并被告知它更适合这里。] 在我的线性代数简介的最后一个项目中,我的任务是编写一个脚本,在MATLAB中查找对称矩阵的最大和第二大特征向量。为了获得最佳等级,它还必须包含一个函数。到目前为止,我已经能够让我的脚本验证矩阵是对称的,我感觉有点卡住了。我需要一些指导来完成这项任务,因为我的MATLAB经验非常有限 以下是我到目前为止的情况: prompt = 'Please input a symmetric matrix A.' A =
以下是我到目前为止的情况:
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
的特征值,但我不确定从这里到:
我将非常感谢给予的任何帮助。谢谢 您有一个检查对称矩阵的解决方案 对于特征向量,请参见Luis Mendo建议的,但也可以参见,它允许您根据
sigma
请求k
特征向量:
eigs(A,k,sigma)
其中sigma
可以是:
'lm'
最大震级(默认值)
“sm”
最小震级。与sigma=0相同
对于实对称问题,以下也是选项:
'la'
最大代数('lr')
'sa'
最小代数('sr')
“是”
两端(如果k为奇数,则从高端多出一个)
使用eig
和k
语法应该比eig
稍微容易一些,但两者都可以工作
请参阅。提示:
eig
可以有两个输出;请参阅文档:在matlab之外还有BLAS库,这是一个“系列”库,提供一组定义的线性代数运算。我的提示是记录BLAS库中使用的算法,始终从给定属性的定义开始,而不是从属性本身开始,例如,不要考虑对称矩阵,而是思考矩阵何时对称以及为什么对称。官方文档链接(也应随您提供Matlab副本)已经发布。一旦您阅读了它,请尝试更多内容,欢迎您就具体问题提出问题。我感谢您的帮助。非常有用!如果我使用EIG(A,k,sigma)格式,将给我两个最大的特征值,因此如果我要分配[A B]=eigs(A,k,sigma)这会给我一个矩阵,其中列是k个最大的特征向量吗?@HeathHuffman是的,A
的列将是k
最大的特征向量,B
将是相应的特征值。