【矩阵论】Chapter 9—广义逆矩阵知识点总结复习

2024-01-09 22:33:17

广义逆矩阵

1 广义逆矩阵定义

  • 广义逆矩阵 G G G的定义:对任意 m × n m\times n m×n矩阵的 A A A,如果存在某个 n × m n\times m n×m的矩阵 G G G,满足Penrose方程的一部分或全部,则称 G G G A A A的广义逆矩阵

    Penrose方程的四个条件:

    1. A G A = A AGA=A AGA=A;
    2. G A G = G GAG=G GAG=G;
    3. ( A G ) T = A G (AG)^T=AG (AG)T=AG;
    4. ( G A ) T = G A (GA)^T=GA (GA)T=GA

    满足第 i i i个条件,则把 G G G记为 A ( i ) A^{(i)} A(i),这类矩阵的全体记为 A { i } A\{i\} A{i},所以 A i ∈ A { i } A^{i}\in A\{i\} AiA{i}

    类似,满足第 i , j i,j i,j个条件: A i , j ∈ A { i , j } A^{i,j}\in A\{i,j\} Ai,jA{i,j}

    根据以上,满足 1 1 1个, 2 2 2个, 3 3 3个, 4 4 4Penrose方程的广义逆矩阵有 C 4 1 + C 4 2 + C 4 3 + C 4 4 = 4 + 6 + 4 + 1 = 15 C_4^1+C_4^2+C_4^3+C_4^4=4+6+4+1=15 C41?+C42?+C43?+C44?=4+6+4+1=15,但应用最多的,也就是我们所学的以下四种:

    1. 减号逆或者 g g g逆: A ? = A ( 1 ) A^-=A^{(1)} A?=A(1)
    2. 最小二乘广义逆: A l ? = A ( 1 , 3 ) A_l^-=A^{(1,3)} Al??=A(1,3)
    3. 极小范数广义逆: A m ? = A ( 1 , 4 ) A_m^-=A^{(1,4)} Am??=A(1,4)
    4. 加号逆或Moore-Penrose广义逆: A + = A ( 1 , 2 , 3 , 4 ) A^+=A^{(1,2,3,4)} A+=A(1,2,3,4)

