最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
特異値とベクトルのサブセット
は、1 つ以上の名前と値のペアの引数を使用して追加オプションを指定します。たとえば、s
= svds(A
,k
,sigma
,Name,Value
)svds(A,k,sigma,'Tolerance',1e-3)
はアルゴリズムの収束の許容誤差を調整します。
svds
は、複数の実行にわたって再現性を確保するために、プライベート乱数ストリームを使用して既定の開始ベクトルを生成します。svds
を呼び出す前に rng
を使用して乱数発生器の状態を設定しても、出力に影響しません。
svds
を使用する方法は、小規模で密度の高い行列の特異値をいくつか求めるときに最も効率的な方法とは言えません。このような問題では、svd(full(A))
を使用する方が迅速な場合があります。たとえば、500 行 500 列の行列の特異値を 3 個求める問題は、比較的小規模の問題であるため svd
で容易に処理できます。
指定された行列で svds
が収束しない場合は、'SubspaceDimension'
の値を増加することにより Krylov 部分空間のサイズを増加します。補助的な選択肢として、反復の最大回数 ('MaxIterations'
) と収束の許容誤差 ('Tolerance'
) を調整することも、収束動作に役立つ場合があります。
k
を増加することでパフォーマンスが向上することがあり、特に行列に繰り返される特異値がある場合に効果的です。
[1] Baglama, J. and L. Reichel, “Augmented Implicitly Restarted Lanczos Bidiagonalization Methods.” SIAM Journal on Scientific Computing. Vol. 27, 2005, pp. 19–42.
[2] Larsen, R. M. “Lanczos Bidiagonalization with partial reorthogonalization.” Dept. of Computer Science, Aarhus University. DAIMI PB-357, 1998.