Finding Null space of a large sparse matrix in MATLAB -
over course of finite difference discretization of elliptic equation , application of neumann bcs on sides of 2d domain have large sparse matrix. need find null space of transpose enforce consistency condition on either side. computational domain of 50x50 , 100x100 able available ram of 32 gb in mathematica , matlab available full matrix commands of nullspace , null respectively.
if computational domain 500x250 (which of order of have in general) ram required storage of matrix of size (500x250)x(500x250) 125 gb , highly prohibitive. use sparse matrices store super-matrix , don't have have space constraint anymore. can't use 'null" command on full matrices. matlab suggests use "svds" command on sparse matrices. svds(a) gives first 6 singular values , singular vectors. there command svds(a,k,sigma) gives "k" singular values , vectors around scalar singular value of "sigma". when use sigma=0 find singular vector corresponding the "zero" value, vector null space basis error "sigma" close eigen value of matrix.
my matrix singular , hence 1 of eigen values "zero". how circumvent error? or there better way tools @ hand. have both matlab , mathematica @ hand.
thanks in advance , suggestions.
best trinath
i guess can try sort of decomposition.
http://www.mathworks.co.uk/matlabcentral/fileexchange/11120-null-space-of-a-sparse-matrix
have tried this?
or maybe this?
http://www.mathworks.co.uk/matlabcentral/newsreader/view_thread/249467
i confident should work, have not tried them myself. way of proceeding qr decomposition (which give permutation of first k independent columns, if k rank of matrix. vectors k+1 n provide basis null space).
hope helps.
cheers,
gl
Comments
Post a Comment