2 减号逆

  • A ? A^- A?的性质

    A A A m × n m\times n m×n矩阵, P P P Q Q Q分别是 m m m阶和 n n n阶非奇异方阵,且 B = P A Q B=PAQ B=PAQ A ? A^- A?为A的减号逆,则:

    1. r a n k ( A ) ≤ r a n k ( A ? ) rank(A)\leq rank(A^-) rank(A)rank(A?)
    2. A A ? AA^- AA? A ? A A^-A A?A是幂等矩阵,并且 r a n k ( A A ? ) = r a n k ( A ? A ) = r a n k ( A ) rank(AA^-)=rank(A^-A)=rank(A) rank(AA?)=rank(A?A)=rank(A)
    3. Q ? 1 A ? P ? 1 ∈ B { 1 } Q^{-1}A^-P^{-1}\in B\{1\} Q?1A?P?1B{1}
    4. A T { 1 } = { G T ∣ G ∈ A { 1 } } A^T\{1\}=\{G^T|G\in A\{1\}\} AT{1}={GTGA{1}}
  • Penrose定理)

    A , B , C A,B,C A,B,C分别为 m × n , p × q , m × q m\times n,p\times q,m\times q m×n,p×q,m×q矩阵,则矩阵方程:
    A X B = C AXB=C AXB=C
    有解的充分必要条件是:
    A A ? C B ? B = C AA^-CB^-B=C AA?CB?B=C
    并且在有解的情况下,其通解为:
    X = A ? C B ? + Y ? A ? A Y B B ? X=A^-CB^-+Y-A^-AYBB^- X=A?CB?+Y?A?AYBB?
    其中 Y ∈ R n × p Y\in R^{n\times p} YRn×p是任意的矩阵。

  • 求解 A ? A^- A?

    A A A m × n m\times n m×n矩阵
    A ? = Q × ( E r G 12 G 21 G 22 ) × P A^-=Q\times \begin{pmatrix} E_r & G_{12} \\ G_{21} & G_{22}\\ \end{pmatrix} \times P A?=Q×(Er?G21??G12?G22??)×P
    其中 P , Q , E r P,Q,E_r P,Q,Er?通过对 A A A进行如下操作得到, G 12 , G 21 , G 22 G_{12},G_{21},G_{22} G12?,G21?,G22?均为常数矩阵,每一项均用 g i j g_{ij} gij?表示常数,且 Q , P Q,P Q,P维度均为 m × n m\times n m×n E r E_r Er?是一个 r × r r \times r r×r 的对角矩阵,其中 r r r是矩阵 A A A的秩, G 12 G_{12} G12?维度为 m × ( n ? r ) m \times (n-r) m×(n?r) G 21 G_{21} G21?维度为 ( m ? r ) × n (m-r) \times n (m?r)×n G 22 G_{22} G22?是一个$ (m-r) \times (n-r)$的矩阵。

    例子 A = [ 3 3 3 2 2 1 1 1 2 ] A=\begin{bmatrix} 3 & 3 & 3 \\ 2 & 2 & 1 \\ 1 & 1 & 2 \end{bmatrix} A= ?321?321?312? ??

    初等行变换化为行最简阶梯形矩阵,则 P = [ 0 2 3 ? 1 3 0 ? 1 3 2 3 1 ? 1 ? 1 ] P=\begin{bmatrix} 0 & \frac{2}{3} & -\frac{1}{3} \\ 0 & -\frac{1}{3} & \frac{2}{3} \\ 1 & -1 & -1 \\\end{bmatrix} P= ?001?32??31??1??31?32??1? ?
    [ 3 3 3 1 0 0 2 2 1 0 1 0 1 1 2 0 0 1 1 0 0 0 1 0 0 0 1 ] ? r 1 ? r 3 [ 1 1 2 0 0 1 2 2 1 0 1 0 3 3 3 1 0 0 1 0 0 0 1 0 0 0 1 ] ? r 2 ? 2 r 1 r 3 ? 3 r 1 [ 1 1 2 0 0 1 0 0 ? 3 0 1 ? 2 0 0 ? 3 1 0 ? 3 1 0 0 0 1 0 0 0 1 ] ? ( ? 1 3 ) × r 2 r 1 ? 2 r 2 r 3 + 3 r 2 [ 1 1 0 0 2 3 ? 1 3 0 0 1 0 ? 1 3 2 3 0 0 0 1 ? 1 ? 1 1 0 0 0 1 0 0 0 1 ] \left[\begin{array}{ccc|ccc} 3 & 3 & 3 & 1 & 0 & 0 \\ 2 & 2 & 1 & 0 & 1 & 0 \\ 1 & 1 & 2 & 0 & 0 & 1 \\ \hline 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array}\right]\stackrel{r_1\leftrightarrow r_3 }{\longrightarrow } \left[\begin{array}{ccc|ccc} 1 & 1 & 2 & 0 & 0 & 1 \\ 2 & 2 & 1 & 0 & 1 & 0 \\ 3 & 3 & 3 & 1 & 0 & 0 \\ \hline 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 & \\ \end{array}\right]\stackrel{\begin{array}{c} r_2 - 2r_1 \\ r_3 - 3r_1 \end{array}} {\longrightarrow }\left[\begin{array}{ccc|ccc} 1 & 1 & 2 & 0 & 0 & 1 \\ 0 & 0 & -3 & 0 & 1 & -2 \\ 0 & 0 & -3 & 1& 0 & -3 \\ \hline 1 & 0 & 0 & \\ 0 & 1 & 0 & \\ 0 & 0 & 1 & \\ \end{array}\right]\stackrel{\begin{array}{c} (-\frac{1}{3})\times r_2\\r_1 - 2r_2 \\ r_3 + 3r_2 \end{array}} {\longrightarrow }\left[\begin{array}{ccc|ccc} 1 & 1 & 0 & 0 & \frac{2}{3} & -\frac{1}{3} \\ 0 & 0 & 1 & 0 & -\frac{1}{3} & \frac{2}{3} \\ 0 & 0 & 0 & 1 & -1 & -1 \\ \hline 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array}\right] ?321100?321010?312001?100010001? ??r1??r3?? ?123100?123010?213001?001?010100? ??r2??2r1?r3??3r1??? ?100100?100010?2?3?3001?001?0101?2?3? ??(?31?)×r2?r1??2r2?r3?+3r2??? ?100100?100010?010001?00132??31??1?31?32??1? ?
    再进行列变换化为 E r E_r Er?得到 Q = [ 1 0 ? 1 0 0 1 0 1 0 ] Q=\begin{bmatrix}1 & 0 & -1 \\ 0 & 0 & 1\\ 0 & 1 & 0\end{bmatrix} Q= ?100?001??110? ?
    [ 1 1 0 0 2 3 ? 1 3 0 0 1 0 ? 1 3 2 3 0 0 0 1 ? 1 ? 1 1 0 0 0 1 0 0 0 1 ] ? c 2 ? c 1 [ 1 0 0 0 2 3 ? 1 3 0 0 1 0 ? 1 3 2 3 0 0 0 1 ? 1 ? 1 1 ? 1 0 0 1 0 0 0 1 ] ? c 2 ? c 3 [ 1 0 0 0 2 3 ? 1 3 0 1 0 0 ? 1 3 2 3 0 0 0 1 ? 1 ? 1 1 0 ? 1 0 0 1 0 1 0 ] \left[\begin{array}{ccc|ccc} 1 & 1 & 0 & 0 & \frac{2}{3} & -\frac{1}{3} \\ 0 & 0 & 1 & 0 & -\frac{1}{3} & \frac{2}{3} \\ 0 & 0 & 0 & 1 & -1 & -1 \\ \hline 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array}\right]\stackrel{\begin{array}{c} c2-c_1 \end{array}} {\longrightarrow }\left[\begin{array}{ccc|ccc} 1 & 0 & 0 & 0 & \frac{2}{3} & -\frac{1}{3} \\ 0 & 0 & 1 & 0 & -\frac{1}{3} & \frac{2}{3} \\ 0 & 0 & 0 & 1 & -1 & -1 \\ \hline 1 & -1 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array}\right]\stackrel{\begin{array}{c} c_2\longleftarrow c_3 \end{array}} {\longrightarrow }\left[\begin{array}{ccc|ccc} 1 & 0 & 0 & 0 & \frac{2}{3} & -\frac{1}{3} \\ 0 & 1 & 0 & 0 & -\frac{1}{3} & \frac{2}{3} \\ 0 & 0 & 0 & 1 & -1 & -1 \\ \hline 1 & 0 & -1 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \\ \end{array}\right] ?100100?100010?010001?00132??31??1?31?32??1? ??c2?c1??? ?100100?000?110?010001?00132??31??1?31?32??1? ??c2??c3??? ?100100?010001?000?110?00132??31??1?31?32??1? ?
    A ? = Q × ( E r G 12 G 21 G 22 ) × P = [ 1 0 ? 1 0 0 1 0 1 0 ] × [ 1 0 g 13 0 1 g 23 g 31 g 32 g 33 ] × [ 0 2 3 ? 1 3 0 ? 1 3 2 3 1 ? 1 ? 1 ] = [ g 13 ? g 33 2 3 ? 2 3 g 31 + 1 3 g 32 ? g 13 + g 33 ? 1 3 + 1 3 g 31 ? 2 3 g 32 ? g 13 + g 33 g 33 2 3 g 31 ? 1 3 g 32 ? g 33 ? 1 3 g 31 + 2 3 g 32 ? g 33 g 23 ? 1 3 ? g 23 2 3 ? g 23 ] A^-=Q\times \begin{pmatrix} E_r & G_{12} \\ G_{21} & G_{22}\\ \end{pmatrix} \times P=\begin{bmatrix}1 & 0 & -1 \\ 0 & 0 & 1\\ 0 & 1 & 0\end{bmatrix}\times\begin{bmatrix}1 & 0 & g_{13} \\ 0 & 1 & g_{23}\\ g_{31} & g_{32} & g_{33}\end{bmatrix}\times \begin{bmatrix} 0 & \frac{2}{3} & -\frac{1}{3} \\ 0 & -\frac{1}{3} & \frac{2}{3} \\ 1 & -1 & -1 \\\end{bmatrix}=\begin{bmatrix} g_{13}-g_{33} & \frac{2}{3}-\frac{2}{3}g_{31}+\frac{1}{3}g_{32}-g_{13}+g_{33} & -\frac{1}{3}+\frac{1}{3}g_{31}-\frac{2}{3}g_{32}-g_{13}+g_{33} \\ g_{33} & \frac{2}{3}g_{31}-\frac{1}{3}g_{32}-g_{33} & -\frac{1}{3}g_{31}+\frac{2}{3}g_{32}-g_{33} \\ g_{23} & -\frac{1}{3}-g_{23} & \frac{2}{3}-g_{23} \\\end{bmatrix} A?=Q×(Er?G21??G12?G22??)×P= ?100?001??110? ?× ?10g31??01g32??g13?g23?g33?? ?× ?001?32??31??1??31?32??1? ?= ?g13??g33?g33?g23??32??32?g31?+31?g32??g13?+g33?32?g31??31?g32??g33??31??g23???31?+31?g31??32?g32??g13?+g33??31?g31?+32?g32??g33?32??g23?? ?

    g i j = 0 g_{ij}=0 gij?=0,则 A ? = [ 0 2 3 ? 1 3 0 0 0 0 ? 1 3 2 3 ] A^-=\begin{bmatrix} 0 & \frac{2}{3} & -\frac{1}{3} \\ 0 & 0 & 0 \\ 0 & -\frac{1}{3} & \frac{2}{3} \\\end{bmatrix} A?= ?000?32?0?31???31?032?? ?

  • 利用 A ? A^- A?求解线性方程组 A x = b Ax=b Ax=b

    A x = b Ax=b Ax=b有解的充分必要条件是 A A ? b = b AA^-b=b AA?b=b,这时特解 x 0 = A ? b x_0=A^-b x0?=A?b,通解 x = A ? b + ( I ? A ? A ) y , ? y ∈ C n x=A^-b+(I-A^-A)y,\forall y\in C^n x=A?b+(I?A?A)y,?yCn

    这里不给出 A ? A^- A?,感兴趣的读者可以自己去实现,具体的算法如下:

    1. 构造水平增广矩阵: 将原矩阵和单位矩阵水平拼接,形成增广矩阵。
    2. 初等行变换: 利用初等行变换将增广矩阵转化为最简行阶梯形式。
    3. 提取 P P P 变换后的单位矩阵就是 P P P
    4. 构造垂直增广矩阵: 再将最简行阶梯形与单位矩阵垂直拼接,形成增广矩阵。
    5. 初等列变换,提取 G G G 变换后的单位矩阵就是 G G G

