正方行列の整数n乗を二乗法で計算

正方行列の整数n乗を二乗法で計算

実正方行列Aと整数nからAⁿを繰り返し二乗法で計算し、0乗は単位行列、負指数は逆行列を経由して扱います。

入力

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

0は単位行列、負数は逆行列の正の累乗として計算します。

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

使い方

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

計算式・考え方

n=0ではA⁰=I、n>0では指数の二進展開に沿う繰り返し二乗法、n<0ではAⁿ=(A⁻¹)^(−n)を使います。負指数の逆行列は部分ピボット付きLU分解で求めます。

注意事項

  • 行列のn乗は同じ正方行列を整数回合成する演算です。行列積は一般に交換できないため、スカラーの累乗と同じ感覚で因子の順序を変えてはいけません。同じAだけを掛けるAⁿでは結合則を使えるので、指数を半分ずつ処理する繰り返し二乗法により、n回の単純反復より少ない乗算回数で計算できます。
  • Fibonacci型のA=[[1,1],[1,0]]ではA⁵=[[8,5],[5,3]]です。指数5を二進数101として読み、必要な累乗だけを結果へ掛けます。結果表は行列名A^n、行、列、値を返します。整数以外の指数は行列対数や固有値分解など別の定義が必要なため、このページでは受け付けません。
  • 0乗は入力行列の値にかかわらず同じ次数の単位行列Iと定義します。これは空積としての規約で、ゼロ行列についてもA⁰=Iを採用します。指数0を入力したのにゼロ行列が返る実装は誤りです。1×1行列では通常のスカラー整数乗と一致するため、正・0・負指数の境界検算に利用できます。
  • 負指数n<0では、まずAが可逆かを部分ピボット付きLU分解と許容誤差で検査し、A⁻¹の−n乗を計算します。特異行列の負指数は定義できません。正指数なら特異行列も計算できます。負の最小整数を符号反転すると桁あふれする実装上の罠があるため、指数範囲を有界にし安全に絶対値へ変換します。
  • 指数が大きいと、わずかな丸め誤差も乗算ごとに増幅し、値が倍精度の最大値を超えることがあります。逆に固有値の絶対値が1未満なら成分が0へ近づきます。Infinity、NaN、非有限な中間値を完成表へ出さず、指数を小さくする、尺度を変更する、任意精度環境へ切り替えるなどの対応を促します。
  • 遷移行列、漸化式、グラフの歩道数などでは行列累乗が使われますが、入力の意味は分野ごとに異なります。確率遷移行列なら行和や列和の規約、グラフなら隣接行列の向き、状態空間なら時間刻みを確認してください。本ツールは数学的なAⁿだけを計算し、モデルが目的に合うかは判定しません。
  • 入力は実数だけを含む行列です。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、ゼロ行列、単位行列、対角行列、特異行列という境界を分けて扱ってください。エラーを回避するため値を少し変えるのではなく、なぜ計算が定義できないかを式から確認することが重要です。
  • 本ツールは入力した数学問題を計算するもので、測定値の品質、モデルの妥当性、単位系、座標系、境界条件を判定しません。構造設計、制御、電気、医療、金融など重大な判断へ使う場合は、独立した実装、専門家のレビュー、既知解、残差、感度解析を組み合わせてください。表示値を根拠に安全率や判定基準を自動で決める機能はありません。
  • 倍精度浮動小数点による補助計算です。大きな指数では丸め誤差や桁あふれが増え、負指数では行列の可逆性と条件の良さが必要です。

よくある質問

小数や分数の指数を入力できますか?

できません。このページは整数乗だけです。非整数乗には行列対数、固有値、枝の選択など別の定義と検査が必要です。

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

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

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

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

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

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

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

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

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