主題
Search

LU 分解


將一個 N×N 矩陣 A 分解為 下三角矩陣 L上三角矩陣 U 的乘積的程式,

 LU=A.
(1)

LU 分解在 Wolfram 語言 中以如下形式實現LUDecomposition[m].

顯式地寫出一個 3×3 矩陣,分解形式為

 [l_(11) 0 0; l_(21) l_(22) 0; l_(31) l_(32) l_(33)][u_(11) u_(12) u_(13); 0 u_(22) u_(23); 0 0 u_(33)]=[a_(11) a_(12) a_(13); a_(21) a_(22) a_(23); a_(31) a_(32) a_(33)]
(2)
 [l_(11)u_(11) l_(11)u_(12) l_(11)u_(13); l_(21)u_(11) l_(21)u_(12)+l_(22)u_(22) l_(21)u_(13)+l_(22)u_(23); l_(31)u_(11) l_(31)u_(12)+l_(32)u_(22) l_(31)u_(13)+l_(32)u_(23)+l_(33)u_(33)]=[a_(11) a_(12) a_(13); a_(21) a_(22) a_(23); a_(31) a_(32) a_(33)].
(3)

這給出了三種類型的方程

 i<j    l_(i1)u_(1j)+l_(i2)u_(2j)+...+l_(ii)u_(ij)=a_(ij)
(4)
 i=j    l_(i1)u_(1j)+l_(i2)u_(2j)+...+l_(ii)u_(jj)=a_(ij)
(5)
 i>j    l_(i1)u_(1j)+l_(i2)u_(2j)+...+l_(ij)u_(jj)=a_(ij).
(6)

這給出了 N^2 個方程,求解 N^2+N未知數(分解不是唯一的),可以使用 Crout 方法 求解。為了求解矩陣方程

 Ax=(LU)x=L(Ux)=b,
(7)

首先求解 Ly=b 中的 y。這可以透過前向替換完成

y_1=(b_1)/(l_(11))
(8)
y_i=1/(l_(ii))(b_i-sum_(j=1)^(i-1)l_(ij)y_j)
(9)

對於 i=2, ..., N。然後求解 Ux=y 中的 x。這可以通過後向替換完成

x_N=(y_N)/(u_(NN))
(10)
x_i=1/(u_(ii))(y_i-sum_(j=i+1)^(N)u_(ij)x_j)
(11)

對於 i=N-1, ..., 1。


另請參閱

高斯消元法, 下三角矩陣, 矩陣分解, Cholesky 分解, QR 分解, 三角矩陣, 上三角矩陣

使用 探索

參考文獻

Press, W. H.; Flannery, B. P.; Teukolsky, S. A.; 和 Vetterling, W. T. "LU Decomposition and Its Applications." §2.3 in Numerical Recipes in FORTRAN: The Art of Scientific Computing, 2nd ed. Cambridge, England: Cambridge University Press, pp. 34-42, 1992.

在 上引用

LU 分解

請引用本文為

Weisstein, Eric W. "LU 分解。" 來自 Web 資源。 https://mathworld.tw/LUDecomposition.html

學科分類