3 最小二乘广义逆

  • 定理1

    A ∈ C m × n A\in C^{m\times n} ACm×n G ∈ A { 1 , 3 } G\in A\{1,3\} GA{1,3}的充分必要条件是 G G G满足
    A H A G = A H A^HAG=A^H AHAG=AH

    这即为 A { 1 , 3 } A\{1,3\} A{1,3}(最小二乘广义逆)的通式

  • 定理2

    A ∈ C m × n A\in C^{m\times n} ACm×n A l ? A_l^- Al?? A A A的任一最小二乘广义逆,则
    A { 1 , 3 } = { G ∈ C n × m ∣ A G = A A l ? } A\{1,3\}=\{G\in C^{n\times m}|AG=AA_l^-\} A{1,3}={GCn×mAG=AAl??}

  • 定理 3 3 3

    A A A m × n m\times n m×n矩阵,则 G ∈ A { 1 , 3 } G\in A\{1,3\} GA{1,3}(即G为最小二乘广义逆)的充分必要条件为 x = G b x=Gb x=Gb不相容线性方程组 A x = b Ax=b Ax=b的最小二乘解。

  • 利用 A l ? A_l^- Al??求解线性方程组 A x = b Ax=b Ax=b

    x x x是不相容线性方程组 A x = b Ax=b Ax=b的最小二乘解当且仅当 x x x是相容线性方程组
    A x = A A l ? b Ax=AA_l^-b Ax=AAl??b
    的解,并且 A x = b Ax=b Ax=b的最小二乘解的通式为 x = A l ? b + ( I ? A ? A ) y , ? y ∈ C n x=A_l^-b+(I-A^-A)y,\forall y\in C^n x=Al??b+(I?A?A)y,?yCn

