実矩形行列の標準reduced SVD(特異値分解)計算
最大10×10の実矩形行列を標準reduced SVDへ分解し、降順の特異値、U、V^T、再構成残差、直交性、数値ランクをブラウザー内で確認します。
計算結果
最大10×10の実矩形行列をbinary64の有界one-sided Jacobi法で標準reduced SVDへ分解します。再構成・直交性を検査し、近接または重複した特異値では個々の特異ベクトルが一意でない点に注意してください。
- 標準reduced SVDのU・Sigma・V^T
-
計算すると数値表を表示します。
標準reduced SVDのU・Sigma・V^T。U、降順のSigma、V^Tを、1始まりの行列位置と有限数値で確認できるスクロール対応表です。 行列 行 列 値
使い方
- ページ先頭の実行列Aへ、分解したい矩形行列を入力します。1行を行列の1行とし、空白、半角コンマ、タブのどれか一種類で成分を区切ります。行ごとの列数をそろえ、単位や変数名は行列の外で管理してください。
- 入力が1×1から10×10で、各成分が絶対値1000000以下の有限実数になっているか確認します。複素数、分数式、関数、NaN、Infinity、引用符付きCSVを暗黙に解釈しません。
- 計算すると、標準reduced SVDのU、Sigma、V^Tがこの順で一つの表へ出ます。行・列番号は1始まりです。Sigmaはr×1の列として特異値を降順に表示します。
- 結果では再構成残差、UとVの直交性、数値ランク、最小相対gapも確認します。近い特異値があるときは、特異ベクトルの個別成分より再構成と部分空間を重視してください。
- 見出し付きTSVをコピーする場合は、元のA、行列shape、計算日、利用目的も一緒に保存します。設計・研究・重大判断ではLAPACK等の独立した専門実装でも再計算してください。
計算式・考え方
実m×n行列A、r=min(m,n)について、標準reduced SVDを A=U_r diag(s_1,…,s_r) V_r^T、U_rはm×r、V_r^Tはr×n、s_1>=…>=s_r>=0 と定義します。Netlib LAPACK DGESVD https://netlib.org/lapack/explore-html/d1/d7f/group__gesvd_gac6bd5d4e645049e49bb70691180abf07.html およびone-sided Jacobi法のDGESVJ https://www.netlib.org/lapack/explore-html/d9/deb/group__gesvj_ga7aec05d2a1523bbeee77ece21b12187c.html と2026年7月16日に照合しました。
注意事項
- 特異値分解は、矩形行列Aを左特異ベクトルU、非負の特異値s、右特異ベクトルVに分ける方法です。本ページはr=min(m,n)列だけを保持するstandard reduced形を採用します。full形の不要な直交補空間や、参照ページ独自のm×nのUへゼロ列を足す形式は返しません。
- 結果表のmatrix列にはU、Sigma、V^Tのいずれかが入ります。Uはm×r、Sigmaはr×1、V^Tはr×nです。Sigmaのrow=k、column=1はs_kを表します。対角行列Sigmaの非対角0を大量に並べず、再構成するときだけdiag(s)として読みます。
- 既定の3×4行列A=[[2,2,2,2],[1,−1,1,−1],[−1,1,−1,1]]の特異値は降順に4、2√2、0です。参照ページは4、0、2√2、0のような非降順Wとゼロ列を含むUを表示しますが、本ページは標準規約へ並べ替え、r=3のreduced形で返します。
- Uの各列はAの出力側にある方向、Vの各列は入力側にある方向を表します。Aを右特異ベクトル方向へ作用させると、対応する左特異ベクトル方向へ特異値倍されます。ただし本ツールは座標系や単位の意味を推測せず、単位の異なる列を自動標準化しません。
- 特異値が十分大きい成分の本数は数値ランクの手掛かりです。本実装は最大特異値、行列shape、binary64のmachine epsilonからrank thresholdを作り、その閾値を超える特異値を数えます。数学的な厳密ランクと、測定誤差や丸めを含む実データの実効ランクは一致しない場合があります。
- 最大特異値と最小特異値の比は、full rankのとき2ノルム条件数に関係します。最小特異値が0または非常に小さい行列では、逆問題や連立方程式の解が入力誤差に敏感です。このページは条件の悪さを解消せず、逆行列、擬似逆行列、最小二乗解を自動生成しません。
- 一つの特異ベクトル対はUとVを同時に符号反転しても同じ分解です。さらに重複または近接した特異値に対応する基底は一意でなく、小さな入力変化で個々の列が大きく回転することがあります。値が違う実装を比較するときは、符号付き成分だけで誤判定せず、再構成、直交性、張る部分空間を確認してください。
- 本実装は尺度化した実行列へ有界one-sided Jacobi回転を適用し、右側の回転をVへ蓄積します。m<nのwide行列は転置側で計算して因子を正しい側へ戻します。pair順、tie規則、最大sweep数を固定し、上限内に収束しない場合は不完全な表を出さず停止します。
- 品質検査ではAとU diag(s) V^TのFrobenius正規化残差、U^T U−I、V^T V−Iを評価します。有限でない値、降順違反、直交性または再構成の安全上限超過があれば結果を返しません。小さい残差は重要ですが、入力モデルやデータ品質の正しさを保証するものではありません。
- LAPACK Users' GuideのSVD誤差評価 https://www.netlib.org/lapack/lug/node96.html と詳細 https://www.netlib.org/lapack/lug/node97.html は、特異値の誤差と、近接特異値で特異ベクトルが敏感になる点を説明しています。本ページはminimum relative gapとclustered判定を表示用情報へ残し、個々の基底を唯一の正解と説明しません。
- 入力はCSV、TSV、空白区切りのいずれか一方式です。同じ入力内で区切りを混ぜる、空セルを置く、行ごとの列数を変える、複素tokenや数式を書く操作は拒否します。2+3iを実数2へ縮約したり、不足セルを0で補ったりしないため、エラー時は元データのshapeと区切りを直してください。
- 1×1から10×10、入力最大32000文字、成分絶対値1000000以下に限定します。10×10ではUが100行、Sigmaが10行、V^Tが100行で、結果は最大210行です。上限はブラウザー計算を有界に保つためで、大規模行列を切り捨てて10×10へ変換する規則ではありません。
- 計算はIEEE 754 binary64相当で、おおむね15〜16桁の有効数字です。表示桁を増やして任意精度を装うことはせず、極端に異なる尺度、ほぼ従属な列、clusteredな特異値では有効桁が減る可能性を明記します。必要なら単位と尺度を見直し、多倍長または検証済みライブラリで比較してください。
- 用途は行列の強い方向と弱い方向の観察、数値ランクの確認、低ランク近似を検討する前の特異値確認、教材の検算などです。本ページだけで主成分分析、データ中心化、標準化、ノイズ閾値選択、画像圧縮率、回帰モデルの妥当性まで決定したことにはなりません。
- 計算、入力検査、表描画、TSV生成はclient-onlyです。外部API、CDN、WASM、実行時downloadへ行列を送りません。ただし共有端末、画面共有、ブラウザー拡張、OSのクリップボード履歴、貼り付け先の保存や同期は利用者側で管理してください。
- binary64による有界な標準reduced SVDの補助計算です。特異ベクトルの非一意性、近接特異値、入力誤差を含み、重大用途や高精度用途では独立した専門実装でも確認してください。
よくある質問
full SVDではなくreduced SVDを返すのはなぜですか?
Aの再構成に必要なr=min(m,n)組へ形を固定し、wide行列へゼロ列を足す非標準表示を避けるためです。Uはm×r、Vtはr×nになります。
特異値が0なら計算失敗ですか?
失敗ではありません。rank deficientを表す有効な結果です。0に対応する基底は非一意なので、再構成と直交性、数値ランクを合わせて確認します。
別ソフトとUやVの符号が逆でも間違いですか?
必ずしも間違いではありません。対応するU列とV列を同時に反転しても積は同じです。重複特異値では基底自体が回転することもあります。
複素行列も入力できますか?
できません。このcanonicalは実数専用です。複素数を実部だけへ縮約せず、有限実数の矩形行列だけを受け付けます。
SVDから擬似逆行列や最小二乗解も出せますか?
このページでは出しません。小さい特異値をどこで切るかは用途と誤差モデルに依存するため、分解結果から別の明示的な契約で扱う必要があります。
標準reduced SVD計算は利用者のブラウザー内だけで完結し、入力行列、数値ランク、特異値、U、V^T、残差を外部APIやサーバー保存へ送信しません。一次資料は2026年7月16日に照合済みで、計算時に取得しません。共有端末、画面共有、クリップボード履歴、ブラウザー拡張、貼り付け先の同期設定は利用者側で管理してください。