n次正方行列の行列式と逆数を部分ピボットLU分解で計算

n次正方行列の行列式と逆数を部分ピボットLU分解で計算

実正方行列の行列式を部分ピボット付きLU分解から求め、ゼロ判定を行ったうえで行列式の逆数も表示します。

入力

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

使い方

  1. ページ先頭の『行列A』へ、n次行列の行列式で計算したい実数行列を貼り付けます。1行を行列の1行として、成分は空白または半角コンマで区切り、各行の列数をそろえます。
  2. 行数・列数、負号、小数点、指数表記を確認します。正方行列が必要なページでは行数と列数を一致させ、矩形対応ページでは不要なゼロ行やゼロ列を追加しません。
  3. このページには許容誤差の設定欄はありません。行列式は入力値から直接評価し、ノルムの特異値反復は倍精度に合わせた固定の有界収束判定で計算するため、入力スケールと有限桁を確認します。
  4. 計算後は結果表の行列名または指標、行、列、値を確認し、元の式へ代入した残差、既知の小さな例、単位行列やゼロ行列などの境界例と照合します。
  5. 必要なら見出し付きTSVをコピーし、元の入力、計算条件、計算日、使用目的と一緒に保存します。重大な用途では独立した数値ライブラリでも再計算してください。

計算式・考え方

部分ピボット付き分解 P A=L U に対し、det(A)=det(P)×∏u_ii です。行交換回数の偶奇で符号を補正し、倍精度でdet(A)が0でない場合だけ1/det(A)を計算します。

注意事項

  • 行列式det(A)は正方行列に対応する一つのスカラーで、0なら行列は特異です。2×2ではad−bcですが、可変次数で余因子展開をそのまま再帰すると計算量が急増します。本ページは部分ピボット付きLU分解を用い、Uの対角積と行交換の偶奇から効率よく求めます。Lの対角はすべて1なので積へ影響しません。
  • 例としてA=[[4,7],[2,6]]ではdet(A)=4×6−7×2=10、逆数は0.1です。結果表は『行列式 det(A)』と『逆数 1/det(A)』を別行で示します。逆数は逆行列そのものではなく一つの数です。det(A)=0または数値的なゼロ判定に入る場合、1/det(A)を有限な結果として扱いません。
  • 行を1回交換すると行列式の符号が反転します。そのため部分ピボットで得たUの対角積だけを見ると符号を誤る場合があります。分解中の交換回数を数え、偶数なら+、奇数なら−を掛けます。ある行をc倍すると行列式もc倍になるため、単位変更や正規化を行った入力と元行列の値を混同しないでください。
  • 行列式の絶対値が小さいことは特異に近い可能性を示しますが、尺度に依存します。例えば全成分を1000倍したn次行列の行列式は1000^n倍です。異なる単位や次数の行列を行列式だけで条件の良し悪しとして比較するのは適切ではありません。可逆性の数値判定にはピボット、残差、条件推定も併用してください。
  • 大きな次数や大きな成分では対角積が倍精度の範囲を超え、Infinityまたは0へあふれる可能性があります。その場合は完成結果を返さず、尺度を変更するか対数行列式を扱える専門環境へ切り替えてください。本ページは有限な行列式と有限な逆数を対象とし、表示桁だけで桁あふれを隠しません。
  • 行列式の逆数は、逆行列の行列式det(A⁻¹)=1/det(A)としても現れます。ただし逆数が表示できても、各成分の逆行列が必要なら逆行列ページで残差まで検査してください。1×1行列[a]ではdet(A)=a、a≠0なら逆数1/aとなり、定義と実装を確認する最小の境界例になります。
  • 入力は実数だけを含む行列です。1行が行列の1行に対応し、成分は空白または半角コンマで区切ります。空行は前後だけを無視し、途中の空行、列数の不一致、数値以外の文字、NaN、Infinity、指数表記として解釈できない断片は暗黙に補正しません。表計算ソフトから貼り付ける場合も、貼り付け後に行数・列数と負号、小数点、桁区切りの有無を確認してください。
  • このページは可変サイズを扱いますが、ブラウザーを停止させないよう成分数と文字数を有界にします。大きな疎行列を密行列として貼り付ける用途や、数千行規模の科学計算を置き換えるものではありません。上限を超える行列は途中まで計算せず、入力エラーとして停止します。大規模計算ではLAPACKを利用する科学計算環境など、目的に合う専門ソフトを使用してください。
  • 計算はIEEE 754の倍精度相当で行います。おおむね15〜16桁の有効数字を持ちますが、入力した全桁が正しい結果として保存される意味ではありません。参照ページにある最大50桁表示をそのまま再現したとは表示せず、本ツールでは最大有効桁と丸め誤差を明記します。非常に大きい値と小さい値を混在させると有効桁が失われるため、必要なら単位や尺度をそろえてください。
  • 部分ピボットは各消去段階で候補列の絶対値が大きい行を選び、ゼロまたは極端に小さい割り算を避ける手順です。多くの一般行列で安定性を改善しますが、すべての悪条件を解消する保証ではありません。行交換が起きた場合は置換情報を計算へ一貫して反映し、行列式の符号、右辺の並べ替え、Lの既計算部分にも同じ交換規約を適用します。
  • このページには利用者が変更する許容誤差欄を置きません。行列式は倍精度の有限値として直接評価し、ノルムの特異値反復は機械精度に合わせた固定閾値と最大反復回数で有界に処理します。設定値を変えて結果を合わせる操作は行わず、入力の尺度、既知例、独立実装との比較で妥当性を確認してください。
  • 検算では結果の見た目だけでなく、元の式へ戻した残差を確認します。逆行列なら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、ゼロ行列、単位行列、対角行列、特異行列という境界を分けて扱ってください。エラーを回避するため値を少し変えるのではなく、なぜ計算が定義できないかを式から確認することが重要です。
  • 本ツールは入力した数学問題を計算するもので、測定値の品質、モデルの妥当性、単位系、座標系、境界条件を判定しません。構造設計、制御、電気、医療、金融など重大な判断へ使う場合は、独立した実装、専門家のレビュー、既知解、残差、感度解析を組み合わせてください。表示値を根拠に安全率や判定基準を自動で決める機能はありません。
  • 倍精度浮動小数点による補助計算です。ゼロ近傍の行列式は入力スケールと丸めに左右され、厳密な代数判定を保証しません。

よくある質問

行列式が0に近いと逆行列は存在しませんか?

厳密な0なら存在しませんが、浮動小数点の『近い』は入力尺度と倍精度の丸めに依存します。残差や条件推定も併せ、必要なら高精度環境で確認してください。

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

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

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

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

収束やゼロ判定の許容誤差を変更できますか?

この2ページには利用者設定欄がありません。行列式は値そのものを計算し、ノルムの反復は倍精度に合わせた固定の有界収束判定を使います。入力スケールと表示された有限桁を確認してください。

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

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

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