MatrixCalc

LU 分解の計算機

部分ピボット付きで正方行列を A = L·U に分解し、二つの三角行列がどのように組み上がるかを順を追って確認できます。

行列 A
: 3
: 3
行列 B
: 3
: 3
演算

下の手順を開くと完全な答えが表示されます。

結果
演算を選択するとここに結果が表示されます。エラーメッセージもここに表示されます。

ヒント: サイズを調整してください (最大 50×50)。A×B は Aの列数 = Bの行数が必要です。行列式/逆行列/トレース/べき乗は正方行列である必要があります。

React, Tailwind & shadcn/ui. No external math deps. — 日本語

LU(A) を押して計算過程を開いてください。L と U が並んで組み上がり、行を入れ替えた場合は置換行列 P も表示されます。

この分解の使いどころ

A = L·U は、行列を下三角行列と上三角行列の積として書き直したものです。実質は掃き出し法を保存したもので、U は掃き出しの結果、L はそのとき使った倍率を覚えているものにあたります。

利点は右辺が複数になった途端に現れます。Ax = b は Ly = b と Ux = y に分かれ、この二つの三角形の連立方程式は前進代入と後退代入により n² 回の演算で解けます。費用のかかる分解は一度で済み、以降は b が増えてもほとんど負担になりません。数値計算ライブラリが逆行列を求めずにこの手順を取るのはそのためです。

例題

43
63
=
10
1.51
·
43
0−1.5

L の 1.5 は、1 行目を何倍して 2 行目から引いたかという、まさにその倍率です。行列式は U の対角成分の積に、行を入れ替えた回数だけ −1 を掛けたものになります。分解済みの行列なら、行列式はただで手に入るわけです。

よくある間違い

  • 置換行列を見落とす。ピボットを使う場合に成り立つのは P·A = L·U であって、A = L·U ではありません。
  • 分解が一意だと思う。L の対角成分をすべて 1 とする約束を置いて、はじめて一意になります。
  • 長方形の行列に適用する。この形の LU 分解は正方行列を対象としています。
  • ピボットを取らずに進める。主成分の位置に 0 が来ると計算は止まり、極端に小さい値が来ると精度が失われます。

よくある質問

LU 分解は何に使いますか。
同じ行列で右辺だけが変わる連立方程式を解くのに使います。分解は一度きりで、以降の連立方程式は三角形の求解 2 回分の手間で済みます。
置換行列 P は何を表しますか。
どの行を入れ替えたかを記録するものです。部分ピボットを使う場合、結果は P·A = L·U と書かれます。
コレスキー分解を使うべきなのはどんなときですか。
行列が対称かつ正定値のときです。およそ 2 倍速く、A = L·Lᵀ となるため三角行列も 1 つで済みます。
LU 分解から行列式は得られますか。
得られます。U の対角成分の積に、行を入れ替えた回数だけ −1 を掛けたものが行列式です。

詳しい解説をお探しですか。こちらの記事へ: LU 分解を一歩ずつ

ほかの計算機