4.5 置换矩阵
是不是任意可逆矩阵都可进行 L D U LDU LDU 分解呢?其实不能,消元操作需要除以对角元素 a i i a_{ii} aii ,当其为 0 0 0 时,则会失败。这时可在下面行中选择任一对角元素不为 0 0 0 的行,对调这两行,则可继续消元。例如
A = [ 0 0 2 1 2 3 0 1 2 ] A= \left[ \begin{matrix} 0 & 0 & 2\\ 1 & 2 & 3\\ 0 & 1 & 2 \end{matrix} \right] A=⎣⎡010021232⎦⎤
第一行第一个元素 a 11 a_{11} a11 为 0 0 0 ,无法消除第二行第一列的非零元素。矩阵后面两行中,第二行第一个元素 a 21 a_{21} a21 非零,则对调这两行,矩阵变换为
[ 1 2 3 0 0 2 0 1 2 ] \left[ \begin{matrix} 1 & 2 & 3\\ 0 & 0 & 2\\ 0 & 1 & 2 \end{matrix} \right] ⎣⎡100201322⎦⎤
此时第一列元素除对角线外已经都是 0 0 0 。同理消除第二列时,第二行对角线元素为 0 0 0 ,此时也需要对调后两行,矩阵变换为
[ 1 2 3 0 1 2 0 0 2 ] \left[ \begin{matrix} 1 & 2 & 3\\ 0 & 1 & 2 \\ 0 & 0 & 2 \end{matrix} \right] ⎣⎡100210322⎦⎤
成为上三角阵。
重要性质 对任意可逆矩阵,经过适当的行对调操作,可以分解为 L D U LDU LDU 。
类似消元操作,行对调操作也可以用矩阵乘法实现,该矩阵称为置换矩阵。
定义 置换矩阵 矩阵 P i j P_{ij} Pij 是单位矩阵 E E E 对调 i , j i,j i,j 两行所得。
矩阵 A A A 列向量左乘置换矩阵 P i j P_{ij} Pij 就是对调向量的 i , j i,j i,j 两个分量。
P i j a k = P i j ( a 1 k , ⋯ , a i k , ⋯ , a j k , ⋯ , a m k ) = ( a 1 k , ⋯ , a j k , ⋯ , a i k , ⋯ , a m k ) P_{ij}\mathbf{a}_k = P_{ij}(a_{1k},\cdots,a_{ik},\cdots,a_{jk},\cdots,a_{mk}) = (a_{1k},\cdots,a_{jk},\cdots,a_{ik},\cdots,a_{mk}) Pijak=Pij(a1k,⋯,aik,⋯,ajk,⋯,amk)=(a1k,⋯,ajk,⋯,aik,⋯,amk)
P i j A P_{ij}A PijA 就是对调矩阵 A A A 的 ( i , j ) (i,j) (i,j) 两行。
置换矩阵是正交矩阵, P T P = E P^TP=E PTP=E 。对矩阵进行多次行对调操作,就是多个置换矩阵连乘,记为 P P P , P P P 是单位矩阵 E E E 进行相应的多次行对调结果。
P = P 21 P 32 = [ 0 0 1 1 0 0 0 1 0 ] P=P_{21}P_{32}= \left[ \begin{matrix} 0 & 0 & 1\\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{matrix} \right] P=P21P32=⎣⎡010001100⎦⎤
重要性质 对任意可逆矩阵 A A A,经过适当的行对调操作 P P P,可以分解为 P A = L D U PA = LDU PA=LDU 。
我们还可以换个角度看待 P A = L D U PA = LDU PA=LDU ,由于各矩阵均可逆,得 ( L D U ) − 1 P A = E (LDU)^{-1}PA = E (LDU)−1PA=E ,令 P ′ = ( L D U ) − 1 P P’=(LDU)^{-1}P P′=(LDU)−1P 则 P ′ A = E P’A=E P′A=E ,这说明 P ′ P’ P′ 是逆矩阵 A − 1 A^{-1} A−1。通过高斯消元法可得到逆矩阵 A − 1 = U − 1 D − 1 L − 1 P A^{-1}=U^{-1}D^{-1}L^{-1}P A−1=U−1D−1L−1P ,对角阵 D D D 可逆,需对角元素均不为零,故矩阵 A A A 主元均不为零时,矩阵 A A A 可逆。
当矩阵 A A A 是对称矩阵时,假设没有行对调,则 S = L D U S = LDU S=LDU ,取转置, S T = ( L D U ) T = U T D T L T = U T D L T = S = L D U S^T = (LDU)^T=U^TD^TL^T=U^TDL^T=S=LDU ST=(LDU)T=UTDTLT=UTDLT=S=LDU ,所以有 L T = U L^T=U LT=U 成立。
重要性质 对称矩阵,假设没有行对调,则可以分解为 S = L D L T S = LDL^T S=LDLT 。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201392.html原文链接:https://javaforall.net
