如何求稀疏矩阵的全部特征值和特征向量?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何求稀疏矩阵的全部特征值和特征向量?相关的知识,希望对你有一定的参考价值。
第一次在matlabsky发帖。请问论坛里的各位大虾:Matlab中如何求稀疏(sparse)矩阵的全部特征值和特征向量?我现在要处理约5000*5000维的稀疏矩阵A。(A是厄米的)并求它的全部特征值和特征向量。但[V,D]=eigs(A)只能得到最大的6个特征值和特征向量。用[V,D]=eigs(A,k)时k只能到A矩阵N-2维。且得到的特征值不按大小顺序排列。而用[V,D]=eig(A)却显示错误 ??? Error using ==> eigUse eigs for sparse eigenvalues and vectors.如果我用普通的5000*5000维的矩阵B计算[V,D]=eig(B)的话,计算时间太长了,耗内存也大。不实际了。不知大家对此有什么好意见。不吝赐教!万分感谢!
eigs函数的官方说明Find largest eigenvalues and eigenvectors of sparse matrix就是说只能找出稀疏矩阵最大的几个特征值和特征向量你可以使用循环语句调用[V,D]=eigs(A,k)不知道可以不,我也没有处理过这样的工程数据 参考技术A 呵呵 可以看看是否有一些工程算法计算工程矩阵的特征值但是有限元软件一定可以 参考技术B 不行。在Matlab的Help里eigs(A,k) return the k largest magnitude eigenvalues.用[V,D]=eigs(A,k)对于N*N的Hermitian矩阵A,k最大值只能取N-2循环[V,D]=eigs(A,k)也是徒劳了。我仔细看了Help里的eigs介绍。我想对于我要处理的问题,Matlab是无能为力了。不过还是感谢dynamic! 参考技术C 怎么没有人回复啊?难道我已遇到Matlab的瓶颈了?只能靠用Fortran或C编程计算?MATLAB矩阵——2.4矩阵的特征值与特征向量
求矩阵的特征值与特征向量
函数的调用格式有2种
E=eig(A):求矩阵A的全部特征值,构成向量E
[X,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X各列是相应的特征向量
以上是关于如何求稀疏矩阵的全部特征值和特征向量?的主要内容,如果未能解决你的问题,请参考以下文章