【什么原理】一种解决eig求特征向量内存溢出的方案
众所周知,eig能求所有特征向量,但是大矩阵容易内存溢出eigs速度快,但是只能求前六个
最近发现了一个老外写的已知所有特征值求所有特征向量方法,但是原理怎么也想不通
模型是这样的
Ax=xK,A是一个稀疏阵,x是特征向量,K是特征值对角阵,现在要求所有的x元素,程序如下:
本帖最后由 JulianChin 于 2011-5-12 10:22 编辑
k= eig( A ); %求特征值
k = flipud( sort( k ) ); %按大小排列
m=length(k);
% inverse iteration for eigenfunctions
B=speye( size( A ) );%生成E矩阵
for ii = 1:m
x(:,ii) = ( A - k( ii ) * speye( size( A ) ) ) \ ones( m, 1 );
end 显然这个数学模型是
x=((A-k(ii)E)-1)*;
而实际上我们要求的是Ax=k(ii)x
我知道这个算法的目的,这段老外的程序,求的就是Ax=k(ii)x
但是为什么这么求??
PS:理论上,特征值向量都应该是一个正弦波,这是模型决定的
页:
[1]