LU(A) を押して計算過程を開いてください。L と U が並んで組み上がり、行を入れ替えた場合は置換行列 P も表示されます。
この分解の使いどころ
A = L·U は、行列を下三角行列と上三角行列の積として書き直したものです。実質は掃き出し法を保存したもので、U は掃き出しの結果、L はそのとき使った倍率を覚えているものにあたります。
利点は右辺が複数になった途端に現れます。Ax = b は Ly = b と Ux = y に分かれ、この二つの三角形の連立方程式は前進代入と後退代入により n² 回の演算で解けます。費用のかかる分解は一度で済み、以降は b が増えてもほとんど負担になりません。数値計算ライブラリが逆行列を求めずにこの手順を取るのはそのためです。
例題
| 4 | 3 |
| 6 | 3 |
| 1 | 0 |
| 1.5 | 1 |
| 4 | 3 |
| 0 | −1.5 |
L の 1.5 は、1 行目を何倍して 2 行目から引いたかという、まさにその倍率です。行列式は U の対角成分の積に、行を入れ替えた回数だけ −1 を掛けたものになります。分解済みの行列なら、行列式はただで手に入るわけです。
よくある間違い
- 置換行列を見落とす。ピボットを使う場合に成り立つのは P·A = L·U であって、A = L·U ではありません。
- 分解が一意だと思う。L の対角成分をすべて 1 とする約束を置いて、はじめて一意になります。
- 長方形の行列に適用する。この形の LU 分解は正方行列を対象としています。
- ピボットを取らずに進める。主成分の位置に 0 が来ると計算は止まり、極端に小さい値が来ると精度が失われます。