本文参考自:woodbury matrix identity
http://en.wikipedia.org/wiki/Woodbury_matrix_identity
The Woodbury matrix identity is:这里假设A是n×n可逆矩阵,U,C,V分别为n×k,k×k,k×n矩阵。
(
A
+
U
C
V
)
−
1
=
A
−
1
−
A
−
1
U
(
C
−
1
+
V
A
−
1
U
)
−
1
V
A
−
1
{(A + UCV)^{ - 1}} = {A^{ - 1}} - {A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V{A^{ - 1}}
(A+UCV)−1=A−1−A−1U(C−1+VA−1U)−1VA−1
假设
A
+
U
C
V
A + UCV
A+UCV可逆,C可逆,
C
−
1
+
V
A
−
1
U
{C^{ - 1}} + V{A^{ - 1}}U
C−1+VA−1U也是可逆的。
证明:
令
M
=
A
+
U
C
V
M=A + UCV
M=A+UCV
因为:A可逆,我们有:
M
A
−
1
=
I
+
U
C
V
A
−
1
M{A^{ - 1}} = I + UCV{A^{ - 1}}
MA−1=I+UCVA−1
两边右乘U,有:
M
A
−
1
U
=
U
+
U
C
V
A
−
1
U
M{A^{ - 1}}U = U + UCV{A^{ - 1}}U
MA−1U=U+UCVA−1U
提出UC项,有:
M
A
−
1
U
=
U
C
(
C
−
1
+
V
A
−
1
U
)
M{A^{ - 1}}U = UC({C^{ - 1}} + V{A^{ - 1}}U)
MA−1U=UC(C−1+VA−1U)
因为有
C
−
1
+
V
A
−
1
U
{C^{ - 1}} + V{A^{ - 1}}U
C−1+VA−1U可逆
M
A
−
1
U
(
C
−
1
+
V
A
−
1
U
)
−
1
=
U
C
M{A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}} = UC
MA−1U(C−1+VA−1U)−1=UC
我们该如何去处理这个UC项呢?因为U和C维度的关系,UC可能不是一个方阵,想到M是可逆的,这里我们把他配成M的形式,(乘以V,再加上A)有:
M
A
−
1
U
(
C
−
1
+
V
A
−
1
U
)
−
1
V
+
A
=
U
C
V
+
A
=
M
M{A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V + A = UCV + A = M
MA−1U(C−1+VA−1U)−1V+A=UCV+A=M
所以有:
M
=
M
A
−
1
U
(
C
−
1
+
V
A
−
1
U
)
−
1
V
+
A
M = M{A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V + A
M=MA−1U(C−1+VA−1U)−1V+A
两边同时乘以M逆再一刀左边,有:
I
−
A
−
1
U
(
C
−
1
+
V
A
−
1
U
)
−
1
V
=
M
−
1
A
I - {A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V = {M^{ - 1}}A
I−A−1U(C−1+VA−1U)−1V=M−1A
所以,
M
−
1
=
(
A
+
U
C
V
)
−
1
=
A
−
1
−
A
−
1
U
(
C
−
1
+
V
A
−
1
U
)
−
1
V
{M^{ - 1}} = {(A + UCV)^{ - 1}} = {A^{ - 1}} - {A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V
M−1=(A+UCV)−1=A−1−A−1U(C−1+VA−1U)−1V
可以看到,当U和V都是单位阵的时候,就会退化成下面的公式:
PS:这里的两个公式我没有找到推到过程,只能验证A*A^(-1)=I。在这里求教大家了
(
A
+
C
)
−
1
=
C
−
1
(
A
−
1
+
C
−
1
)
−
1
A
−
1
{(A + C)^{ - 1}} = {C^{ - 1}}{({A^{ - 1}} + {C^{ - 1}})^{ - 1}}{A^{ - 1}}
(A+C)−1=C−1(A−1+C−1)−1A−1
同时也等于:
(
A
+
C
)
−
1
=
A
−
1
−
A
−
1
(
C
−
1
+
A
−
1
)
−
1
A
−
1
{(A + C)^{ - 1}} = {A^{ - 1}} - {A^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}}
(A+C)−1=A−1−A−1(C−1+A−1)−1A−1
因为: ( A + C ) − 1 = A − 1 − A − 1 ( C − 1 + A − 1 ) − 1 A − 1 = A − 1 − ( − C − 1 + C − 1 + A − 1 ) ( C − 1 + A − 1 ) − 1 A − 1 = A − 1 + C − 1 ( C − 1 + A − 1 ) − 1 − ( C − 1 + A − 1 ) ( C − 1 + A − 1 ) − 1 A − 1 = A − 1 + C − 1 ( C − 1 + A − 1 ) − 1 A − 1 − A − 1 = C − 1 ( C − 1 + A − 1 ) − 1 A − 1 \begin{array}{l} {(A + C)^{ - 1}} = {A^{ - 1}} - {A^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}}\\ = {A^{ - 1}} - ( - {C^{ - 1}} + {C^{ - 1}} + {A^{ - 1}}){({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}}\\ = {A^{ - 1}} + {C^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}} - ({C^{ - 1}} + {A^{ - 1}}){({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}}\\ = {A^{ - 1}} + {C^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}} - {A^{ - 1}}\\ = {C^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}} \end{array} (A+C)−1=A−1−A−1(C−1+A−1)−1A−1=A−1−(−C−1+C−1+A−1)(C−1+A−1)−1A−1=A−1+C−1(C−1+A−1)−1−(C−1+A−1)(C−1+A−1)−1A−1=A−1+C−1(C−1+A−1)−1A−1−A−1=C−1(C−1+A−1)−1A−1
同样,当C是个单位阵的时候,会有下列公式: