2016-08-19 5 views
-2

たとえば、eigs(A,k,'sm')はk個の最小の固有値を返します。ただし、eigsは署名を処理しません。編集:eigs(A,k,'sr')が世話をします。MATLAB:ソートされた順序で `eigs`から小さな固有値を取得します

セイAは、500×500のスパース行列です。 eigのようなすべての固有値を得ることなく、最小の3つの固有値(大きさではない)と対応する固有ベクトルをeigsに効率よくソートして取得する方法はありますか?

これは、ソートすることによりeig内のすべての固有値を取得することにより、容易に行うことができますが、それは完全な行列に変換し、すべての固有値を計算するために長い時間と膨大なメモリを取るように私はいくつかの理由でeigを使用することはできません。

編集:これはeigs(A,k,'sr')で行うこともできますし、自分で並べ替えることもできます。しかし、eigsにはもっと速い方法やオプションがありますか?

答えて

0

構文エラーがあるか、行列が正の実数部を持つすべての固有値を持たない限り、そうしてはいけません。これにより、R2016aの固有値の正負符号付き最小実数部が得られます。最小のeigは複素共役であり、一方の対はその負の虚数部分のみによって与えられることに留意されたい。

A = sprand(100,100,0.5); 
[V,D] = eigs(A,3,'sr') 
+0

ありがとう。 'sr'は動作します。 'D'をソートされた方法で出力する方法はありますか?自分でソートすることはありませんか? – kyle

関連する問題