zoukankan      html  css  js  c++  java
  • Woodbury matrix identity

    woodbury matrix identity

    2014/6/20

    【转载请注明出处】http://www.cnblogs.com/mashiqi

    http://en.wikipedia.org/wiki/Woodbury_matrix_identity

    Today I'm going to write down a proof of this Woodbury matrix identity, which is very important in some practical situation. For instance, the 40th equation of this paper" bayesian compressive sensing using Laplace priors" applied this identity. Now let me give the details of it.

    The Woodbury matrix identity is:

    ${(A + UCV)^{ - 1}} = {A^{ - 1}} - {A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V{A^{ - 1}}$

    where , , and are both assumed reversible.

    Proof:

    We denote with , namely .So:

    [M{A^{ - 1}} = I + UCV{A^{ - 1}}]       

    By multiply U with both side we get:

     

    [egin{array}{l}
    M{A^{ - 1}}U = U + UCV{A^{ - 1}}U = U(I + CV{A^{ - 1}}U)\
    {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} = UC({C^{ - 1}} + V{A^{ - 1}}U)
    end{array}]

    is reversible, we get:

            

    But how could we deal with this nasty term? We should notice that this term, which may not square, is coming from itself, which is right a square and reversible matrix. So, from formula , we make up a pleasant with is nasty :

     

    [egin{array}{l}
    M{A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V + A = UCV + A = M\
    Rightarrow M = M{A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V + A\
    Rightarrow I - {A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V = {M^{ - 1}}A
    end{array}]     

    And finally due to the reversibility of , we get the Woodbury matrix identity:

    [{M^{ - 1}} = {(A + VCU)^{ - 1}} = {A^{ - 1}} - {A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V{A^{ - 1}}]        

    Done.

    We should notice that if and are identity matrix, then Woodbury matrix identity can be reduced to this form:

    [{(A + C)^{ - 1}} = {A^{ - 1}} - {A^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}}]        

    ,which is equivalent to:

    [{(A + C)^{ - 1}} = {C^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}}]        

    This is because:

     

    [egin{array}{l}
    {(A + C)^{ - 1}} = {A^{ - 1}} - ( - {C^{ - 1}} + {C^{ - 1}} + {A^{ - 1}}){({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}}\
    {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} = {A^{ - 1}} + {C^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}} - ({C^{ - 1}} + {A^{ - 1}}){({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}}\
    {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} = {A^{ - 1}} + {C^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}} - {A^{ - 1}}\
    {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} = {C^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}}
    end{array}]

           

  • 相关阅读:
    Linux-shell-算术运算{expr、bc、dc、(( ))和[ ]}
    [SHELL]:let 命令详解
    23-tcp协议——TIME_WAIT状态和FIN_WAIT2状态
    ethtool -p eth0 物理口一个灯在不停的闪烁
    PXE
    UID, EUID, SUID, FSUID
    echo $[1 + 2] shell中 $[] 在bash中同$(()),用于算术计算
    Cocos2d入门--3-- 向量的应用
    Cocos2d入门--2-- 三角函数的应用
    Cocos2d入门--1-- 初涉相关属性或代码
  • 原文地址:https://www.cnblogs.com/mashiqi/p/3803667.html
Copyright © 2011-2022 走看看