5

大きな ( 400K*400K ) スパース行列があり、 A'*A の最大固有値を計算する必要があります。

問題は、メモリの問題により、Matlab が A' を計算することさえできないことです。
また[a,b,c] = find(A)、転置スパース行列を作成して転置しようとしましたが、find()機能しますが、スプレースの作成は機能しません。

これに対する良い解決策はありますか?この種の乗算の最大固有値を計算するには、matlab 関数または別の手法を使用できます。

ありがとう。

4

1 に答える 1

3

A がスパースの場合、転置する方法については、このスレッドとこのドキュメントのいくつかの議論(基本的には部分ごとに行う) を参照してください。

しかし今、あなたは計算する必要がありますB=A'*A。問題は、まだまばらですか? そうであると仮定すると、リンクに記載されている前の手法を使用して続行しても問題はありません。

次に、を取得した後B=A'*A、使用しますeigs

eigs(B,1)

最大の大きさの固有値を取得します。

于 2013-01-02T21:59:14.510 に答える