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

Hermite 标准型实际上就是行最简行

1 广义逆矩阵定义

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

    Penrose 方程的四个条件:

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

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

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

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

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

2 减号逆

  • AA^-的性质

    AA m×nm\times n 矩阵,PP QQ 分别是 mm 阶和 nn 阶非奇异方阵,且 B=PAQB=PAQAA^-为 A 的减号逆,则:

    1. rank(A)rank(A)rank(A)\leq rank(A^-)
    2. AAAA^- AAA^-A 是幂等矩阵,并且 rank(AA)=rank(AA)=rank(A)rank(AA^-)=rank(A^-A)=rank(A)
    3. Q1AP1B1Q^{-1}A^-P^{-1}\in B{1}
    4. AT1=GTGA1A^T{1}={G^T|G\in A{1}}
  • Penrose 定理)

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

  • 求解 AA^-

    AA m×nm\times n 矩阵 img ,其中 P,Q,ErP,Q,E_r通过对 AA 进行如下操作得到,G12,G21,G22G_{12},G_{21},G_{22}均为常数矩阵,每一项均用 gijg_{ij}表示常数,且 Q,PQ,P 维度均为 m×nm\times nErE_r是一个 r×rr \times r 的对角矩阵,其中 rr 是矩阵 AA 的秩,G12G_{12}维度为 m×(nr)m \times (n-r)G21G_{21}维度为 (mr)×n(m-r) \times nG22G_{22}是一个 (mr)×(nr) (m-r) \times (n-r) 的矩阵。

    例子img

    初等行变换化为行最简阶梯形矩阵,则img

    img 再进行列变换化为 ErE_r得到img

    imgimg gij=0g_{ij}=0,则img

  • 利用 AA^-求解线性方程组 Ax=bAx=b

    Ax=bAx=b 有解的充分必要条件是 AAb=bAA^-b=b,这时特解 x0=Abx_0=A^-b,通解 x=Ab+(IAA)y,yCnx=A^-b+(I-A^-A)y,\forall y\in C^n

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

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

3 最小二乘广义逆

  • 定理 1

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

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

  • 定理 2

    ACm×nA\in C^{m\times n}AlA_l^- AA 的任一最小二乘广义逆,则 A1,3=GCn×mAG=AAl A{1,3}={G\in C^{n\times m}|AG=AA_l^-}

  • 定理 3

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

  • 利用 AlA_l^-求解线性方程组 Ax=bAx=b

    xx 是不相容线性方程组 Ax=bAx=b 的最小二乘解当且仅当 xx 是相容线性方程组 Ax=AAlb Ax=AA_l^-b 的解,并且 Ax=bAx=b 的最小二乘解的通式为 x=Alb+(IAA)y,yCnx=A_l^-b+(I-A^-A)y,\forall y\in C^n

4 极小范数广义逆

  • 定理 1

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

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

  • 定理 2

    ACm×nA\in C^{m\times n}AmA_m^- AA 的任一极小范数广义逆,则 A1,4=GCn×mGA=AmA A{1,4}={G\in C^{n\times m}|GA=A_m^-A}

  • 定理 33

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

  • 利用 AmA_m^-求解线性方程组 Ax=bAx=b

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

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

5 Moore-Penrose(加号逆)

image-20231127225725016

  • A+A^+ 的性质

    • A+A^+ 存在且唯一
    • A+=AmAAlA^+=A_m^-AA_l^-
  • 定理 1

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

  • 重点

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

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

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

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

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

  • 求解 A+A^+

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

    Python 代码如下:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    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^+ 求解线性方程组 Ax=bAx=b

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

    Python 代码如下:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    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)

相关内容

Buy me a coffee~
HeZephyr 支付宝支付宝
HeZephyr 微信微信
0%