矩阵 A \boldsymbol{A} A的因式分解是把 A \boldsymbol{A} A表示为两个或更多个矩阵的乘积。
当 A = L U \boldsymbol{A}=\boldsymbol{LU} A=LU时,方程 A x = x \boldsymbol{Ax}=\boldsymbol{x} Ax=x可写成 L ( U x ) = b \boldsymbol{L}(\boldsymbol{Ux})=\boldsymbol{b} L(Ux)=b。把 U x \boldsymbol{Ux} Ux写成 y \boldsymbol{y} y,可以由解下面一对方程来求解 x \boldsymbol{x} x: { L y = b U x = y \begin{cases} \boldsymbol{Ly}=\boldsymbol{b} \\ \boldsymbol{Ux} = \boldsymbol{y} \end{cases} {Ly=bUx=y
可以证明 A = [ 3 − 7 − 2 2 − 3 5 1 0 6 − 4 0 − 5 − 9 5 − 5 12 ] = [ 1 0 0 0 − 1 1 0 0 2 − 5 1 0 − 3 8 3 1 ] [ 3 − 7 − 2 2 0 − 2 − 1 2 0 0 − 1 1 0 0 0 − 1 ] = L U \boldsymbol{A}=\begin{bmatrix}3 & -7 & -2 & 2 \\ -3 & 5 & 1 & 0 \\ 6 & -4 & 0 & -5 \\ -9 & 5 & -5 & 12 \end{bmatrix}=\begin{bmatrix}1 & 0 & 0 & 0 \\ -1 & 1 & 0 & 0 \\ 2 & -5 & 1 & 0 \\ -3 & 8 & 3 & 1 \end{bmatrix}\begin{bmatrix}3 & -7 & -2 & 2 \\ 0 & -2 & -1 & 2 \\ 0 & 0 & -1 & 1 \\ 0 & 0 & 0 & -1 \end{bmatrix}=\boldsymbol{LU} A=⎣⎢⎢⎡3−36−9−75−45−210−520−512⎦⎥⎥⎤=⎣⎢⎢⎡1−12−301−5800130001⎦⎥⎥⎤⎣⎢⎢⎡3000−7−200−2−1−10221−1⎦⎥⎥⎤=LU
应用 A \boldsymbol{A} A的 L U \boldsymbol{LU} LU分解来解 A x = b \boldsymbol{Ax}=\boldsymbol{b} Ax=b,其中 b = [ − 9 5 7 11 ] \boldsymbol{b}=\begin{bmatrix}-9 \\ 5 \\ 7 \\ 11\end{bmatrix} b=⎣⎢⎢⎡−95711⎦⎥⎥⎤。
解:解 L y = b \boldsymbol{Ly}=\boldsymbol{b} Ly=b。
[ L b ] = [ 1 0 0 0 − 9 − 1 1 0 0 5 2 − 5 1 0 7 − 3 8 3 1 11 ] \begin{bmatrix} \boldsymbol{L} & \boldsymbol{b} \end{bmatrix}=\begin{bmatrix}1 & 0 & 0 & 0 & -9 \\ -1 & 1 & 0 & 0 & 5 \\ 2 & -5 & 1 & 0 & 7 \\ -3 & 8 & 3 & 1 & 11 \end{bmatrix} [Lb]=⎣⎢⎢⎡1−12−301−5800130001−95711⎦⎥⎥⎤~ [ 1 0 0 0 − 9 0 1 0 0 − 4 0 0 1 0 5 0 0 0 1 1 ] = [ I y ] \begin{bmatrix} 1 & 0 & 0 & 0 & -9 \\ 0 & 1 & 0 & 0 & -4 \\ 0 & 0 & 1 & 0 & 5 \\ 0 & 0 & 0 & 1 & 1 \end{bmatrix}=\begin{bmatrix} \boldsymbol{I} & \boldsymbol{y}\end{bmatrix} ⎣⎢⎢⎡1000010000100001−9−451⎦⎥⎥⎤=[Iy]
对 U x = y \boldsymbol{Ux}=\boldsymbol{y} Ux=y进行行化简的向后步骤。
[ U y ] = [ 3 − 7 − 2 2 − 9 0 − 2 − 1 2 4 0 0 − 1 1 5 0 0 0 − 1 1 ] \begin{bmatrix} \boldsymbol{U} & \boldsymbol{y} \end{bmatrix}=\begin{bmatrix}3 & -7 & -2 & 2 & -9 \\ 0 & -2 & -1 & 2 & 4 \\ 0 & 0 & -1 & 1 & 5 \\ 0 & 0 & 0 & -1 & 1 \end{bmatrix} [Uy]=⎣⎢⎢⎡3000−7−200−2−1−10221−1−9451⎦⎥⎥⎤~ [ 1 0 0 0 3 0 1 0 0 4 0 0 1 0 − 6 0 0 0 1 − 1 ] \begin{bmatrix} 1 & 0 & 0 & 0 & 3 \\ 0 & 1 & 0 & 0 & 4 \\ 0 & 0 & 1 & 0 & -6 \\ 0 & 0 & 0 & 1 & -1 \end{bmatrix} ⎣⎢⎢⎡100001000010000134−6−1⎦⎥⎥⎤
故 x = [ 3 4 − 6 − 1 ] \boldsymbol{x}=\begin{bmatrix}3 \\ 4 \\ -6 \\ -1\end{bmatrix} x=⎣⎢⎢⎡34−6−1⎦⎥⎥⎤。
L U \boldsymbol{LU} LU分解的计算依赖于如何求 L \boldsymbol{L} L和 U \boldsymbol{U} U。
设 A \boldsymbol{A} A可以化为阶梯形 U \boldsymbol{U} U,化简过程中仅用行倍加变换,即把一行的倍数加于它下面的另一行。这样,存在单位下三角初等矩阵 E 1 , ⋯   , E p \boldsymbol{E_1},\cdots,\boldsymbol{E_p} E1,⋯,Ep使 E p ⋯ E 1 A = U \boldsymbol{E_p}\cdots\boldsymbol{E_1}\boldsymbol{A}=\boldsymbol{U} Ep⋯E1A=U。于是 A = ( E p ⋯ E 1 ) − 1 U = L U \boldsymbol{A}=(\boldsymbol{E_p}\cdots\boldsymbol{E_1})^{-1}\boldsymbol{U}=\boldsymbol{LU} A=(Ep⋯E1)−1U=LU,其中 L = ( E p ⋯ E 1 ) − 1 \boldsymbol{L}=(\boldsymbol{E_p}\cdots\boldsymbol{E_1})^{-1} L=(Ep⋯E1)−1。可以证明 L \boldsymbol{L} L是单位下三角矩阵。
注意将 A \boldsymbol{A} A化为阶梯形 U \boldsymbol{U} U过程中的行变换,它把 A \boldsymbol{A} A化为 U \boldsymbol{U} U。这写行变换也把 L \boldsymbol{L} L化为 I \boldsymbol{I} I,这是因为 E p ⋯ E 1 L = E p ⋯ E 1 ( E p ⋯ E 1 ) − 1 = I \boldsymbol{E_p}\cdots\boldsymbol{E_1}\boldsymbol{L}=\boldsymbol{E_p}\cdots\boldsymbol{E_1}(\boldsymbol{E_p}\cdots\boldsymbol{E_1})^{-1}=\boldsymbol{I} Ep⋯E1L=Ep⋯E1(Ep⋯E1)−1=I
L U \boldsymbol{LU} LU分解的算法:
求下列矩阵的 L U \boldsymbol{LU} LU分解: A = [ 2 4 − 1 5 − 2 − 4 − 5 3 − 8 1 2 − 5 − 4 1 8 − 6 0 7 − 3 1 ] \boldsymbol{A}=\begin{bmatrix} 2 & 4 & -1 & 5 & -2 \\ -4 & -5 & 3 & -8 & 1 \\ 2 & -5 & -4 & 1 & 8 \\ -6 & 0 & 7 & -3 & 1 \end{bmatrix} A=⎣⎢⎢⎡2−42−64−5−50−13−475−81−3−2181⎦⎥⎥⎤
解:因 A \boldsymbol{A} A有4行,故 L \boldsymbol{L} L应为 4 × 4 4 \times 4 4×4矩阵。 L \boldsymbol{L} L的第一列应该是 A \boldsymbol{A} A的第一列除以它的第一行主元素: L = [ 1 0 0 0 − 2 1 0 0 1 1 0 − 3 1 ] \boldsymbol{L}=\begin{bmatrix} 1 & 0 & 0 & 0 \\ -2 & 1 & 0 & 0 \\ 1 && 1 & 0 \\ -3 & & & 1\end{bmatrix} L=⎣⎢⎢⎡1−21−3010010001⎦⎥⎥⎤
比较 A \boldsymbol{A} A和 L \boldsymbol{L} L的第一列。把 A \boldsymbol{A} A的第一列的后三个元素变成零的行变换同时也将 L \boldsymbol{L} L的第一列的后三个元素变成0。
A = [ 2 4 − 1 5 − 2 − 4 − 5 3 − 8 1 2 − 5 − 4 1 8 − 6 0 7 − 3 1 ] \boldsymbol{A}=\begin{bmatrix} \color{red}{2} & 4 & -1 & 5 & -2 \\ \color{red}{-4} & -5 & 3 & -8 & 1 \\ \color{red}{2} & -5 & -4 & 1 & 8 \\ \color{red}{-6} & 0 & 7 & -3 & 1 \end{bmatrix} A=⎣⎢⎢⎡2−42−64−5−50−13−475−81−3−2181⎦⎥⎥⎤~ [ 2 4 − 1 5 − 2 0 3 1 2 − 3 0 − 9 − 3 − 4 10 0 12 4 12 − 5 ] \begin{bmatrix} 2 & 4 & -1 & 5 & -2 \\ 0 & \color{red}{3} & 1 & 2 & -3 \\ 0 & \color{red}{-9} & -3 & -4 & 10 \\ 0 & \color{red}{12} & 4 & 12 & -5 \end{bmatrix} ⎣⎢⎢⎡200043−912−11−3452−412−2−310−5⎦⎥⎥⎤~ [ 2 4 − 1 5 − 2 0 3 1 2 − 3 0 0 0 2 1 0 0 0 4 7 ] \begin{bmatrix} 2 & 4 & -1 & 5 & -2 \\ 0 & 3 & 1 & 2 & -3 \\ 0 & 0 & 0 & \color{red}{2} & 1 \\ 0 & 0 & 0 & \color{red}{4} & 7 \end{bmatrix} ⎣⎢⎢⎡20004300−11005224−2−317⎦⎥⎥⎤~ [ 2 4 − 1 5 − 2 0 3 1 2 − 3 0 0 0 2 1 0 0 0 0 5 ] \begin{bmatrix} 2 & 4 & -1 & 5 & -2 \\ 0 & 3 & 1 & 2 & -3 \\ 0 & 0 & 0 & 2 & 1 \\ 0 & 0 & 0 & 0 & \color{red}{5} \end{bmatrix} ⎣⎢⎢⎡20004300−11005220−2−315⎦⎥⎥⎤
上式中标出的元素确定来将 A \boldsymbol{A} A化为 U \boldsymbol{U} U的行化简。在每个主元列,把标出的元素除以主元后将结果放入 L \boldsymbol{L} L: L = [ 1 0 0 0 − 2 1 0 0 1 − 3 1 0 − 3 4 2 1 ] \boldsymbol{L}=\begin{bmatrix} 1 & 0 & 0 & 0 \\ -2 & 1 & 0 & 0 \\ 1 & -3 & 1 & 0 \\ -3 & 4 & 2 & 1\end{bmatrix} L=⎣⎢⎢⎡1−21−301−3400120001⎦⎥⎥⎤。
容易证明,所求出的 L \boldsymbol{L} L和 U \boldsymbol{U} U满足 L U = A \boldsymbol{LU} = \boldsymbol{A} LU=A。