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}]

           

  • 相关阅读:
    Java入门3.2---线程池
    Java入门3.1---多线程
    打开ppt报"powerpoint无法加载mathtype加载项"错误
    LATEX排版总结
    casbin 权限系统
    Go netpoll I/O 多路复用构建原生网络模型之源码深度解析
    使用winsw包装服务将nginx包装为Windows服务
    Node.js 的模块系统
    一文读懂 babel7 的配置文件加载逻辑
    vue-cli是什么?和 webpack是什么关系?
  • 原文地址:https://www.cnblogs.com/mashiqi/p/3803667.html
Copyright © 2011-2022 走看看