矩阵的三角分解将矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积.
定义:如果n阶矩阵A能够分解成一个下三角矩阵L和一个上三角矩阵U的乘积,则称这种分解为三角分解或LU分解,如果n阶矩阵A能够分解为A=LDU,其中L为单位下三角矩阵,D为对角阵,U为单位上三角举证,则称这种分解为LDU分解
设A=LU是A的三角分解,如果L是一个单位下三角矩阵,则称它为(Dollitle)分解;如果U是一个单位上三角矩阵则称它为(Crout)分解
定理 矩阵A=(a i j _{ij} ij) n n _{nn} nn的LDU分解式唯一的充分且必要条件为A的顺序主子式D k _k k≠0,k=1,2,…k-1
其中L是单位下三角矩阵,U是单位上三角矩阵,D=diag(d 1 _1 1,d 2 _2 2d, 3 _3 3,…d n _n n)是对角阵,并且d k _k k= D k D k − 1 \frac{D_k}{D_{k-1}} Dk−1Dk(D 0 _0 0=1)
推论n阶非奇异矩阵A有LU分解的充分必要条件是A的顺序主子式D k _k k≠0
如Dollitle分解为例子,其他形式都可以由其的得出来(举例将实际求法,不研究其理论)
以4阶方阵为例子(矩阵中_表示未知元素)
A = ( 2 1 − 1 3 4 3 − 2 11 − 4 1 5 8 6 2 12 3 ) A=\begin{pmatrix} 2 & 1 & -1 & 3 \\ 4 & 3 & -2 & 11 \\ -4 & 1 & 5 & 8 \\ 6 & 2 & 12 & 3 \\ \end{pmatrix} A=⎝⎜⎜⎛24−461312−1−251231183⎠⎟⎟⎞
根据Dollitle的定义A可以写成一个单位下三角跟一个上三角矩阵的乘积,根据矩阵的乘法运算规则,我们可以确定上三角矩阵的第一行元素就是A矩阵的第一行
A = L ∗ U = ( 1 0 0 0 _ 1 0 0 _ _ 1 0 _ _ _ 1 ) ∗ ( 2 1 − 1 3 0 _ _ _ 0 0 _ _ 0 0 0 _ ) A=L*U=\begin{pmatrix} 1 & 0 & 0 & 0 \\ \_ & 1 & 0& 0 \\ \_ & \_& 1 & 0 \\ \_ & \_ & \_ & 1 \\ \end{pmatrix}* \begin{pmatrix} 2 & 1 & -1 & 3 \\ 0 & \_ & \_& \_\\ 0 & 0 & \_ & \_\\ 0 & 0 & 0 & \_ \\ \end{pmatrix} A=L∗U=⎝⎜⎜⎛1___01__001_0001⎠⎟⎟⎞∗⎝⎜⎜⎛20001_00−1__03___⎠⎟⎟⎞
可以看到U矩阵的第一列元素只有一个是非零的,根据矩阵乘法,L矩阵的每一行与U矩阵的第一列相乘得到A矩阵的第一列矩阵
A = L ∗ U = ( 2 1 − 1 3 4 3 − 2 11 − 4 1 5 8 6 2 12 3 ) = ( 1 0 0 0 2 1 0 0 − 2 _ 1 0 3 _ _ 1 ) ∗ ( 2 1 − 1 3 0 _ _ _ 0 0 _ _ 0 0 0 _ ) A=L*U=\begin{pmatrix} 2 & 1 & -1 & 3 \\ 4 & 3 & -2 & 11 \\ -4 & 1 & 5 & 8 \\ 6 & 2 & 12 & 3 \\ \end{pmatrix} =\begin{pmatrix} 1 & 0 & 0 & 0 \\ 2 & 1 & 0& 0 \\ -2 & \_& 1 & 0 \\ 3 & \_ & \_ & 1 \\ \end{pmatrix}* \begin{pmatrix} 2 & 1 & -1 & 3 \\ 0 & \_ & \_& \_\\ 0 & 0 & \_ & \_\\ 0 & 0 & 0 & \_ \\ \end{pmatrix} A=L∗U=⎝⎜⎜⎛24−461312−1−251231183⎠⎟⎟⎞=⎝⎜⎜⎛12−2301__001_0001⎠⎟⎟⎞∗⎝⎜⎜⎛20001_00−1__03___⎠⎟⎟⎞
L矩阵的第二行元素全部已知,根据矩阵的乘法L矩阵的第二行元素与U矩阵的每一列元素相乘决定了A矩阵的第二行元素
A = L ∗ U = ( 2 1 − 1 3 4 3 − 2 11 − 4 1 5 8 6 2 12 3 ) = ( 1 0 0 0 2 1 0 0 − 2 _ 1 0 3 _ _ 1 ) ∗ ( 2 1 − 1 3 0 1 0 5 0 0 _ _ 0 0 0 _ ) A=L*U=\begin{pmatrix} 2 & 1 & -1 & 3 \\ 4 & 3 & -2 & 11 \\ -4 & 1 & 5 & 8 \\ 6 & 2 & 12 & 3 \\ \end{pmatrix} =\begin{pmatrix} 1 & 0 & 0 & 0 \\ 2 & 1 & 0& 0 \\ -2 & \_& 1 & 0 \\ 3 & \_ & \_ & 1 \\ \end{pmatrix}* \begin{pmatrix} 2 & 1 & -1 & 3 \\ 0 & 1 & 0 & 5 \\ 0 & 0 & \_ & \_\\ 0 & 0 & 0 & \_ \\ \end{pmatrix} A=L∗U=⎝⎜⎜⎛24−461312−1−251231183⎠⎟⎟⎞=⎝⎜⎜⎛12−2301__001_0001⎠⎟⎟⎞∗⎝⎜⎜⎛20001100−10_035__⎠⎟⎟⎞
U矩阵的第二列元素与L矩阵的每一行相乘得到A矩阵的第二列元素
A = L ∗ U = ( 2 1 − 1 3 4 3 − 2 11 − 4 1 5 8 6 2 12 3 ) = ( 1 0 0 0 2 1 0 0 − 2 3 1 0 3 − 1 _ 1 ) ∗ ( 2 1 − 1 3 0 1 0 5 0 0 _ _ 0 0 0 _ ) A=L*U=\begin{pmatrix} 2 & 1 & -1 & 3 \\ 4 & 3 & -2 & 11 \\ -4 & 1 & 5 & 8 \\ 6 & 2 & 12 & 3 \\ \end{pmatrix} =\begin{pmatrix} 1 & 0 & 0 & 0 \\ 2 & 1 & 0& 0 \\ -2 & 3 & 1 & 0 \\ 3 & -1 & \_ & 1 \\ \end{pmatrix}* \begin{pmatrix} 2 & 1 & -1 & 3 \\ 0 & 1 & 0 & 5 \\ 0 & 0 & \_ & \_\\ 0 & 0 & 0 & \_ \\ \end{pmatrix} A=L∗U=⎝⎜⎜⎛24−461312−1−251231183⎠⎟⎟⎞=⎝⎜⎜⎛12−23013−1001_0001⎠⎟⎟⎞∗⎝⎜⎜⎛20001100−10_035__⎠⎟⎟⎞
L矩阵的第三行元素与U矩阵的每一列元素相乘得到A矩阵的第三行元素
A = L ∗ U = ( 2 1 − 1 3 4 3 − 2 11 − 4 1 5 8 6 2 12 3 ) = ( 1 0 0 0 2 1 0 0 − 2 3 1 0 3 − 1 _ 1 ) ∗ ( 2 1 − 1 3 0 1 0 5 0 0 3 − 1 0 0 0 _ ) A=L*U=\begin{pmatrix} 2 & 1 & -1 & 3 \\ 4 & 3 & -2 & 11 \\ -4 & 1 & 5 & 8 \\ 6 & 2 & 12 & 3 \\ \end{pmatrix} =\begin{pmatrix} 1 & 0 & 0 & 0 \\ 2 & 1 & 0& 0 \\ -2 & 3 & 1 & 0 \\ 3 & -1 & \_ & 1 \\ \end{pmatrix}* \begin{pmatrix} 2 & 1 & -1 & 3 \\ 0 & 1 & 0 & 5 \\ 0 & 0 & 3 & -1\\ 0 & 0 & 0 & \_ \\ \end{pmatrix} A=L∗U=⎝⎜⎜⎛24−461312−1−251231183⎠⎟⎟⎞=⎝⎜⎜⎛12−23013−1001_0001⎠⎟⎟⎞∗⎝⎜⎜⎛20001100−103035−1_⎠⎟⎟⎞
U矩阵的第三列元素与L矩阵每一行元素相乘等到A矩阵的第三列元素
A = L ∗ U = ( 2 1 − 1 3 4 3 − 2 11 − 4 1 5 8 6 2 12 3 ) = ( 1 0 0 0 2 1 0 0 − 2 3 1 0 3 − 1 5 1 ) ∗ ( 2 1 − 1 3 0 1 0 5 0 0 3 − 1 0 0 0 _ ) A=L*U=\begin{pmatrix} 2 & 1 & -1 & 3 \\ 4 & 3 & -2 & 11 \\ -4 & 1 & 5 & 8 \\ 6 & 2 & 12 & 3 \\ \end{pmatrix} =\begin{pmatrix} 1 & 0 & 0 & 0 \\ 2 & 1 & 0& 0 \\ -2 & 3 & 1 & 0 \\ 3 & -1 & 5 & 1 \\ \end{pmatrix}* \begin{pmatrix} 2 & 1 & -1 & 3 \\ 0 & 1 & 0 & 5 \\ 0 & 0 & 3 & -1\\ 0 & 0 & 0 & \_ \\ \end{pmatrix} A=L∗U=⎝⎜⎜⎛24−461312−1−251231183⎠⎟⎟⎞=⎝⎜⎜⎛12−23013−100150001⎠⎟⎟⎞∗⎝⎜⎜⎛20001100−103035−1_⎠⎟⎟⎞
L矩阵的第四行元素与U矩阵每一列元素相乘等到A矩阵的第四列元素
A = L ∗ U = ( 2 1 − 1 3 4 3 − 2 11 − 4 1 5 8 6 2 12 3 ) = ( 1 0 0 0 2 1 0 0 − 2 3 1 0 3 − 1 5 1 ) ∗ ( 2 1 − 1 3 0 1 0 5 0 0 3 − 1 0 0 0 4 ) A=L*U=\begin{pmatrix} 2 & 1 & -1 & 3 \\ 4 & 3 & -2 & 11 \\ -4 & 1 & 5 & 8 \\ 6 & 2 & 12 & 3 \\ \end{pmatrix} =\begin{pmatrix} 1 & 0 & 0 & 0 \\ 2 & 1 & 0& 0 \\ -2 & 3 & 1 & 0 \\ 3 & -1 & 5 & 1 \\ \end{pmatrix}* \begin{pmatrix} 2 & 1 & -1 & 3 \\ 0 & 1 & 0 & 5 \\ 0 & 0 & 3 & -1\\ 0 & 0 & 0 & 4 \\ \end{pmatrix} A=L∗U=⎝⎜⎜⎛24−461312−1−251231183⎠⎟⎟⎞=⎝⎜⎜⎛12−23013−100150001⎠⎟⎟⎞∗⎝⎜⎜⎛20001100−103035−14⎠⎟⎟⎞
以上是直接法的全过程
由LU变换到LDU
A = ( 1 0 0 0 2 1 0 0 − 2 3 1 0 3 − 1 5 1 ) ∗ ( 2 0 0 0 0 1 0 0 0 0 3 0 0 0 0 4 ) ∗ ( 1 1 / 2 − 1 / 2 3 / 2 0 1 0 5 0 0 1 − 1 / 3 0 0 0 1 ) A=\begin{pmatrix} 1 & 0 & 0 & 0 \\ 2 & 1 & 0& 0 \\ -2 & 3 & 1 & 0 \\ 3 & -1 & 5 & 1 \\ \end{pmatrix}* \begin{pmatrix} 2 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 3 & 0\\ 0 & 0 & 0 & 4 \\ \end{pmatrix}* \begin{pmatrix} 1 & {1/2} & -1/2 & 3/2 \\ 0 & 1 & 0 & 5 \\ 0 & 0 & 1 & -1/3\\ 0 & 0 & 0 & 1 \\ \end{pmatrix} A=⎝⎜⎜⎛12−23013−100150001⎠⎟⎟⎞∗⎝⎜⎜⎛2000010000300004⎠⎟⎟⎞∗⎝⎜⎜⎛10001/2100−1/20103/25−1/31⎠⎟⎟⎞
A = ( 2 1 − 1 3 4 3 − 2 11 − 4 1 5 8 6 2 12 3 ) A=\begin{pmatrix} 2 & 1 & -1 & 3 \\ 4 & 3 & -2 & 11 \\ -4 & 1 & 5 & 8 \\ 6 & 2 & 12 & 3 \\ \end{pmatrix} A=⎝⎜⎜⎛24−461312−1−251231183⎠⎟⎟⎞
用A矩阵第一列的后三个元素分别除以第一个元素,即4,-4,6都除以2得到新的矩阵
B = ( 2 1 − 1 3 2 3 − 2 11 − 2 1 5 8 3 2 12 3 ) B =\begin{pmatrix} 2 & 1 & -1 & 3 \\ 2 & 3 & -2 & 11 \\ -2 & 1 & 5 & 8 \\ 3 & 2 & 12 & 3 \\ \end{pmatrix} B=⎝⎜⎜⎛22−231312−1−251231183⎠⎟⎟⎞
第一行用行变化去把其他几行全部消为0,注意要用A矩阵的数去算,即在第一列为2,4,-4,6的基础上去做行变换
但是变得只是去掉第一行第一列剩下三阶矩阵中的元素,
即 变 得 是 ( 3 − 2 11 1 5 8 2 12 3 ) 中 的 元 素 即变得是 \begin{pmatrix} 3 & -2 & 11 \\ 1 & 5 & 8 \\ 2 & 12 & 3 \\ \end{pmatrix} 中的元素 即变得是⎝⎛312−25121183⎠⎞中的元素
行变换后的矩阵
C = ( 2 1 − 1 3 2 1 0 5 − 2 3 3 14 3 − 1 15 − 6 ) C=\begin{pmatrix} 2 & 1 & -1 & 3 \\ 2 & 1 & 0 & 5 \\ -2 & 3 & 3 & 14 \\ 3 & -1 & 15 & -6 \\ \end{pmatrix} C=⎝⎜⎜⎛22−23113−1−103153514−6⎠⎟⎟⎞
不看C矩阵第一行和第一列元素
即 在 ( 1 0 5 3 3 14 − 1 15 − 6 ) 的 基 础 上 重 复 1 , 2 步 骤 即在\begin{pmatrix} 1 & 0 & 5 \\ 3 & 3 & 14 \\ -1 & 15 & -6 \\ \end{pmatrix}的基础上重复1,2步骤 即在⎝⎛13−10315514−6⎠⎞的基础上重复1,2步骤
后面的都是一样的步骤这里直接写出矩阵,可以自己演算
( 2 1 − 1 3 2 1 0 5 − 2 3 3 − 1 3 − 1 15 − 1 ) = > ( 2 1 − 1 3 2 1 0 5 − 2 3 3 − 1 3 − 1 5 4 ) \begin{pmatrix} 2 & 1 & -1 & 3 \\ 2 & 1 & 0 & 5 \\ -2 & 3 & 3 & -1 \\ 3 & -1 & 15 & -1 \\ \end{pmatrix} => \begin{pmatrix} 2 & 1 & -1 & 3 \\ 2 & 1 & 0 & 5 \\ -2 & 3 & 3 & -1 \\ 3 & -1 & 5 & 4 \\ \end{pmatrix} ⎝⎜⎜⎛22−23113−1−1031535−1−1⎠⎟⎟⎞=>⎝⎜⎜⎛22−23113−1−103535−14⎠⎟⎟⎞
得到最终矩阵
( 2 1 − 1 3 2 1 0 5 − 2 3 3 − 1 3 − 1 5 4 ) \begin{pmatrix} 2 & 1 & -1 & 3 \\ 2 & 1 & 0 & 5 \\ -2 & 3 & 3 & -1 \\ 3 & -1 & 5 & 4 \\ \end{pmatrix} ⎝⎜⎜⎛22−23113−1−103535−14⎠⎟⎟⎞
上述矩阵主对角线以下的元素直接填充到L矩阵对应的位置,主对角线自己及以上的元素与U矩阵一一对应,可与直接法做对比。
参考视频:https://www.bilibili.com/video/BV1wE411P7Do