正方行列を部分ピボット付きでP・L・Uへ分解

正方行列を部分ピボット付きでP・L・Uへ分解

実正方行列を行交換を伴う部分ピボット付きLU分解へ変換し、P・L・Uの全成分を表で確認できます。

入力

1行を行列の1行として、有限な実数を空白または半角コンマで区切ります。

ピボットまたは特異値のゼロ近傍判定に使います。指数表記ではなく0.000000000001のような10進表記で入力します。

使い方

  1. ページ先頭の『行列A』へ、部分ピボット付きLU分解で計算したい実数行列を貼り付けます。1行を行列の1行として、成分は空白または半角コンマで区切り、各行の列数をそろえます。
  2. 行数・列数、負号、小数点、指数表記を確認します。正方行列が必要なページでは行数と列数を一致させ、矩形対応ページでは不要なゼロ行やゼロ列を追加しません。
  3. 許容誤差は通常1e-12のまま計算し、特異・低ランク・収束境界を調べる場合だけ理由を記録して変更します。値を変えてエラーを隠す目的では使いません。
  4. 計算後は結果表の行列名または指標、行、列、値を確認し、元の式へ代入した残差、既知の小さな例、単位行列やゼロ行列などの境界例と照合します。
  5. 必要なら見出し付きTSVをコピーし、元の入力、計算条件、計算日、使用目的と一緒に保存します。重大な用途では独立した数値ライブラリでも再計算してください。

計算式・考え方

各列で絶対値が大きいピボット行を選んで行交換し、置換行列P、対角成分が1の下三角行列L、上三角行列Uを作ります。本ページの規約は P A=L U で、A=L Uとは限りません。

