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

           

  • 相关阅读:
    文件的增删改查
    集合的使用
    字典的使用
    字符串常用操作
    简单购物车程序练习题
    列表
    数据运算数据类型与
    模块初识
    数据库时间设置
    ubuntu 修改时区
  • 原文地址:https://www.cnblogs.com/mashiqi/p/3803667.html
Copyright © 2011-2022 走看看