4 极小范数广义逆

  • 定理1

    A ∈ C m × n A\in C^{m\times n} ACm×n G ∈ A { 1 , 4 } G\in A\{1,4\} GA{1,4}的充分必要条件是 G G G满足
    G A A H = A H GAA^H=A^H GAAH=AH

    这即为 A { 1 , 4 } A\{1,4\} A{1,4}(极小范数广义逆)的通式

  • 定理2

    A ∈ C m × n A\in C^{m\times n} ACm×n A m ? A_m^- Am?? A A A的任一极小范数广义逆,则
    A { 1 , 4 } = { G ∈ C n × m ∣ G A = A m ? A } A\{1,4\}=\{G\in C^{n\times m}|GA=A_m^-A\} A{1,4}={GCn×mGA=Am??A}

  • 定理 3 3 3

    A A A m × n m\times n m×n矩阵,则 G ∈ A { 1 , 4 } G\in A\{1,4\} GA{1,4}(即G为极小范数广义逆)的充分必要条件为 x = G b x=Gb x=Gb相容线性方程组 A x = b Ax=b Ax=b的极小范数解。

  • 利用 A m ? A_m^- Am??求解线性方程组 A x = b Ax=b Ax=b

    A A A m × n m\times n m×n矩阵,则 G ∈ A { 1 , 4 } G\in A\{1,4\} GA{1,4}的充分必要条件为 x = G b x=Gb x=Gb是相容线性方程组 A x = b Ax=b Ax=b的极小范数解,即 x = A m ? b x=A_m^-b x=Am??b为相容线性方程组 A x = b Ax=b Ax=b的极小范数解

注意:极小范数解是唯一的,而最小二乘解不唯一

5 Moore-Penrose(加号逆)

image-20231127225725016

  • A + A^+ A+的性质

    • A + A^+ A+存在且唯一
    • A + = A m ? A A l ? A^+=A_m^-AA_l^- A+=Am??AAl??
  • 定理1

    A A A m × n m\times n m×n矩阵,则 G G G是加号逆 A + A^+ A+的充分必要条件为 x = G b x=Gb x=Gb是不相容线性方程组 A x = b Ax=b Ax=b的极小最小二乘解。

  • 重点

    因为加号逆满足四个条件,所以它也是减号逆、最小二乘广义逆、极小范数广义逆。所以:

    1. b ∈ R ( A ) b\in R(A) bR(A)时, A x = b Ax=b Ax=b的通解为:
      x = A + b + ( I ? A + A ) y , ? y ∈ R n x=A^+b+(I-A^+A)y,\forall y\in R^n x=A+b+(I?A+A)y,?yRn

    2. b ∈ R ( A ) b\in R(A) bR(A)时, A x = b Ax=b Ax=b的极小范数解为:
      x = A + b x=A^+b x=A+b
      极小范数解是唯一的

    3. 对于 ? b \forall b ?b A x = b Ax=b Ax=b的最小二乘解为:
      x = A + b + ( I ? A + A ) y , ? y ∈ R n x=A^+b+(I-A^+A)y,\forall y\in R^n x=A+b+(I?A+A)y,?yRn

    4. 对于 ? b \forall b ?b A x = b Ax=b Ax=b的具有极小范数的最小二乘解为:
      x = A + b x=A^+b x=A+b

  • 求解 A + A^+ A+

    1. A A A为行满秩矩阵,则: A + = A H ( A A H ) ? 1 A^+=A^H(AA^H)^{-1} A+=AH(AAH)?1
    2. A A A为列满秩矩阵:则: A + = ( A H A ) ? 1 A H A^+=(A^HA)^{-1}A^H A+=(AHA)?1AH
    3. 否则利用满秩分解求解: A + = G + F + = G H ( G G H ) ? 1 ( F H F ) ? 1 F H A^+=G^+F^+=G^H(GG^H)^{-1}(F^HF)^{-1}F^H A+=G+F+=GH(GGH)?1(FHF)?1FH

    Python代码如下:

    import numpy as np
    from sympy import Matrix, Symbol
    
    def get_A_plus(A):
        A_plus = None
        # 判断A是行满秩还是列满秩,如果都不是则利用满秩分解求解A_plus
        if A.rank() == A.rows:
            print("A为行满秩矩阵")
            A_plus = A.H * (A * A.H).inv()
        elif A.rank() == A.cols:
            print("A为列满秩矩阵")
            A_plus = (A.H * A).inv() * A.H
        else:
            print("A为非满秩矩阵")
            # 利用满秩分解求解A_plus,full_rank在另一篇矩阵论复习博客中
            F, G = full_rank(A)
            A_plus = G.H * ((G * G.H).inv()) * ((F.H * F).inv()) * F.H
        return A_plus
    
  • 利用 A + A^+ A+求解线性方程组 A x = b Ax=b Ax=b

    1. A x = b Ax=b Ax=b有解(相容)的充要条件是 A A + b = b AA^+b=b AA+b=b
    2. x = A + b + ( I ? A + A ) y , ? y ∈ C n x=A^+b+(I-A^+A)y,\forall y\in C^n x=A+b+(I?A+A)y,?yCn是相容方程组 A x = b Ax=b Ax=b的通解,或是不相容方程组 A x = b Ax=b Ax=b的全部最小二乘解
    3. x 0 = A + b x_0=A^+b x0?=A+b是相容方程组 A x = b Ax=b Ax=b的唯一极小范数解,或是不相容方程组 A x = b Ax=b Ax=b的唯一极小范数最小二乘解

    Python代码如下:

    import numpy as np
    from sympy import Matrix, Symbol
    
    def get_solution(A, b):
        A_plus = get_A_plus(A)
        # 单位矩阵
        I = Matrix(np.eye(A_plus.rows))
        print("I:", I)
        # 生成符号列表
        symbols_list = [Symbol(f'y{i+1}') for i in range(A_plus.rows)]
        # 生成符号矩阵
        symbols_matrix = Matrix(symbols_list)
        print("symbols_matrix:", symbols_matrix)
    
        if A * A_plus * b == b:
            print("Ax = b有解")
            print("通解为:")
            print(A_plus.rows)
            print(A_plus * b + (I - A_plus * A) * symbols_matrix)
            print("唯一极小范数解为:")
            print(A_plus * b)
        else:
            print("Ax = b无解")
            print("全部最小二乘解为:")
            print(A_plus.rows)
            print(A_plus * b + (I - A_plus * A) * symbols_matrix)
            print("唯一极小范数最小二乘解:")
            print(A_plus * b)
    get_solution(A, b)
    

文章来源:https://blog.csdn.net/hzf0701/article/details/135490429
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。