keisoku

特異値分解(SVD)計算機

行列を入力すると特異値分解 A=UΣVᵀ の特異値・ランク・条件数を計算。小さな行列なら左特異ベクトル U・右特異ベクトル V も表示します。

入力

1行=行列の1行、要素はスペースまたはカンマ区切りで入力してください。

計算結果

最大特異値 σ₁

3

サイズ(行×列)

3 × 3

数値的ランク

3

条件数

3

特異値(降順)

σ13
σ22
σ31

左特異ベクトル U

各列が左特異ベクトル uₖ(U[:,k]=A·vₖ/σₖ)です。

010
100
001

右特異ベクトル V

各列が右特異ベクトル vₖ(AᵀA の固有ベクトル)です。

010
100
001

計算方法・使い方

  • 特異値分解(SVD)は任意の m×n 行列 A を A=UΣVᵀ の形に分解します。U は m×m の直交行列、V は n×n の直交行列、Σ は対角に非負の特異値 σ₁≧σ₂≧…≧0 を並べた m×n 行列です。
  • この計算機は対称行列 AᵀA の固有値分解を巡回ヤコビ回転法で求め、その固有値の平方根を特異値、固有ベクトルを右特異ベクトル V とします。左特異ベクトルは U[:,k]=A·vₖ/σₖ で復元しています。
  • 数値的ランクは、しきい値 max(m,n)·εmach·σmax を超える特異値の個数として数えます。これより小さい特異値は数値誤差としてゼロ扱いです。
  • 条件数は σmax/σmin(最小の非ゼロ特異値)で定義します。ランク落ちの行列では σmin が 0 とみなされ、条件数は無限大(∞)になります。
  • 本ツールの結果は反復法による近似計算であり、厳密な代数解ではありません。回転・桁落ちにより末尾の桁に誤差が出る場合があります。
  • U・V の表示は行数・列数がともに 8 以下の小さな行列に限定しています。大きな行列では特異値・ランク・条件数のみを表示します。

お客様の声

このツールを使った感想をお聞かせください。

レビューを投稿する

  1. ホーム
  2. 特異値分解(SVD)計算機