假定 m × n m\times n m×n矩阵 A A A的秩为 r r r,其中, r ≤ m i n ( m , n ) r≤min(m,n) r≤min(m,n)。下面介绍求 M o o r e − P e n r o s e Moore-Penrose Moore−Penrose逆矩阵 A + A^+ A+的四种方法。
Penrose在定义广义逆矩阵
A
+
A^+
A+时,提出了计算
A
+
A^+
A+的两步法如下:
第一步:分别求解矩阵方程
A
A
H
X
H
=
A
AA^HX^H=A
AAHXH=A
A
H
A
Y
=
A
H
A^HAY=A^H
AHAY=AH
得到
X
H
X^H
XH和
Y
Y
Y。
第二步:计算广义逆矩阵
A
+
=
X
A
Y
A^+=XAY
A+=XAY。
若矩阵
A
A
A为
H
e
r
m
i
t
i
a
n
Hermitian
Hermitian矩阵,则Penrose的上述方法可以简化,因为以上两个矩阵方程等价为一个矩阵方程
A
2
X
H
=
A
,
若
A
H
=
A
A^2X^H=A, 若A^H =A
A2XH=A,若AH=A
并且Moore-Penrose逆矩阵可以计算为
A
+
=
X
A
X
H
,
若
A
H
=
A
A^+=XAX^H, 若A^H=A
A+=XAXH,若AH=A
虽然
A
A
A一般不会是Hermitian矩阵,但是
A
H
A
A^HA
AHA和
A
A
H
AA^H
AAH分别是Hermitian矩阵。
总结以上讨论,可以得到计算Moore-Penrose逆矩阵的两种算法如下
算法1
步骤1 计算矩阵
B
=
A
A
H
B=AA^H
B=AAH。
步骤2 求解矩阵方程
B
2
X
H
=
B
B^2X^H=B
B2XH=B得到矩阵
X
H
X^H
XH。
步骤3 计算
B
B
B的Moore-Penrose逆矩阵
B
+
=
(
A
A
H
)
+
=
X
B
X
H
B^+=(AA^H)^+=XBX^H
B+=(AAH)+=XBXH
步骤4 计算矩阵
A
A
A的Moore-Penrose逆矩阵
A
+
=
A
H
(
A
A
H
)
+
=
A
H
B
+
A^+=A^H(AA^H)^+=A^HB^+
A+=AH(AAH)+=AHB+
算法2
步骤1 计算矩阵
B
=
A
H
A
B=A^HA
B=AHA。
步骤2 求解矩阵方程
B
2
x
H
=
B
B^2x^H=B
B2xH=B得到矩阵
X
H
X^H
XH。
步骤3 计算
B
B
B的Moore-Penrose逆矩阵
B
+
=
(
A
H
A
)
+
=
X
B
X
H
B^+=(A^HA)^+=XBX^H
B+=(AHA)+=XBXH。
步骤4 计算矩阵
A
A
A的Moor-Penrose逆矩阵
A
+
=
(
A
H
A
)
+
A
H
=
B
+
A
H
A^+=(A^HA)^+A^H=B^+A^H
A+=(AHA)+AH=B+AH
若矩阵 A m × n A_{m\times n} Am×n的列数大于行数,则矩阵乘积 A A H AA^H AAH的维数比 A H A A^HA AHA的维数小,故选择算法1可花费较少的计算量。反之,若 A A A的行数大于列数,则选择算法2。
举例
令矩阵
A
=
[
1
0
−
1
2
−
1
1
0
1
1
−
1
0
1
1
1
0
1
−
1
0
]
A=
由于其列数大于行数,故选择算法1。
(1)计算
3
×
3
3\times 3
3×3矩阵
A
A
H
AA^H
AAH,得
A
A
H
=
[
8
−
2
3
−
2
4
0
4
0
4
]
,
(
A
A
H
)
2
=
[
84
−
24
48
−
24
20
−
8
48
−
8
32
]
AA^H=
(2)求解
(
A
A
H
)
2
X
H
=
A
A
H
(AA^H)^2X^H=AA^H
(AAH)2XH=AAH,等价求解以下三个方程:
[
84
−
24
48
−
24
20
−
8
48
−
8
32
]
[
x
1
x
2
x
3
]
=
[
8
−
2
4
]
⇒
[
x
1
x
2
x
3
]
=
1
6
[
2
1
−
1
]
[
84
−
24
48
−
24
20
−
8
48
−
8
32
]
[
x
1
x
2
x
3
]
=
[
−
2
4
0
]
⇒
[
x
1
x
2
x
3
]
=
1
6
[
1
2
−
1
]
[
84
−
24
48
−
24
20
−
8
48
−
8
32
]
[
x
1
x
2
x
3
]
=
[
4
0
4
]
⇒
[
x
1
x
2
x
3
]
=
1
12
[
−
4
−
2
7
]
故
X
H
=
1
12
[
4
2
−
4
2
4
−
2
−
4
−
2
7
]
X^H= \frac{1}{12}
(3)计算
(
A
A
H
)
+
=
X
(
A
A
H
)
X
H
=
1
12
[
4
2
−
4
2
4
−
2
−
4
−
2
7
]
(AA^H)^+=X(AA^H)X^H= \frac{1}{12}
(4)矩阵A的Moore-Penrose逆矩阵由
A
+
=
A
H
(
A
A
H
)
+
=
1
12
[
1
0
1
0
1
1
−
1
1
0
2
−
1
1
−
1
0
−
1
1
1
0
]
[
4
2
−
4
2
4
−
2
−
4
−
2
7
]
=
1
12
[
0
0
3
−
2
2
5
−
2
2
2
2
−
2
1
0
0
−
3
6
6
−
6
]
A^+=A^H(AA^H)^+=\frac{1}{12}
给出。容易验证,
A
+
A^+
A+满足Moore-Penrose逆矩阵的四个条件。
若
A
=
K
L
A=KL
A=KL是矩阵
A
m
×
n
A_{m\times n}
Am×n的满秩分解,则
G
=
L
H
(
K
H
A
L
H
)
−
1
K
H
G=L^H(K^HAL^H)^{-1}K^H
G=LH(KHALH)−1KH
G
G
G是
A
m
×
n
A_{m\times n}
Am×n的Moore-Penrose逆矩阵。
对矩阵 A m × n A_{m\times n} Am×n的前 k k k列进行分块 A k = [ A k − 1 , a k ] A_k=[A_{k-1},a_k] Ak=[Ak−1,ak],其中, a k a_k ak是矩阵 A A A的第 k k k列。于是,分块矩阵 A k + A_k^+ Ak+的Moore-Penrose逆矩阵 A A A可以由 A A A递推计算。当递推到 k = n k=n k=n时,即获得矩阵 A A A的Moore-Penrose逆矩阵 A + A^+ A+。
算法3 (求Moore-Penrose逆矩阵的列递推算法)
初始值
A
1
+
=
a
1
+
=
(
a
1
H
a
1
)
−
1
a
1
H
A_1^+=a_1^+=(a_1^Ha_1)^{-1}a_1^H
A1+=a1+=(a1Ha1)−1a1H。
递推
令
k
=
2
,
3
,
.
.
.
,
n
k=2,3,...,n
k=2,3,...,n,进行以下计算:

上述列递推算法原则上适用于所有矩阵,但是当矩阵
A
A
A的行比列少的时候,为了减少递推次数,宜先使用列递推算法求出
A
H
A^H
AH的Moore-Penrose逆矩阵
(
A
H
)
+
=
A
H
+
(A^H)^+=A^{H+}
(AH)+=AH+,再利用KaTeX parse error: Double superscript at position 9: A^+=(A^H^̲+)^H之关系得到
A
+
A^+
A+。
举例
A
=
[
1
0
−
1
−
1
1
−
1
0
−
1
2
1
1
1
]
A=
的Moore-Penrose逆矩阵。
解
(1)令
A
2
=
[
A
1
,
a
2
]
A_2=[A_1,a_2]
A2=[A1,a2],其中
A
1
=
a
1
=
[
1
−
1
0
1
]
,
a
2
=
[
0
1
−
1
1
]
A_1=a_1=
则有
A
1
+
=
a
1
+
=
(
a
1
T
a
1
)
−
1
a
1
T
=
1
3
[
1
,
−
1
,
0
,
1
]
A_1^+ =a_1^+ =(a_1^Ta_1)^{-1}a_1^T =\frac{1}{3}[1,-1,0, 1]
A1+=a1+=(a1Ta1)−1a1T=31[1,−1,0,1]
(2)
d
2
=
A
1
+
a
2
=
0.
d_2=A_1^+a_2=0.
d2=A1+a2=0.
(3) b 2 = ( a 2 − A 1 d 2 ) + = a 2 + = 1 3 0 , 1 , − 1 , 1 ] T b_2 = (a_2- A_1d_2)^+ =a_2^+=\frac{1}{3}0,1, -1, 1]^T b2=(a2−A1d2)+=a2+=310,1,−1,1]T。
(4)计算
A
2
+
=
[
A
1
+
−
d
2
b
2
b
2
]
=
1
3
[
1
−
1
0
1
0
1
−
1
1
]
A_2^+=
(5)
d
3
=
A
2
+
a
3
=
1
3
[
1
−
2
]
d_3=A_2^+a_3=\frac{1}{3}
(6)
b
3
=
(
a
3
−
A
2
d
3
)
+
=
1
4
[
−
1
,
0
,
1
,
1
]
T
b_3=(a_3-A_2d_3)^+ =\frac{1}{4}[-1,0,1,1]^T
b3=(a3−A2d3)+=41[−1,0,1,1]T。
(7)最后,得到
A
A
A的Moore-Penrose逆矩阵为
A
+
=
[
A
2
+
−
d
3
b
3
b
3
]
=
1
12
[
5
−
4
−
1
3
−
2
4
−
2
6
−
3
0
3
3
]
A^+=
已知矩阵
A
m
×
n
A_{m\times n}
Am×n的秩为
r
o
r_o
ro
算法4(求Moore-Penrose逆矩阵的迹方法)
步骤1 计算
B
=
A
A
T
B=AA^T
B=AAT。
步骤2 令
C
1
=
I
C_1=I
C1=I。
步骤3 计算
C
i
+
1
=
1
i
t
r
(
C
i
B
)
I
−
C
i
B
,
i
=
1
,
2
…
,
r
−
1
C_{i+1}=\frac{1}{i}tr(C_iB)I-C_iB,i=1,2…,r-1
Ci+1=i1tr(CiB)I−CiB,i=1,2…,r−1
步骤4 计算
A
+
=
r
t
r
C
i
B
C
i
A
T
A^+=\frac{r}{tr{C_iB}}C_iA^T
A+=trCiBrCiAT
注意,
C
i
+
1
B
=
0
C_{i+1}B=0
Ci+1B=0,
t
r
(
C
i
B
)
≠
0
tr(C_iB)≠0
tr(CiB)=0。
举例
解 易知
r
a
n
k
(
A
)
=
3
rank(A)=3
rank(A)=3。
(1)计算
B
=
A
T
A
[
3
0
1
0
3
−
2
1
−
1
7
]
B=A^TA
(2) 令
C
1
=
[
1
0
0
0
1
0
0
0
1
]
C_1=
(3)计算
C
2
=
t
r
(
C
1
B
)
I
−
C
1
B
[
3
0
1
0
3
−
2
1
−
1
7
]
C_2=tr(C_1B)I-C_1B
(4)计算
C
3
=
1
2
t
r
(
C
2
B
)
I
−
C
2
B
[
17
−
2
−
3
−
3
20
6
−
3
6
9
]
C_3=\frac{1}{2}tr(C_2B)I-C_2B
(5)矩阵
A
A
A的Moore-Penrose逆矩阵
A
+
=
3
C
3
A
T
t
r
(
C
3
B
)
=
1
48
[
20
−
16
−
4
12
−
8
16
−
8
24
−
12
0
12
12
]
=
1
12
[
5
−
4
−
1
3
−
2
4
−
2
6
−
3
0
3
3
]
A^+=\frac{3C_3A^T}{tr(C_3B)}=\frac{1}{48}