LU分解計算器
使用杜立特消去法,將方陣分解為下三角矩陣與上三角矩陣。
分解矩陣
同一橫列的元素用逗號或空格分隔,橫列之間用分號分隔。
關於LU分解
LU分解將方陣 A 表示為 L 與 U 的乘積。矩陣 L 是下三角矩陣,也就是主對角線上方的元素皆為零;矩陣 U 是上三角矩陣,也就是主對角線下方的元素皆為零。本工具採用杜立特慣例,L 的所有對角元素都等於一。將顯示的兩個因子相乘,即可還原原始輸入矩陣,僅會有一般的浮點捨入誤差。
分解過程以高斯消去法為基礎。原本用來消除主元下方元素的每個消去乘數,都會儲存在 L 中;逐步形成的列階梯矩陣則成為 U。這種安排能保留消去過程,而非將其丟棄。有了 L 與 U,當同一係數矩陣搭配多個不同右側向量時,就能重複利用結果,比每次從頭消去更有效率。
若要求解 A × x = b,先以前向代入法解 L × y = b,再以反向代入法解 U × x = y。三角方程組容易求解,因為每個接續的方程式只增加一個新的未知數。LU因子也可用於計算行列式:L 的對角線為一時,行列式等於 U 對角元素的乘積。矩陣求逆與數值模擬也將此結構作為基本組件。
本計算器接受精簡的矩陣表示法。同一橫列內的數值以逗號或空格分隔,橫列之間以分號分隔。每個橫列的元素數量必須與橫列總數相同,因為此形式的LU分解需要方陣。支援負數與小數。結果只在顯示時四捨五入,消去運算本身使用 JavaScript 雙精度算術。
本實作採用不選主元的杜立特分解,因此消去過程遇到的每個主元都必須非零。有些完全可逆的矩陣一開始的主元為零,分解前需要交換橫列。在完整的數值函式庫中,此操作以置換矩陣 P 表示,關係為 P × A = L × U。若計算器回報主元錯誤,請適當調整橫列順序後再輸入,或使用具主元選擇的求解器。對於條件良好的課堂範例,以及對角主元可用的矩陣,顯示的分解結果清楚且可立即核對。
LU分解範例
| 矩陣 A | 分解因子 | 核對 |
|---|---|---|
| 4,3;6,3 | L: 1,0;1.5,1 與 U: 4,3;0,-1.5 | L 乘以 U 可得到原本含兩個橫列的矩陣。 |
| 2,0;0,5 | L: 單位矩陣,U: 2,0;0,5 | 對角矩陣本身就是上三角矩陣。 |
| 2,1,1;4,-6,0;-2,7,2 | L: 1,0,0;2,1,0;-1,-1,1 | 對應 U 的橫列為 2,1,1;0,-8,-2;0,0,1。 |
如何計算LU分解
- 將矩陣每個橫列寫成以逗號或空格分隔的數字。
- 以分號連接各橫列,並確認矩陣為方陣。
- 選擇「分解矩陣」,執行杜立特高斯消去法。
- 查看 L 與 U,再相乘確認乘積等於輸入矩陣。
LU分解常見問題
什麼是LU分解?
它將方陣分解為下三角矩陣與上三角矩陣。不需要交換橫列時,兩者的乘積就是原矩陣。
LU分解有什麼用途?
求解多個具有相同係數矩陣的方程組時,可以重複利用消去結果,也能簡化行列式、反矩陣與數值分析計算。
應輸入什麼矩陣格式?
同一橫列的元素用逗號或空格分隔,橫列之間用分號分隔。每個橫列的元素數量須與橫列總數相同。
為什麼矩陣會出現主元錯誤?
不選主元的杜立特消去法不能除以零主元。調整橫列順序可能解決問題,通用軟體則會使用置換矩陣與部分主元選擇。
可以輸入小數與負數嗎?
可以,支援有限的小數及負數。為方便閱讀分解因子,顯示值會四捨五入至小數點後八位。