主题
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 分解, 三角矩阵, 上三角矩阵

使用 Wolfram|Alpha 探索

参考文献

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.

在 Wolfram|Alpha 上引用

LU 分解

请引用本文为

Weisstein, Eric W. "LU 分解。" 来自 MathWorld--Wolfram Web 资源。 https://mathworld.net.cn/LUDecomposition.html

学科分类