特異値分解
s=svd(X) [U,S,V]=svd(X) [U,S,V]=svd(X,"e") [U,S,V,rk]=svd(X [,tol])
実数または複素行列
実数ベクトル (特異値)
実数対角行列 (特異値)
直交またはユニタリ正方行列(特異値).
実数
[U,S,V] = svd(X) は
X と同次元で
降順に非負の対角要素を有する
対角行列 Sおよび
X = U*S*V'となる
ユニタリ行列 U と V
を出力します.
[U,S,V] = svd(X,"e") は
"エコノミーサイズ"分解を出力します.
X がm行n列 (m > n)の場合,
U の最初のn列のみが計算され,
Sは n行n列となります.
s= svd(X) は
特異値を含むベクトルsを返します.
[U,S,V,rk]=svd(X,tol) は
rkに加えて,
X の数値ランク,すなわち
tolより大きな特異値の数を出力します.
tolのデフォルト値は
rankと同じです.
svd 分解はLapackのルーチン DGESVD (実数行列の場合)および ZGESVD (複素数の場合)に基づいている.
| Version | Description |
| 2023.0.0 | svd(X, 0) is obsolete, use svd(X, "e") instead. |
| 2024.0.0 | svd(X, 0) is no more supported, use svd(X, "e") instead. |