MATLAB Function Reference    
svd

特異値分解

表示

詳細

svd は、行列の特異値分解を計算します。

s = svd(X) は、特異値のベクトルを出力します。

[U,S,V] = svd(X) は、X と同じ大きさで、非負の対角要素を降順にもつ行列 S と、X = U*S*V'を満たすユニタリ行列 U V を出力します。

[U,S,V] = svd(X,0) は、メモリを節約した分解を行います。X が、m n 列で、m > n の場合、U の最初の n 列のみが計算され、Sn n 列になります。

例題

行列に対して

つぎのステートメントは、

以下の結果を作成します。

メモリを節約した分解は、つぎのステートメントで行われます。

は、つぎの結果を出力します。

アルゴリズム

svd は、LAPACK ルーチンを使って、特異値分解を計算します。

行列
ルーチン
実数
DGESVD
複素数
ZGESVD

注意

特異値を求めるために、75 回の QR ステップの繰り返しの限界を超えると、つぎのメッセージが表示されます。

参考文献

Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen, LAPACK User's Guide, Third Edition, SIAM, Philadelphia, 1999.


 surfnorm svds