特異値分解
s=svd(X) [U,S,V]=svd(X) [U,S,V]=svd(X,0) (obsolete) [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,0) は
"エコノミーサイズ"分解を出力します.
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 (複素数の場合)に基づいている.