《矩阵论》学习笔记(四):4.1 矩阵的三角分解

《矩阵论》学习笔记(四):4.1 矩阵的三角分解

矩阵的三角分解
1.一般方阵- 矩阵的LU/LDU分解
2.可逆方阵- Doolittle/Crout/Gholesky分解
3.分块方阵- 拟LU分解与拟LDU分解
  • 提出的目的:
    由于三角矩阵的计算,像行列式、逆矩阵、求解线性方程组等都是很方便的,所以考虑将普通矩阵分解成一些三角矩阵的乘积,从而简化运算。

文章目录

  • 《矩阵论》学习笔记(四):4.1 矩阵的三角分解
    • 一、Gauss消去法的矩阵形式
      • 1.1. 引入
      • 1.2. 矩阵论中的三角分解理论
    • 二、 矩阵的LU/LDU分解
      • 2.1. LU/LDU分解公式
      • 2.2. 三角分解的存在性与唯一性
      • 2.3. 三角分解的求解方法
    • 三、可逆矩阵的三角分解
      • 3.1. Doolittle/Crout分解的前提条件
      • 3.2. Doolittle分解
      • 3.3. Crout分解
      • 3.4. Gholesky分解
    • 四、分块矩阵的拟LU分解与拟LDU分解
    • 五、三角分解的应用

一、Gauss消去法的矩阵形式

1.1. 引入

对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] a1100a12a220a13a23a33z1z2z3

1.2. 矩阵论中的三角分解理论

为建立矩阵论的三角分解理论,使用矩阵理论描述高斯主元素消去法的消元过程。

- 高斯消元过程:

对矩阵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(n1).
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(n1)=a11(0)a12(0)a22(1).........a1n(0)a2n(1)ann(n1)

-高斯消元过程 几个要点
1- 过程中的特点 不使用行/列变换.
2- 能进行到底的条件 前n-1个顺序主子式均不为0.
3- 结果的特点 矩阵A高斯消元过程得到的LU分解是存在且唯一。
其中,L是单位下三角阵,U是上三角阵。

二、 矩阵的LU/LDU分解

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...Ln1A(n1)得到以下:

2.1. LU/LDU分解公式

– - 矩阵的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...Ln1 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(n1)=a11(0)a12(0)a22(1).........a1n(0)a2n(1)ann(n1)(能够将一个矩阵表示成一个上三角矩阵×下三角矩阵的形式,简化计算)
– - 矩阵的LDU分解公式:
> A = L D U A=LDU A=LDU.
其中,L为单位下三角矩阵,D为对角矩阵,U为单位下三角矩阵。

2.2. 三角分解的存在性与唯一性

先要满足‘存在’,讨论 ‘是否是唯一’ 才有意义。

- 存在性 唯一性
奇异矩阵 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)阶顺序主子式与唯一性
前(n-1)阶顺序主子式 存在性与唯一性
1- 均≠0 ⇔ \Leftrightarrow A=LU/LDU存在且唯一,Doolittle/Crout/Gholesky分解唯一 [充要条件]
2- 存在0 ⇒ \Rightarrow A=LU/LUD不一定存在;
若存在,也不一定唯一,可能有多种分解方式。《矩阵论》学习笔记(四):4.1 矩阵的三角分解_第1张图片
- 对以上的理解:
这里所研究的方阵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=LDD1U, 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.3. 三角分解的求解方法

参见:[《线性代数及其应用》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...E1A=UA=(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} AUAmn 经过初等行变换(无行交换) → \to U m ∗ n U_{m*n} Umn,其中U是行阶梯矩阵.
2. U → L : 对 U m ∗ n U \to L:对U_{m*n} ULUmn 确定主元列,每列元素除以列主元 → L m ∗ m \to L_{m*m} Lmm,其中L是单位下三角方阵.
若主元列r I m I_m Im补齐L的后(m-r)列.

三、可逆矩阵的三角分解

3.1. Doolittle/Crout分解的前提条件

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=LU
3- Gholesky分解算法 A = G G T A=GG^T A=GGT

3.2. Doolittle分解

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...1U=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

3.3. Crout分解

A = ( L D ) U = L ′ U A=(LD)U=L'U A=(LD)U=LU,其中 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...lnnU=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

  • Crout分解算法步骤:
    L’的列 与 U的行 交替计算 (见课本p135)。

3.4. Gholesky分解

如果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=ATLDU=UTDLTU=LTL=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) .

四、分块矩阵的拟LU分解与拟LDU分解

  • 提出的目的:
    对于高阶方阵,如果能将其分解成拟三角矩阵和拟对角矩阵,将会极大的减少计算量。
    对矩阵 A ∈ R n ∗ n A∈R^{n*n} ARnn,将A裂分成:
    A = [ A 11 A 12 A 21 A 22 ] A= \left[\begin{array}{cccc}A_{11}&A_{12} \\A_{21}& A_{22}\end{array} \right] A=[A11A21A12A22]
  1. 如果 A 11 A_{11} A11是可逆的,可构造下三角阵,使得A能拟LU分解与拟LDU分解。
    → d e t ( A ) = d e t ( A 11 ) d e t ( A 22 − A 21 A 11 − 1 A 12 ) ≠ 0 \to det(A)=det(A_{11})det(A_{22}-A_{21}A_{11}^{-1}A_{12}) ≠0 det(A)=det(A11)det(A22A21A111A12)=0
  2. 如果 A 22 A_{22} A22是可逆的,可构造下三角阵,使得A能拟LU分解与拟LDU分解。
    → d e t ( A ) = d e t ( A 22 ) d e t ( A 11 − A 12 A 22 − 1 A 21 ) ≠ 0 \to det(A)=det(A_{22})det(A_{11}-A_{12}A_{22}^{-1}A_{21}) ≠0 det(A)=det(A22)det(A11A12A221A21)=0
  • 推出结论:

如果矩阵 A ∈ R m ∗ n , B ∈ R n ∗ m A∈R^{m*n},B∈R^{n*m} ARmnBRnm,则有:
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)

五、三角分解的应用

你可能感兴趣的:(数学)