第2224题:矩阵的因式分解
之前做过矩阵的奇异值分解(SVD),是矩阵因式分解(把矩阵表示为两个或更多个矩阵的乘积)的一种,本题涉及另一种分解,LU 分解(LU decomposition). LU 分解是将一个矩阵分解为一个下三角矩阵(Lower triangular matrix)和一个上三角矩阵(Upper triangular matrix)的乘积的方法. 这种分解通常用于解线性方程组、计算行列式以及求解矩阵的逆.
设 Am×n=LU ,其中 L 是 m×m 的下三角单位矩阵,其主对角线元素全是 1 ,U 是 A 的一个等价的 m×n 阶梯矩阵,样式如下
A=⎣⎢⎢⎡1∗∗∗01∗∗001∗0001⎦⎥⎥⎤⎣⎢⎢⎡■000∗■00∗∗00∗∗■0∗∗∗0⎦⎥⎥⎤
当 A=LU 时,方程 Ax=b 可以改成 L(Ux)=b ,令 y=Ux ,可以通过解方程组
{Ly=bUx=y
来求解 x .
【例】,已知
A=⎣⎢⎢⎡3−36−9−75−45−210−520−512⎦⎥⎥⎤=LU , b=⎣⎢⎢⎡35−911⎦⎥⎥⎤ ,解 Ax=b . 其中
L=⎣⎢⎢⎡1−12−301−5800130001⎦⎥⎥⎤ , U=⎣⎢⎢⎡3000−7−200−2−1−10221−1⎦⎥⎥⎤
【解】,第一步,用行变换得到 y
[Lb]=⎣⎢⎢⎡1−12−301−580013000135−911⎦⎥⎥⎤ ∼ ⎣⎢⎢⎡10000100001000013825−119⎦⎥⎥⎤ =[Iy]
得到
y=⎣⎢⎢⎡3825−119⎦⎥⎥⎤
第二步,用行变换得到 x
[Uy]=⎣⎢⎢⎡3000−7−200−2−1−10221−13825−119⎦⎥⎥⎤ ∼ ⎣⎢⎢⎡1000010000100001x1x2x3119⎦⎥⎥⎤ =[Ix]
得到
x=⎣⎢⎢⎡x1x2x3119⎦⎥⎥⎤ ,请计算 x1,x2,x3 的值.
不算 LU 分解的过程求得 x 只需要 34 次算术运算,而如果直接从 A 计算,即
[Ab]∼[Ix]
则需要 62 次运算.