私は正方行列Aの次元縮小を行っています。私の問題は、13000 x 13000行列Aの固有値分解計算問題、すなわち[v d]=eigs(A)
です。それは疎な行列なので、4GBのRAMを使用して「メモリ不足」というエラーが発生します。 eigs
コマンドを実行したときにメモリが使い果たされていないので、私のPCの問題ではないと私は確信しています。私がオンラインで見た助けは、ARPACKと関係がありました。私は推奨サイトをチェックしましたが、そこにはたくさんのファイルがあり、ダウンロードするのか分かりません。また、MATLABでの使用方法もわかりませんでした。もう一つの助けは数値的な方法を使っていると言っていますが、使用する特定の方法はわかりません。どんな解決策も歓迎します。MATLABを使用した固有値分解
Error in ==> eigs>ishermitian at 1535
tf = isequal(A,A');
Error in ==> eigs>checkInputs at 479
issymA = ishermitian(A);
Error in ==> eigs at 96
[A,Amatrix,isrealprob,issymA,n,B,classAB,k,eigs_sigma,whch, ...
Error in ==> labcomp at 20
[vector lambda] = eigs(A)
これらのエラーの翻訳と解決方法を教えてください。
同様の質問:http://stackoverflow.com/questions/3181593/matlab-is-running-out-of-memory-but-it-should-not-beデフォルト '関数eigs(BY – Amro
。 ) 'は6つの最大固有値とそれに関連する固有ベクトルだけを返します。これはメモリの問題ではありません。あなたの「A」がどれほどのメモリを要しているか、すなわちどれほど希薄であるか?ありがとう – eat
私はこの問題のニュアンスがわからないので、完全に答えを出すことはできませんが、通常は非常に大きな配列の固有分解が必要な特異値分解を使用します。 MATLABの 'SVD'関数をチェックしてください。 –