svd
特異値分解
呼び出し手順
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])
引数
- X
実数または複素行列
- s
実数ベクトル (特異値)
- S
実数対角行列 (特異値)
- U,V
直交またはユニタリ正方行列(特異値).
- 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 (複素数の場合)に基づいている.
History
バージョン | 記述 |
2023.0.0 | svd(X, 0) is obsolete, use svd(X, "e") instead. |
Report an issue | ||
<< sva | Eigenvalue and Singular Value | Factorization >> |