zoukankan      html  css  js  c++  java
  • 矩阵求逆引理与矩阵分块求逆推导

    矩阵求逆引理要解决的问题是:已知一个矩阵的逆矩阵,当矩阵产生了变化时,能不能根据已知的逆矩阵,求产生变化后的矩阵的逆。这里说的变化量,指的是${m{B}}{m{D}}^{-1}{m{C}}$

    egin{equation*}
    egin{split}
    {left( {m{A}} + {m{B}}{m{D}}^{-1}{m{C}} ight)}^{-1} =
    {m{A}}^{-1} - {m{A}}^{-1}{m{B}}{left({m{D}} + {m{C}}{m{A}}^{-1}{m{B}} ight)}^{-1}{m{C}}{m{A}}^{-1} \
    {left( {m{A}} - {m{B}}{m{D}}^{-1}{m{C}} ight)}^{-1} =
    {m{A}}^{-1} + {m{A}}^{-1}{m{B}}{left({m{D}} - {m{C}}{m{A}}^{-1}{m{B}} ight)}^{-1}{m{C}}{m{A}}^{-1}
    end{split}
    end{equation*}
    ${m{A}}$是$m imes m$矩阵,${m{B}}$是$m imes n$矩阵,${m{C}}$是$n imes m$矩阵,${m{D}}$是$n imes n$矩阵,${m{E}}={m{D}} - {m{C}}{m{A}}^{-1}{m{B}}$ 是可逆矩阵
    egin{equation}
    {left[
    egin{array}{*{20}{c}}
    {m{A}} & {m{B}} \
    {m{C}} & {m{D}}
    end{array}
    ight]}_{(m+n)(m+n)}^{-1} =
    {left[
    egin{array}{*{20}{c}}
    {m{A}}^{-1} + {m{A}}^{-1}{m{B}}{m{E}}^{-1}{m{C}}{m{A}}^{-1} &
    -{m{A}}^{-1}{m{B}}{m{E}}^{-1} \
    -{m{E}}^{-1}{m{C}}{m{A}}^{-1} & {m{E}}^{-1}
    end{array}
    ight]}
    end{equation}
    ${m{A}}$是$m imes m$矩阵,${m{B}}$是$m imes n$矩阵,${m{C}}$是$n imes m$矩阵,${m{D}}$是$n imes n$矩阵,${m{F}}={m{A}} - {m{B}}{m{D}}^{-1}{m{C}}$ 是可逆矩阵
    egin{equation}
    {left[
    egin{array}{*{20}{c}}
    {m{A}} & {m{B}} \
    {m{C}} & {m{D}}
    end{array}
    ight]}_{(m+n)(m+n)}^{-1} =
    {left[
    egin{array}{*{20}{c}}
    {m{F}}^{-1} &
    -{m{F}}^{-1}{m{B}}{m{D}}^{-1} \
    -{m{D}}^{-1}{m{C}}{m{F}}^{-1} &
    {m{D}}^{-1} + {m{D}}^{-1}{m{C}}{m{F}}^{-1}{m{B}}{m{D}}^{-1}
    end{array}
    ight]}
    end{equation}
    当${m{E}}$、${m{F}}$均可逆时,上面两个式子中每个分块都相等
    egin{equation}
    {left[
    egin{array}{*{20}{c}}
    {m{A}}^{-1} + {m{A}}^{-1}{m{B}}{m{E}}^{-1}{m{C}}{m{A}}^{-1} &
    -{m{A}}^{-1}{m{B}}{m{E}}^{-1} \
    -{m{E}}^{-1}{m{C}}{m{A}}^{-1} & {m{E}}^{-1}
    end{array}
    ight]} =
    {left[
    egin{array}{*{20}{c}}
    {m{F}}^{-1} &
    -{m{F}}^{-1}{m{B}}{m{D}}^{-1} \
    -{m{D}}^{-1}{m{C}}{m{F}}^{-1} &
    {m{D}}^{-1} + {m{D}}^{-1}{m{C}}{m{F}}^{-1}{m{B}}{m{D}}^{-1}
    end{array}
    ight]}
    end{equation}
    ${m{A}}$是$m imes n$矩阵,${m{B}}$是$m imes m$矩阵,${m{C}}$是$n imes n$矩阵,${m{D}}$是$n imes m$矩阵,${m{G}}={m{C}}-{m{D}}{m{B}}^{-1}{m{A}}$ 是可逆矩阵
    egin{equation}
    {left[
    egin{array}{*{20}{c}}
    {m{A}} & {m{B}} \
    {m{C}} & {m{D}}
    end{array}
    ight]}_{(m+n)(m+n)}^{-1} =
    {left[
    egin{array}{*{20}{c}}
    -{m{G}}^{-1}{m{D}}{m{B}}^{-1} & {m{G}}^{-1} \
    {m{B}}^{-1} + {m{B}}^{-1}{m{A}}{m{G}}^{-1}{m{D}}{m{B}}^{-1} &
    -{m{B}}^{-1}{m{A}}{m{G}}^{-1}
    end{array}
    ight]}
    end{equation}
    ${m{A}}$是$m imes n$矩阵,${m{B}}$是$m imes m$矩阵,${m{C}}$是$n imes n$矩阵,${m{D}}$是$n imes m$矩阵,${m{H}}={m{B}}-{m{A}}{m{C}}^{-1}{m{D}}$ 是可逆矩阵
    egin{equation}
    {left[
    egin{array}{*{20}{c}}
    {m{A}} & {m{B}} \
    {m{C}} & {m{D}}
    end{array}
    ight]}_{(m+n)(m+n)}^{-1} =
    {left[
    egin{array}{*{20}{c}}
    -{m{C}}^{-1}{m{D}}{m{H}}^{-1} &
    {m{C}}^{-1} + {m{C}}^{-1}{m{D}}{m{H}}^{-1}{m{A}}{m{C}}^{-1} \
    {m{H}}^{-1} &
    -{m{H}}^{-1}{m{A}}{m{C}}^{-1}
    end{array}
    ight]}
    end{equation}
    当${m{G}}$、${m{H}}$均可逆时,上面的两个式子中的每个分块都相等
    egin{equation}
    {left[
    egin{array}{*{20}{c}}
    -{m{G}}^{-1}{m{D}}{m{B}}^{-1} & {m{G}}^{-1} \
    {m{B}}^{-1} + {m{B}}^{-1}{m{A}}{m{G}}^{-1}{m{D}}{m{B}}^{-1} &
    -{m{B}}^{-1}{m{A}}{m{G}}^{-1}
    end{array}
    ight]} =
    {left[
    egin{array}{*{20}{c}}
    -{m{C}}^{-1}{m{D}}{m{H}}^{-1} &
    {m{C}}^{-1} + {m{C}}^{-1}{m{D}}{m{H}}^{-1}{m{A}}{m{C}}^{-1} \
    {m{H}}^{-1} &
    -{m{H}}^{-1}{m{A}}{m{C}}^{-1}
    end{array}
    ight]}
    end{equation}
    当${m{E}}$、${m{F}}$、${m{G}}$、${m{H}}$均可逆时:
    egin{equation}
    {left[
    egin{array}{*{20}{c}}
    {m{A}} & {m{B}} \
    {m{C}} & {m{D}}
    end{array}
    ight]}_{(m+n)(m+n)}^{-1} =
    {left[
    egin{array}{*{20}{c}}
    {({m{A}}-{m{B}}{m{D}}^{-1}{m{C}})}^{-1} &
    {({m{C}}-{m{D}}{m{B}}^{-1}{m{A}})}^{-1} \
    {({m{B}}-{m{A}}{m{C}}^{-1}{m{D}})}^{-1} &
    {({m{D}}-{m{C}}{m{A}}^{-1}{m{B}})}^{-1}
    end{array}
    ight]}
    end{equation}
    证明:

    设矩阵${m{A}}$的变化量为${m{B}}{m{D}}^{-1}{m{C}}$,逆矩阵的变化量为${m{X}}$,则
    egin{equation}
    egin{split}
    {m{A}}^{-1} + {m{X}} = left({m{A}} + {m{B}}{m{D}}^{-1}{m{C}} ight)^{-1} \
    left({m{A}} + {m{B}}{m{D}}^{-1}{m{C}} ight)left({m{A}}^{-1} + {m{X}} ight) = {m{I}} \
    {m{I}} + {m{A}}{m{X}} + {m{B}}{m{D}}^{-1}{m{C}}{m{A}}^{-1} + {m{B}}{m{D}}^{-1}{m{C}}{m{X}} = {m{I}} \
    {m{A}}{m{X}} + {m{B}}{m{D}}^{-1}{m{C}}{m{A}}^{-1} + {m{B}}{m{D}}^{-1}{m{C}}{m{X}} = {m{0}} \
    left({m{A}} + {m{B}}{m{D}}^{-1}{m{C}} ight){m{X}} + {m{B}}{m{D}}^{-1}{m{C}}{m{A}}^{-1} = {m{0}}
    end{split}
    end{equation}

    所以逆矩阵的变化为:
    egin{equation}
    egin{split}
    {m{X}} &= -left({m{A}} + {m{B}}{m{D}}^{-1}{m{C}} ight)^{-1}{m{B}}{m{D}}^{-1}{m{C}}{m{A}}^{-1} \
    &= -left[{m{B}}left({m{B}}^{-1}{m{A}}+{m{D}}^{-1}{m{C}} ight) ight]^{-1} {m{B}}{m{D}}^{-1}{m{C}}{m{A}}^{-1} \
    &= -left[{m{B}}^{-1}{m{A}}+{m{D}}^{-1}{m{C}} ight]^{-1} {m{B}}{m{D}}^{-1}{m{C}}{m{A}}^{-1} \
    &= -left[{m{D}}^{-1}left({m{D}}{m{B}}^{-1}{m{A}}+{m{C}} ight) ight]^{-1}{m{D}}^{-1}{m{C}}{m{A}}^{-1} \
    &= -left[{m{D}}{m{B}}^{-1}{m{A}}+{m{C}} ight]^{-1}{m{C}}{m{A}}^{-1} \
    &= -left[left({m{D}}{m{B}}^{-1}+{m{C}}{m{A}}^{-1} ight){m{A}} ight]^{-1}{m{C}}{m{A}}^{-1} \
    &= -{m{A}}^{-1}left[{m{D}}{m{B}}^{-1}+{m{C}}{m{A}}^{-1} ight]^{-1}{m{C}}{m{A}}^{-1} \
    &= -{m{A}}^{-1}left[left({m{D}}+{m{C}}{m{A}}^{-1}{m{B}} ight){m{B}}^{-1} ight]^{-1}{m{C}}{m{A}}^{-1} \
    &= -{m{A}}^{-1}{m{B}}left[{m{D}}+{m{C}}{m{A}}^{-1}{m{B}} ight]^{-1}{m{C}}{m{A}}^{-1} \
    end{split}
    end{equation}

    根据矩阵求逆引理,可以计算常用的两种场景的逆矩阵,一种是RLS自适应滤波器中的输入向量相关矩阵求逆,具体推导过程请看RLS自适应滤波器中用矩阵求逆引理来避免求逆运算这里不再详细说明。另一种是相关矩阵的递归平均估计${m{R}}(n+1) = alpha {m{R}}(n) + eta {m{x}}(n){{m{x}}^H(n)}$。推导结果如下,大家可自行验证结果是否正确

    设:${m{A}} = alpha {m{R}}(n)$、${m{B}} = {m{x}}(n)$、${m{C}} = {m{x}}^H(n)$、${m{D}} = {eta}^{-1} = {(1-alpha)}^{-1}$,根据矩阵求逆引理,可得

    egin{align*}
    {{m{R}}(n+1)}^{-1} &= {alpha}^{-1}{{m{R}}(n)}^{-1} - frac{{alpha}^{-1}{{m{R}}(n)}^{-1}{m{x}}(n){m{x}}^{H}(n){{m{R}}(n)}^{-1}{alpha}^{-1}}
    {{eta}^{-1}+{m{x}}^{H}(n){alpha}^{-1}{{m{R}}(n)}^{-1}{m{x}}(n)} \
    &= {alpha}^{-1}{{m{R}}(n)}^{-1} - frac{{alpha}^{-1}{{m{R}}(n)}^{-1}{m{x}}(n){m{x}}^{H}(n){{m{R}}(n)}^{-1}}
    {{alpha}{eta}^{-1}+{m{x}}^{H}(n){{m{R}}(n)}^{-1}{m{x}}(n)}
    end{align*}

     其它例子就不再举了。总之,记好矩阵求逆的条件(开始时的加粗红字),以方便碰到符合的场景随时使用。

  • 相关阅读:
    [转帖]Javascript字符验证代码
    HTML标签转换函数
    [转帖]javascript做浮点数运算精确问题
    页面间参数传递
    js与asp.net的对话
    作死作死,完美主义,又“重写”了
    学习的最大动力是想要更加减少重复性工作
    三种可执行脚本的入门总结1
    [Python学习]遇到阻碍:可以在win平台下使用的unix shell环境
    .bat批处理脚本让cmd命令行提示符cd到工作目录
  • 原文地址:https://www.cnblogs.com/icoolmedia/p/matrix_inversion_lemma_2.html
Copyright © 2011-2022 走看看