注意事項

  • LU分解は消去法を行列の積として保存する方法です。部分ピボットを使うと一般にはA=L Uではなく、行交換を表すPを含むP A=L Uとなります。参照ページにはA=L Uという説明とピボット配列が併記され、利用者から積が元行列に一致しないとの指摘があるため、本ページでは規約をP A=L Uに統一して明示します。
  • 結果表はP、L、Uの各行列について、行番号、列番号、値を出します。Pは各行・列に1が一つずつある置換行列、Lは対角が1の下三角行列、Uは上三角行列です。行交換がない例ではP=IとなりA=L Uですが、交換がある例でPを省くと検算に失敗します。
  • 例A=[[2,1,1],[4,-6,0],[-2,7,2]]では最初の列で絶対値4の行がピボット候補となり、行交換が起きます。分解後はP AとL Uを同じ行・列で比較してください。Pの解釈をピボット添字だけに任せず、実際の0・1行列として表示することで、教材や別実装との規約差を確認しやすくします。
  • ピボットが許容誤差以下ならUの対角が数値的にゼロで、逆行列や一意な連立方程式解には利用できません。LUの途中形だけを完成分解として返すと誤解を招くため、本ページは状態を明示して停止します。ランクを知りたい場合は、特異値に基づくランク専用ページを利用してください。
  • Doolittle法ではLの対角を1とし、倍率をL、消去後の係数をUへ格納します。他の資料にはUの対角を1とするCrout型や、Pの向きを逆に定義する実装もあります。数値が違って見えても規約が異なるだけの場合があるため、P A=L UかA=P L Uか、対角1がどちらかを最初に確認してください。
  • LU分解は行列式、逆行列、複数右辺の連立方程式へ再利用できます。ただし同じAに対してだけ再利用でき、Aの一成分でも変えたら分解を作り直します。本ツールは各計算をブラウザー内で完結させ、ページをまたいで分解を永続保存しません。必要な検算記録はTSVとして安全な場所へ保存してください。
  • 入力は実数だけを含む行列です。1行が行列の1行に対応し、成分は空白または半角コンマで区切ります。空行は前後だけを無視し、途中の空行、列数の不一致、数値以外の文字、NaN、Infinity、指数表記として解釈できない断片は暗黙に補正しません。表計算ソフトから貼り付ける場合も、貼り付け後に行数・列数と負号、小数点、桁区切りの有無を確認してください。
  • このページは可変サイズを扱いますが、ブラウザーを停止させないよう成分数と文字数を有界にします。大きな疎行列を密行列として貼り付ける用途や、数千行規模の科学計算を置き換えるものではありません。上限を超える行列は途中まで計算せず、入力エラーとして停止します。大規模計算ではLAPACKを利用する科学計算環境など、目的に合う専門ソフトを使用してください。
  • 計算はIEEE 754の倍精度相当で行います。おおむね15〜16桁の有効数字を持ちますが、入力した全桁が正しい結果として保存される意味ではありません。参照ページにある最大50桁表示をそのまま再現したとは表示せず、本ツールでは最大有効桁と丸め誤差を明記します。非常に大きい値と小さい値を混在させると有効桁が失われるため、必要なら単位や尺度をそろえてください。
  • 部分ピボットは各消去段階で候補列の絶対値が大きい行を選び、ゼロまたは極端に小さい割り算を避ける手順です。多くの一般行列で安定性を改善しますが、すべての悪条件を解消する保証ではありません。行交換が起きた場合は置換情報を計算へ一貫して反映し、行列式の符号、右辺の並べ替え、Lの既計算部分にも同じ交換規約を適用します。
  • 許容誤差は、計算上の小さな値をゼロと判定するための尺度です。既定値1e-12は万能な物理定数ではなく、入力行列の最大成分や次数と組み合わせて使います。誤差を大きくすると特異・低ランクと判定しやすくなり、小さくすると丸め雑音を有効な成分と誤認しやすくなります。結果を比較するときは、行列だけでなく許容誤差も同じにしてください。
  • 検算では結果の見た目だけでなく、元の式へ戻した残差を確認します。逆行列ならA A⁻¹−I、LU分解ならP A−L U、連立方程式ならA x−bが対象です。行列の大きさが変わると同じ絶対残差でも意味が変わるため、必要に応じて入力と結果のノルムに対する相対的な大きさも見ます。残差が小さいことは有力な確認ですが、悪条件問題の真の解に近いことを単独で保証しません。
  • 結果表の行番号と列番号は1から始めます。行列名、行、列、値の各列を持つ表は、見出しを含むTSVとしてコピーできる設計です。画面幅が狭い場合は横スクロールしても列の意味が失われないよう固定した見出しを使います。コピー後に並べ替えると行列の形が変わるため、元の行・列番号を残し、入力、許容誤差、計算日も一緒に記録してください。
  • 正方行列が必要な計算へ矩形行列を入れたり、係数行列と右辺の行数が違ったりする場合は実行しません。足りない成分を0で埋める、余分な列を捨てる、右辺を繰り返すといった推測は結果を別問題へ変えてしまうためです。エラーが出たら、各行の成分数、末尾の区切り文字、全角記号、貼り付け時の改行を見直してください。
  • 一次資料としてNetlib LAPACKのDGETRF、DGETRI、DGESV、DLANGE、DGESVDとLAPACK Users' Guideの一般連立方程式の説明を2026年7月14日に照合しました。これらは実装方針と検算規約の根拠であり、ブラウザーから資料へ通信して計算する仕組みではありません。資料名と確認日は本文に残し、URLは配布定義ではなく別の監査記録で管理します。
  • 入力検査、数値計算、表の描画、コピー用TSVの生成はclient-onlyでブラウザー内だけで完結します。行列や右辺をサーバー、外部API、外部CDNへ送信せず、数値ライブラリを実行時に取得しません。そのため最新データを自動取得する機能もありません。共有端末、画面共有、ブラウザー拡張、クリップボード履歴、貼り付け先の保存設定は利用者側で管理してください。
  • 教育目的では、まず2×2や3×3の手計算可能な例で操作し、次に行交換が起きる例、ゼロ行を含む例、ほぼ従属な例を試すと違いを確認できます。通常例だけでなく、1×1、ゼロ行列、単位行列、対角行列、特異行列という境界を分けて扱ってください。エラーを回避するため値を少し変えるのではなく、なぜ計算が定義できないかを式から確認することが重要です。
  • 本ツールは入力した数学問題を計算するもので、測定値の品質、モデルの妥当性、単位系、座標系、境界条件を判定しません。構造設計、制御、電気、医療、金融など重大な判断へ使う場合は、独立した実装、専門家のレビュー、既知解、残差、感度解析を組み合わせてください。表示値を根拠に安全率や判定基準を自動で決める機能はありません。
  • 倍精度浮動小数点による補助計算です。分解の置換規約を明示して使い、特異・悪条件行列や高精度保証が必要な用途では専門ライブラリで再確認してください。

よくある質問

LとUを掛けてもAに戻らないのはなぜですか?

行交換がある場合はL U=P Aです。Pを含めずA=L Uとして比較すると一致しません。本ページはPを行列として出し、P A=L Uを検算します。

行列はどの形式で入力しますか?

1行を行列の1行とし、成分を空白または半角コンマで区切ります。すべての行で列数をそろえ、有限な実数だけを入力してください。

参照ページの50桁表示と同じ精度ですか?

同じではありません。本ページはブラウザーの倍精度計算で、おおむね15〜16桁の有効数字です。表示桁を増やして高精度であるようには見せません。

許容誤差1e-12は変更できますか?

1e-15から1e-3の範囲で変更できます。結果が変わる場合は境界的な問題なので、値、入力スケール、残差を一緒に記録して比較してください。

入力した行列は外部へ送信されますか?

送信しません。入力検査、計算、結果表、TSV生成はclient-onlyで完結し、外部APIやCDNを呼び出しません。共有端末やクリップボード履歴は利用者側で管理してください。

部分ピボット付きLU分解はclient-onlyで動作し、行列、右辺、指数、計算条件、結果を外部API、外部CDN、サーバー保存へ送信しません。Netlib LAPACK各資料とLAPACK Users' Guideは2026年7月14日に照合し、確認記録はローカル監査文書へ分離しています。