对n元线性方程组 A x ⃗ = w ⃗ A\vec x=\vec w Ax=w,求解通常采用高斯主元素消去法— 将增广矩阵进行行阶梯化简成三角矩阵。
线性方程组 A x ⃗ = w ⃗ A\vec x=\vec w Ax=w | 增广矩阵 | 高斯主元素消去法 |
---|---|---|
{ a 11 x 1 + a 12 x 2 + a 13 x 3 = w 1 a 21 x 1 + a 22 x 2 + a 23 x 3 = w 2 a 31 x 1 + a 32 x 2 + a 33 x 3 = w 3 \begin{cases}a_{11}x1+a_{12}x2+a_{13}x3=w1\\a_{21}x1+a_{22}x2+a_{23}x3=w2\\a_{31}x1+a_{32}x2+a_{33}x3=w3\end{cases} ⎩⎪⎨⎪⎧a11x1+a12x2+a13x3=w1a21x1+a22x2+a23x3=w2a31x1+a32x2+a33x3=w3 | [ a 11 a 12 a 13 w 1 a 21 a 22 a 23 w 2 a 31 a 32 a 33 w 3 ] \left[ \begin{array}{cccc} a_{11} & a_{12} & a_{13}& w_1 \\ a_{21} & a_{22}& a_{23} & w_2 \\ a_{31}& a_{32}& a_{33} & w_3 \end{array} \right] ⎣⎡a11a21a31a12a22a32a13a23a33w1w2w3⎦⎤ | [ a 11 ′ a 12 ′ a 13 ′ z 1 ′ 0 a 22 ′ a 23 ′ z 2 ′ 0 0 a 33 ′ z 3 ′ ] \left[ \begin{array}{cccc} a_{11}'&a_{12}'&a_{13}' &z_1' \\0&a_{22}' &a_{23}'& z_2' \\ 0&0 &a_{33}' & z_3'\end{array} \right] ⎣⎡a11′00a12′a22′0a13′a23′a33′z1′z2′z3′⎦⎤ |
为建立矩阵论的三角分解理论,使用矩阵理论描述高斯主元素消去法的消元过程。
- 高斯消元过程:
对矩阵A采用按自然顺序选主元素法进行消元。
令 A ( 0 ) = A A^{(0)}=A A(0)=A,由于倍加初等变换不改变矩阵行列式的值,不断使用A的k阶顺序主子式 △ k △k △k,构造Frobenius矩阵 L k L_k Lk,最终得到矩阵 A ( n − 1 ) A^{(n-1)} A(n−1).
A ( n − 1 ) = [ a 11 ( 0 ) a 12 ( 0 ) . . . a 1 n ( 0 ) a 22 ( 1 ) . . . a 2 n ( 1 ) . . . a n n ( n − 1 ) ] A^{(n-1)}=\left[ \begin{array}{cccc} a_{11}^{(0)} & a_{12}^{(0)} &...& a_{1n}^{(0)} \\ & a_{22}^{(1)}& ... & a_{2n}^{(1)} \\ & &...\\ & & &a_{nn}^{(n-1)} \end{array} \right] A(n−1)=⎣⎢⎢⎢⎡a11(0)a12(0)a22(1).........a1n(0)a2n(1)ann(n−1)⎦⎥⎥⎥⎤
-高斯消元过程 | 几个要点 |
---|---|
1- 过程中的特点 | 不使用行/列变换. |
2- 能进行到底的条件 | 前n-1个顺序主子式均不为0. |
3- 结果的特点 | 矩阵A高斯消元过程得到的LU分解是存在且唯一。 其中,L是单位下三角阵,U是上三角阵。 |
由 A = A ( 0 ) = L 1 A ( 1 ) = . . . = L 1 L 2 . . . L n − 1 A ( n − 1 ) A=A^{(0)}=L_1A^{(1)}=...=L_1L_2...L_{n-1}A^{(n-1)} A=A(0)=L1A(1)=...=L1L2...Ln−1A(n−1)得到以下:
– - 矩阵的LU分解公式: |
---|
> A = L U A=LU A=LU. 其中,L为下三角矩阵,U为下三角矩阵。 L = L 1 L 2 . . . L n − 1 L=L_1L_2...L_{n-1} L=L1L2...Ln−1, U = A ( n − 1 ) = [ a 11 ( 0 ) a 12 ( 0 ) . . . a 1 n ( 0 ) a 22 ( 1 ) . . . a 2 n ( 1 ) . . . a n n ( n − 1 ) ] U=A^{(n-1)}=\left[\begin{array}{cccc} a_{11}^{(0)} & a_{12}^{(0)} &...& a_{1n}^{(0)} \\& a_{22}^{(1)}& ... & a_{2n}^{(1)} \\ & &...\\ & &&a_{nn}^{(n-1)} \end{array} \right] U=A(n−1)=⎣⎢⎢⎢⎡a11(0)a12(0)a22(1).........a1n(0)a2n(1)ann(n−1)⎦⎥⎥⎥⎤(能够将一个矩阵表示成一个上三角矩阵×下三角矩阵的形式,简化计算) |
– - 矩阵的LDU分解公式: |
> A = L D U A=LDU A=LDU. 其中,L为单位下三角矩阵,D为对角矩阵,U为单位下三角矩阵。 |
先要满足‘存在’,讨论 ‘是否是唯一’ 才有意义。
- | 存在性 | 唯一性 |
---|---|---|
奇异矩阵 | 1- 若满足前n-1个顺序主子式≠0 ⇒ \Rightarrow ⇒ 三角分解存在 [必要条件] 2- 若三角分解存在,不一定满足前n-1个顺序主子式≠0。 3-三角分解不存在 - ( 奇异 ⇒ d e t ( A ) = 0 \Rightarrow det(A)=0 ⇒det(A)=0 且 a n n = 0 a_{nn}=0 ann=0 ) |
1- 若三角分解存在且满足前n-1个顺序主子式≠0 ⇒ \Rightarrow ⇒ A=LU唯一;A=LDU唯一 2- 若三角分解存在但不满足前n-1个顺序主子式≠0 ⇒ \Rightarrow ⇒ A=LU/LDU不一定唯一 3- 无 |
非奇异矩阵 | 1- 若满足n-1个顺序主子式≠0 ⇔ \Leftrightarrow ⇔ 三角分解存在 [充要条件]。 [实际上,非奇异矩阵的 a n n a_{nn} ann≠0,n个主子式都≠0.] 2- 若三角分解不存在,即不满足n个顺序主子式≠0 ⇔ \Leftrightarrow ⇔ 存在P使PA的所有顺序主子式≠0。即A虽不存在,PA存在LU分解。 [条件更强(只满足前n-1个就行),但这是非奇异本身的性质] |
1- 三角分解存在(A的前(n-1)阶顺序主子式≠0) ⇔ \Leftrightarrow ⇔ A=LU唯一;A=LDU唯一 2- 三角分解不存在 ⇔ \Leftrightarrow ⇔ PA=LU唯一; PA=LDU唯一 |
前(n-1)阶顺序主子式 | 存在性与唯一性 |
---|---|
1- 均≠0 | ⇔ \Leftrightarrow ⇔ A=LU/LDU存在且唯一,Doolittle/Crout/Gholesky分解唯一 [充要条件] |
2- 存在0 | ⇒ \Rightarrow ⇒ A=LU/LUD不一定存在; 若存在,也不一定唯一,可能有多种分解方式。 |
- 对以上的理解: |
---|
这里所研究的方阵A的三角分解是从Gauss消元法得出的。根据该过程: 1. 只要求前n-1个顺序主子式不为零,总可以得到LU分解(这里L是单位下三角阵,U是上三角阵),且这个分解唯一。 而没要求最后第n阶顺序主子式为0(即det(A)可能为0,对应 a n n a_{nn} ann=0),所以A可能是奇异的。若奇异,且LU存在,U的最右下角应为0。这个时候Gauss消元三角分解已经结束,即只进行到A(n-1)。 |
2. 这里引出了三角分解的概念,同时引入一个问题— A=LU是否唯一。 显然因为 A = L D D − 1 U A=LDD^{-1}U A=LDD−1U, LU不唯一。 但自然顺序选主元下的Gauss消元法,执行过程要求前n-1个顺序主子式为零,即可导出唯一的LU分解(L是单位下三角阵,U是上三角阵),且这个分解可以写成LDU的形式(即把原U的对角元素取出作为对角阵D即可,相应的U变成单位上三角阵)。 |
3. 从而引出定理- 【前n-1个顺序主子式不为0 当且仅当(“等价于”) A可唯一的分解为LDU】。 但如果前n-1个顺序主子式中出现0,这样三角分解不存在或有多个。 |
4. 推论:对于非奇异的情形,存在一般的LU分解即等价于所有顺序主子式为0。 但要注意:要求顺序主子式为0的条件比较强。—> 对于非奇异的矩阵A,是存在P使PA的所有顺序主子式≠0。即A虽然没有,PA是有LU分解的。 |
5. 对于奇异矩阵A也可以类似考虑置换矩阵来考察它是否满足前n-1个顺序主子式是否都为0。这其实对应着按列选主元(只有行置换),还是总体选主元(行列都可置换)。这样原矩阵A不能三角分解,但其置换后的矩阵可能可以进行LU分解。 |
6. 一般的三角分解可能是不存在的,也可能是不唯一的。 但按自然Gauss消元法,自然限定一边是单位三角矩阵,且因满足定理4.1,所以可以唯一确定。 从这个意义上,上面探讨的三角分解条件可以推出一般的三角分解,反之则不然。 但是结合初等变换与三角分解,仍可对一个秩为r的矩阵,进行类似计算。 |
参见:[《线性代数及其应用》2.5]
对可逆方阵A,若A可以化成阶梯型矩阵U,且简化过程仅使用行倍加变换: |
---|
1. 存在单位下三角初等矩阵 E 1 , . . . , E p E_1,...,E_p E1,...,Ep使得: E p . . . E 1 ∗ A = U → A = ( E p . . . E 1 ) − 1 U E_p...E_1*A=U \to A=(E_p...E_1)^{-1}U Ep...E1∗A=U→A=(Ep...E1)−1U |
2. L = ( E p . . . E 1 ) − 1 L=(E_p...E_1)^{-1} L=(Ep...E1)−1,满足 ( E p . . . E 1 ) ∗ L = I (E_p...E_1)*L=I (Ep...E1)∗L=I |
- 即: A A A左乘行变换 → U \to U →U, L L L左乘行变换 → I \to I →I |
- | 三角分解的求解步骤 : |
---|---|
1. | A → U : A m ∗ n A \to U:A_{m*n} A→U:Am∗n 经过初等行变换(无行交换) → \to → U m ∗ n U_{m*n} Um∗n,其中U是行阶梯矩阵. |
2. | U → L : 对 U m ∗ n U \to L:对U_{m*n} U→L:对Um∗n 确定主元列,每列元素除以列主元 → L m ∗ m \to L_{m*m} →Lm∗m,其中L是单位下三角方阵. 若主元列r |
A是非奇异/可逆矩阵,且假定A的LDU分解存在。
(这样A=LDU,D对角元素一定是非零的。如果按自然Gauss消元法,D最后一个元素可为0.)
可逆矩阵A有特殊LU分解方法 | 分解公式 |
---|---|
1- Doolittle分解算法 | A = L ( D U ) = L U ′ A=L(DU)=LU' A=L(DU)=LU′ |
2- Crout分解算法 | A = ( L D ) U = L ′ U A=(LD)U=L'U A=(LD)U=L′U |
3- Gholesky分解算法 | A = G G T A=GG^T A=GGT |
A = L ( D U ) = L U ′ A=L(DU)=LU' A=L(DU)=LU′,其中 U ′ = D U U'=DU U′=DU。
L为对角元素为1的下三角矩阵,U’为上三角矩阵。
L ′ = [ 1 l 21 1 . . . l n 1 l n 2 . . . 1 ] , U = [ u 11 u 12 . . . l 1 n u 22 . . . u 2 n . . . u n n ] , L'=\left[\begin{array}{cccc} 1& & & \\ l_{21}&1& & \\ &...\\ l_{n1} &l_{n2}&...&1\end{array} \right],U=\left[\begin{array}{cccc} u_{11} &u_{12} & ...&l_{1n} \\ & u_{22} &... &u_{2n} \\ &&...\\ & & &u_{nn} \end{array} \right], L′=⎣⎢⎢⎡1l21ln11...ln2...1⎦⎥⎥⎤,U=⎣⎢⎢⎡u11u12u22.........l1nu2nunn⎦⎥⎥⎤,
为了节省存储空间,将L和U’中元素写入矩阵A中相应位置上,得到如下矩阵: → [ l 11 u 12 . . . l 1 n l 21 l 22 . . . u 2 n . . . l n 1 l n 2 . . . l n n ] \to \left[\begin{array}{cccc} l_{11}&u_{12} & ...&l_{1n} \\l_{21}& l_{22}&... &u_{2n} \\ &&...\\ l_{n1} &l_{n2}&...&l_{nn}\end{array} \right] →⎣⎢⎢⎡l11l21ln1u12l22ln2............l1nu2nlnn⎦⎥⎥⎤
A = ( L D ) U = L ′ U A=(LD)U=L'U A=(LD)U=L′U,其中 L ′ = L D L'=LD L′=LD。
L’为下三角矩阵,U为对角元素为1的上三角矩阵。
L ′ = [ l 11 l 21 l 22 . . . l n 1 l n 2 . . . l n n ] , U = [ 1 u 12 . . . l 1 n 1 . . . u 2 n . . . 1 ] , L'=\left[\begin{array}{cccc} l_{11}& & & \\ l_{21}& l_{22}& & \\ &...\\ l_{n1} &l_{n2}&...&l_{nn}\end{array} \right],U=\left[\begin{array}{cccc} 1&u_{12} & ...&l_{1n} \\ & 1&... &u_{2n} \\ &&...\\ & & &1\end{array} \right], L′=⎣⎢⎢⎡l11l21ln1l22...ln2...lnn⎦⎥⎥⎤,U=⎣⎢⎢⎡1u121.........l1nu2n1⎦⎥⎥⎤,
为节省存储空间,将L’和U中元素写入矩阵A中相应位置上,得到如下矩阵: → [ l 11 u 12 . . . l 1 n l 21 l 22 . . . u 2 n . . . l n 1 l n 2 . . . l n n ] \to \left[\begin{array}{cccc} l_{11}&u_{12} & ...&l_{1n} \\l_{21}& l_{22}&... &u_{2n} \\ &&...\\ l_{n1} &l_{n2}&...&l_{nn}\end{array} \right] →⎣⎢⎢⎡l11l21ln1u12l22ln2............l1nu2nlnn⎦⎥⎥⎤
如果A不但是非奇异/可逆矩阵,A的LDU分解存在,而且是实对称正定矩阵,则有:
A = A T 、 L D U = U T D L T → U = L T 、 L = U T A=A^T、LDU=U^TDL^T \to U=L^T、L=U^T A=AT、LDU=UTDLT→U=LT、L=UT,从而:
A = L D U = L ( D ′ ) 2 U = ( L D ′ ) ( L D ′ ) T = G G T A=LDU=L(D')^2U=(LD')(LD')^T=GG^T A=LDU=L(D′)2U=(LD′)(LD′)T=GGT,其中, G = L D ′ G=LD' G=LD′是下三角矩阵, D ′ = ( D ) D'=\sqrt{(D)} D′=(D).
如果矩阵 A ∈ R m ∗ n , B ∈ R n ∗ m A∈R^{m*n},B∈R^{n*m} A∈Rm∗n,B∈Rn∗m,则有:
d e t ( I m + A B T ) = d e t ( I n + B T A ) det(I_m+AB^T)=det(I_n+B^TA) det(Im+ABT)=det(In+BTA)