文章目录
- 广义逆矩阵
- 1 广义逆矩阵定义
- 2 减号逆
- 3 最小二乘广义逆
- 4 极小范数广义逆
- 5 Moore-Penrose(加号逆)
广义逆矩阵
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
方程的四个条件:- A G A = A AGA=A AGA=A;
- G A G = G GAG=G GAG=G;
- ( A G ) T = A G (AG)^T=AG (AG)T=AG;
- ( 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\} Ai∈A{i}
类似,满足第 i , j i,j i,j个条件: A i , j ∈ A { i , j } A^{i,j}\in A\{i,j\} Ai,j∈A{i,j}
根据以上,满足 1 1 1个, 2 2 2个, 3 3 3个, 4 4 4个
Penrose
方程的广义逆矩阵有 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,但应用最多的,也就是我们所学的以下四种:- 减号逆或者 g g g逆: A − = A ( 1 ) A^-=A^{(1)} A−=A(1)
- 最小二乘广义逆: A l − = A ( 1 , 3 ) A_l^-=A^{(1,3)} Al−=A(1,3)
- 极小范数广义逆: A m − = A ( 1 , 4 ) A_m^-=A^{(1,4)} Am−=A(1,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的减号逆,则:
- r a n k ( A ) ≤ r a n k ( A − ) rank(A)\leq rank(A^-) rank(A)≤rank(A−)
- 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)
- Q − 1 A − P − 1 ∈ B { 1 } Q^{-1}A^-P^{-1}\in B\{1\} Q−1A−P−1∈B{1}
- A T { 1 } = { G T ∣ G ∈ A { 1 } } A^T\{1\}=\{G^T|G\in A\{1\}\} AT{1}={GT∣G∈A{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} Y∈Rn×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×(ErG21G12G22)×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= 321321312
初等行变换化为行最简阶梯形矩阵,则 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= 00132−31−1−3132−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] 321100321010312001100010001 ⟶r1↔r3 123100123010213001001010100 ⟶r2−2r1r3−3r1 1001001000102−3−30010010101−2−3 ⟶(−31)×r2r1−2r2r3+3r2 10010010001001000100132−31−1−3132−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= 100001−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] 10010010001001000100132−31−1−3132−1 ⟶c2−c1 100100000−11001000100132−31−1−3132−1 ⟶c2⟵c3 100100010001000−11000132−31−1−3132−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×(ErG21G12G22)×P= 100001−110 × 10g3101g32g13g23g33 × 00132−31−1−3132−1 = g13−g33g33g2332−32g31+31g32−g13+g3332g31−31g32−g33−31−g23−31+31g31−32g32−g13+g33−31g31+32g32−g3332−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−= 000320−31−31032
-
利用 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,∀y∈Cn
这里不给出 A − A^- A−,感兴趣的读者可以自己去实现,具体的算法如下:
- 构造水平增广矩阵: 将原矩阵和单位矩阵水平拼接,形成增广矩阵。
- 初等行变换: 利用初等行变换将增广矩阵转化为最简行阶梯形式。
- 提取 P P P: 变换后的单位矩阵就是 P P P
- 构造垂直增广矩阵: 再将最简行阶梯形与单位矩阵垂直拼接,形成增广矩阵。
- 初等列变换,提取 G G G: 变换后的单位矩阵就是 G G G
3 最小二乘广义逆
-
定理1
设 A ∈ C m × n A\in C^{m\times n} A∈Cm×n, G ∈ A { 1 , 3 } G\in A\{1,3\} G∈A{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} A∈Cm×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}={G∈Cn×m∣AG=AAl−} -
定理 3 3 3
设 A A A是 m × n m\times n m×n矩阵,则 G ∈ A { 1 , 3 } G\in A\{1,3\} G∈A{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,∀y∈Cn
4 极小范数广义逆
-
定理1
设 A ∈ C m × n A\in C^{m\times n} A∈Cm×n, G ∈ A { 1 , 4 } G\in A\{1,4\} G∈A{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} A∈Cm×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}={G∈Cn×m∣GA=Am−A} -
定理 3 3 3
设 A A A是 m × n m\times n m×n矩阵,则 G ∈ A { 1 , 4 } G\in A\{1,4\} G∈A{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\} G∈A{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(加号逆)
-
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的极小最小二乘解。
-
重点
因为加号逆满足四个条件,所以它也是减号逆、最小二乘广义逆、极小范数广义逆。所以:
-
当 b ∈ R ( A ) b\in R(A) b∈R(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,∀y∈Rn -
当 b ∈ R ( A ) b\in R(A) b∈R(A)时, A x = b Ax=b Ax=b的极小范数解为:
x = A + b x=A^+b x=A+b
极小范数解是唯一的 -
对于 ∀ 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,∀y∈Rn -
对于 ∀ b \forall b ∀b, A x = b Ax=b Ax=b的具有极小范数的最小二乘解为:
x = A + b x=A^+b x=A+b
-
-
求解 A + A^+ A+
- 若 A A A为行满秩矩阵,则: A + = A H ( A A H ) − 1 A^+=A^H(AA^H)^{-1} A+=AH(AAH)−1
- 若 A A A为列满秩矩阵:则: A + = ( A H A ) − 1 A H A^+=(A^HA)^{-1}A^H A+=(AHA)−1AH
- 否则利用满秩分解求解: 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, Symboldef get_A_plus(A):A_plus = None# 判断A是行满秩还是列满秩,如果都不是则利用满秩分解求解A_plusif 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.Helse:print("A为非满秩矩阵")# 利用满秩分解求解A_plus,full_rank在另一篇矩阵论复习博客中F, G = full_rank(A)A_plus = G.H * ((G * G.H).inv()) * ((F.H * F).inv()) * F.Hreturn A_plus
-
利用 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 = 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,∀y∈Cn是相容方程组 A x = b Ax=b Ax=b的通解,或是不相容方程组 A x = b Ax=b Ax=b的全部最小二乘解
- 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, Symboldef 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)