小结
- LU\boldsymbol{LU}LU分解
- LU\boldsymbol{LU}LU分解算法
矩阵A\boldsymbol{A}A的因式分解是把A\boldsymbol{A}A表示为两个或更多个矩阵的乘积。
LU\boldsymbol{LU}LU分解
- 设A\boldsymbol{A}A是m×nm \times nm×n矩阵,它可以行换简为阶梯形而不必行对换(此后,我们将处理一般情形),则A\boldsymbol{A}A可写成A=LU\boldsymbol{A}=\boldsymbol{LU}A=LU,L\boldsymbol{L}L是m×mm \times mm×m下三角矩阵,主对角线全是1,U\boldsymbol{U}U是A\boldsymbol{A}A的一个m×nm \times nm×n阶梯形矩阵。这样一个分解称为**LU\boldsymbol{LU}LU分解**,矩阵L\boldsymbol{L}L是可逆的,称为单位下三角矩阵。
当A=LU\boldsymbol{A}=\boldsymbol{LU}A=LU时,方程Ax=x\boldsymbol{Ax}=\boldsymbol{x}Ax=x可写成L(Ux)=b\boldsymbol{L}(\boldsymbol{Ux})=\boldsymbol{b}L(Ux)=b。把Ux\boldsymbol{Ux}Ux写成y\boldsymbol{y}y,可以由解下面一对方程来求解x\boldsymbol{x}x:{Ly=bUx=y\begin{cases} \boldsymbol{Ly}=\boldsymbol{b} \\ \boldsymbol{Ux} = \boldsymbol{y} \end{cases}{Ly=bUx=y
可以证明A=[3−7−22−35106−40−5−95−512]=[1000−11002−510−3831][3−7−220−2−1200−11000−1]=LU\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的LU\boldsymbol{LU}LU分解来解Ax=b\boldsymbol{Ax}=\boldsymbol{b}Ax=b,其中b=[−95711]\boldsymbol{b}=\begin{bmatrix}-9 \\ 5 \\ 7 \\ 11\end{bmatrix}b=⎣⎢⎢⎡−95711⎦⎥⎥⎤。
解:解Ly=b\boldsymbol{Ly}=\boldsymbol{b}Ly=b。
[Lb]=[1000−9−110052−5107−383111]\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⎦⎥⎥⎤~[1000−90100−40010500011]=[Iy]\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]
对Ux=y\boldsymbol{Ux}=\boldsymbol{y}Ux=y进行行化简的向后步骤。
[Uy]=[3−7−22−90−2−12400−115000−11]\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⎦⎥⎥⎤~[10003010040010−60001−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=[34−6−1]\boldsymbol{x}=\begin{bmatrix}3 \\ 4 \\ -6 \\ -1\end{bmatrix}x=⎣⎢⎢⎡34−6−1⎦⎥⎥⎤。
LU\boldsymbol{LU}LU分解的计算依赖于如何求L\boldsymbol{L}L和U\boldsymbol{U}U。
LU\boldsymbol{LU}LU分解算法
设A\boldsymbol{A}A可以化为阶梯形U\boldsymbol{U}U,化简过程中仅用行倍加变换,即把一行的倍数加于它下面的另一行。这样,存在单位下三角初等矩阵E1,⋯ ,Ep\boldsymbol{E_1},\cdots,\boldsymbol{E_p}E1,⋯,Ep使Ep⋯E1A=U\boldsymbol{E_p}\cdots\boldsymbol{E_1}\boldsymbol{A}=\boldsymbol{U}Ep⋯E1A=U。于是A=(Ep⋯E1)−1U=LU\boldsymbol{A}=(\boldsymbol{E_p}\cdots\boldsymbol{E_1})^{-1}\boldsymbol{U}=\boldsymbol{LU}A=(Ep⋯E1)−1U=LU,其中L=(Ep⋯E1)−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,这是因为Ep⋯E1L=Ep⋯E1(Ep⋯E1)−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
LU\boldsymbol{LU}LU分解的算法:
- 如果可能的话,用一系列的行倍加变换把A\boldsymbol{A}A化为阶梯形U\boldsymbol{U}U。
- 填充L\boldsymbol{L}L的元素使相同的行变换把L\boldsymbol{L}L变为I\boldsymbol{I}I。
求下列矩阵的LU\boldsymbol{LU}LU分解:A=[24−15−2−4−53−812−5−418−607−31]\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×44 \times 44×4矩阵。L\boldsymbol{L}L的第一列应该是A\boldsymbol{A}A的第一列除以它的第一行主元素:L=[1000−2100110−31]\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=[24−15−2−4−53−812−5−418−607−31]\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⎦⎥⎥⎤~[24−15−20312−30−9−3−410012412−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⎦⎥⎥⎤~[24−15−20312−30002100047]\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⎦⎥⎥⎤~[24−15−20312−30002100005]\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=[1000−21001−310−3421]\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满足LU=A\boldsymbol{LU} = \boldsymbol{A}LU=A。
819



被折叠的 条评论
为什么被折叠?



