zoukankan      html  css  js  c++  java
  • 条件数:逆矩阵与线性方程组

    将学习到什么

    作为矩阵以及向量范数的一个应用,我们来考虑在计算矩阵以及计算线性方程组的解时界定误差限这个问题.


    逆矩阵

     
    如果求一个给定的非奇异矩阵 (A in M_n) 的逆矩阵的计算是在一台数字计算机上用浮点算数进行,就不可避免产生舍入误差以及截断误差,以及 (A) 本身测量取值的不确定性. 那么计算中的误差以及数据中的误差会怎样影响所计算的矩阵的逆的元素呢?
     
    (lVert cdot Vert) 是一个给它的矩阵范数,并假设 (A in M_n) 是非奇异的. 我们想要计算 (A) 的逆,不过改为处理 (B=A+Delta A),其中我们假设
    egin{align} label{e0}
    lVert A^{-1}Delta A Vert <1
    end{align}
    以确保 (B) 是非奇异的. 由于 (B=A(I+A^{-1}Delta A)) 以及 ( ho(A^{-1}Delta A)leqslant lVert A^{-1}Delta A Vert <1),假设条件 ef{e0} 就确保 (-1 otin sigma(A^{-1}Delta A)),从而 (B) 是非奇异的.
     
    我们目的是计算 (lVert A^{-1}-B^{-1} Vert =A^{-1}(Delta A)B^{-1}=A^{-1}(B-A)B^{-1}=A^{-1}-B^{-1}),所以
    egin{align} label{e1}
    lVert A^{-1}-B^{-1} Vert = lVert A^{-1}(Delta A)B^{-1} Vert leqslant lVert A^{-1}Delta A Vert lVert B^{-1} Vert
    end{align}
    由于 (B^{-1}=A^{-1}-A^{-1}(Delta A)B^{-1}),我们也有
    egin{align}
    lVert B^{-1} Vert leqslant lVert A^{-1} Vert + lVert A^{-1}(Delta A)B^{-1} Vert leqslant lVert A^{-1} Vert + lVert A^{-1}Delta A Vert lVert B^{-1} Vert
    end{align}
    移项,它等价于不等式
    egin{align} label{e2}
    lVert B^{-1} Vert = lVert (A+Delta A)^{-1} Vert leqslant frac{lVert A^{-1} Vert}{1-lVert A^{-1}Delta A Vert }
    end{align}
    将 ef{e1} 与 ef{e2} 组合起来就给出界
    egin{align}
    lVert A^{-1}-B^{-1} Vert leqslant frac{lVert A^{-1} Vert lVert A^{-1}Delta A Vert }{1-lVert A^{-1}Delta A Vert } leqslant frac{lVert A^{-1} Vert lVert A^{-1} Vert lVert Delta A Vert }{1-lVert A^{-1}Delta A Vert }
    end{align}
    从而计算逆矩阵时的相对误差的上界时
    egin{align}
    frac{lVert A^{-1}-B^{-1} Vert}{lVert A^{-1} Vert} leqslant frac{lVert A^{-1} Vert lVert A Vert}{1-lVert A^{-1}Delta A Vert } frac{lVert Delta A Vert}{lVert A Vert }
    end{align}

    egin{align}
    kappa(A) = egin{cases} lVert A^{-1} Vert lVert A Vert qquad & ext{如果}\,\, A \,\, ext{是非奇异的} \ infty & ext{如果}\,\, A \,\, ext{是奇异的} end{cases}
    end{align}
    称为矩阵逆关于矩阵范数 (lVert cdot Vert) 的条件数. 注意:对任何矩阵范数都有 (kappa (A)= lVert A^{-1} Vert lVert A Vert geqslant lVert A^{-1} A Vert = lVert I Vertgeqslant 1). 我们就证明了界
    egin{align} label{e4}
    frac{lVert A^{-1}-B^{-1} Vert}{lVert A^{-1} Vert } leqslant frac{kappa (A)}{1-lVert A^{-1}Delta A Vert } frac{lVert Delta A Vert}{lVert A Vert }
    end{align}
    如果我们将假设条件 ef{e0} 加强为
    egin{align} label{e5}
    lVert A^{-1} Vert lVert Delta A Vert <1
    end{align}
    并注意到
    egin{align}
    lVert A^{-1} Vert lVert Delta A Vert = lVert A^{-1} Vert lVert A Vert frac{lVert Delta A Vert }{lVert A Vert} = kappa(A) frac{lVert Delta A Vert }{lVert A Vert}
    end{align}
    那么就由 ef{e4} 得出
    egin{align} label{e6}
    frac{lVert A^{-1}-(A+Delta A)^{-1} Vert}{lVert A^{-1} Vert } leqslant frac{kappa (A)}{1-kappa(A) frac{lVert Delta A Vert }{lVert A Vert}} frac{lVert Delta A Vert}{lVert A Vert }
    end{align}
    它作为数据的相对误差以及 (A) 的条件数的函数,是关于 (A) 的逆的计算中出现的相对误差的一个上界. 这样一个界称为先验的界,这是因为它只与任何计算完成之前已知的数据有关.
     
    如果 (lVert A^{-1} Vert lVert Delta A Vert) 不仅小于 (1),而且还大大地小于 (1),则 ef{e6} 右边的阶为 (kappa (A) lVert Delta A Vert / lVert A Vert),故而我们有充分的理由相信:只要 (kappa(A)) 不大,那么矩阵逆的相对误差与数据的相对误差有同样的阶.
     
    我们称矩阵 (A)病态的或者贫态的,如果 (kappa(A)) 很大;如果 (kappa(A)) 很小,接近于 (1),我们就称 (A)良态的;如果 (kappa(A)=1),我们就称 (A)优态的. 当然,关于态质的所有这些表述都是相对于一个指定的矩阵范数 (lVert cdot Vert) 而言的.
     

    线性方程组

     
    类似的讨论可以用来对线性方程组的解的精确度给出先验的界. 假设我们想要求解线性方程组
    egin{align} label{e7}
    Ax=b, qquad A in M_n \,\, ext{是非奇异的且}\,\, b in mathbb{C}^n \,\, ext{是非零向量}
    end{align}
    但是由于计算误差或者数据中存在的不确定性,我们实际上是求解一个摄动方程组
    egin{align}
    (A+Delta A) ilde{x}=b+Delta b, qquad A,Delta A in M_n ,\,\, b ,Delta b in mathbb{C}^n ,\,\, ilde{x} = x+Delta x
    end{align}
    ( ilde{x})(x) 有多么接近,即 (Delta x) 能有多大?我们可以用矩阵范数以及相容的向量范数来得到解的相对误差的界,这个界表示成为数据中的相对误差以及 (A) 的条件数的函数.
     
    设给定 (M_n) 上一个矩阵范数 (lVert cdot Vert) 以及 (mathbb{C}^n) 上一个相容的向量范数 (lVert cdot Vert),并再次假设不等式 ef{e0} 满足. 由于 (Ax=b),方程组即为
    egin{align}
    (A+Delta A) ilde{x} &= (A+Delta A)(x+Delta x)=Ax+(Delta A)x+(A+Delta A)Delta x otag \
    &=b+(Delta A)x + (A+Delta A) Delta x = b+Delta b otag
    end{align}
    或者
    egin{align}
    (Delta A)x+(A+Delta A)Delta x=Delta b otag
    end{align}
    这样一来,就有 (Delta x=(A+Delta A)^{-1}(Delta b-(Delta A)x)) 以及
    egin{align}
    lVert Delta x Vert &= lVert (A+Delta A)^{-1}(Delta b-(Delta A)x) Vert otag \
    & leqslant lVert (A+Delta A)^{-1} Vert lVert (Delta b-(Delta A)x) Vert otag
    end{align}
    借助于 ef{e2} 以及相容性,我们就有
    egin{align}
    lVert Delta x Vert leqslant frac{lVert A^{-1} Vert}{1-lVert A^{-1}Delta A Vert } (lVert Delta b Vert + lVert Delta A Vert lVert x Vert ) otag
    end{align}
    从而
    egin{align}
    frac{lVert Delta x Vert}{lVert x Vert} leqslant frac{lVert A^{-1} Vert lVert A Vert}{1-lVert A^{-1}Delta A Vert } left(frac{lVert Delta b Vert}{lVert A Vert lVert x Vert} + frac{lVert Delta A Vert}{lVert A Vert} ight) otag
    end{align}
    利用 (kappa(A)) 的定义以及界 (lVert b Vert = lVert Ax Vert leqslant lVert A Vert lVert x Vert),我们就得到
    egin{align} label{e8}
    frac{lVert Delta x Vert}{lVert x Vert} leqslant frac{kappa(A)}{1-lVert A^{-1}Delta A Vert } left(frac{lVert Delta b Vert}{lVert b Vert} + frac{lVert Delta A Vert}{lVert A Vert} ight)
    end{align}
    如果我们再次做出更强的假设 ef{e6},我们就得到较弱的然而更加明晰的界
    egin{align} label{e9}
    frac{lVert Delta x Vert}{lVert x Vert} leqslant frac{kappa(A)}{1-kappa(A)frac{lVert ADelta A Vert}{lVert A Vert} } left(frac{lVert Delta b Vert}{lVert b Vert} + frac{lVert Delta A Vert}{lVert A Vert} ight)
    end{align}
    这个界与 ef{e6} 有同样的特征以及推论:如果线性方程组 ef{e7} 中的系数矩阵是良态的,那么关于解的相对误差与关于数据的相对误差有相同的阶.
     
    如果现成的有 ef{e7} 的一个计算出来的解,可以将它用于后验的界中. 再次设 (lVert cdot Vert) 是一个与向量范数 (lVert cdot Vert) 相容的矩阵范数,设 (x) 是 ef{e7} 的精确解,并考虑剩余向量 (r=b-A hat{x}). 由于 (A^{-1}r=A^{-1}(b-Ahat{x})=A^{-1}b-hat{x}=x-hat{x}),我们就有界 (lVert x-hat{x} Vert = lVert A^{-1}r Vert leqslant lVert A^{-1} Vert lVert r Vert) 以及 (lVert b Vert = lVert Ax Vert leqslant lVert A Vert lVert x Vert),也就是 (1 leqslant lVert A Vert lVert x Vert / lVert b Vert). 那么
    egin{align}
    lVert x-hat{x} Vert & leqslant lVert A^{-1} Vert lVert r Vert leqslant frac{ lVert A Vert lVert x Vert }{ lVert b Vert} otag \
    &=lVert A Vert lVert A^{-1} Vert frac{lVert r Vert}{lVert b Vert} lVert x Vert otag
    end{align}
    所以再算出的解与精确解之间的相对误差就有界限
    egin{align}
    frac{lVert x-hat{x} Vert}{lVert x Vert } leqslant kappa(A) frac{lVert r Vert}{lVert b Vert}
    end{align}
    其中用来计算条件数 (kappa(A)) 的矩阵范数与向量范数 (lVert cdot Vert) 是相容的. 对于一个良态的问题,解的相对误差与剩余向量的相对误差有同样的阶. 然而,对于一个病态的问题,产生很小剩余所计算出的解与它的精确解仍有可能相差甚远.
     
    矩阵范数误差界限的一个共同特征是它们的保守性:即使实际误差很小,上界也可能很大. 然而,如果一个有中等大小元素的中等大小的矩阵有很大的条件数,对么 (A^{-1}) 必定有一些大的元素,因而最好对下面的原因保持极大的关注.
     
    如果 (Ax=b),又如果我们令 (C=[c_{ij}]=A^{-1}),那么对恒等式 (x=Cb) 关于元素 (b_j) 微分就给出恒等式
    egin{align} label{e11}
    frac{partial x_i}{partial b_j}=c_{ij},quad i,j=1,cdots,n
    end{align}
    此外,如果我们把 (C=A^{-1}) 看成是 (A) 的函数,那么它的元素正好是 (A) 的元素的有理函数,从而也是可微的. 恒等式 (CA=I) 意味着对所有 (i,q=1,cdots,n) 都有 (Sigma_{p=1}^{n}c_{ip}a_{pq}=delta_{iq}),从而有
    egin{align}
    Sigma_{p=1}^nleft( frac{partial c_{ip}}{partial a_{jk}} + delta_{pq,jk}c_{ip} ight) = Sigma_{p=1}^n frac{partial c_{ip}}{partial a_{jk}}a_{pq}+delta_{qk}c_{ij} =0 otag
    end{align}
    这也就是
    egin{align}
    Sigma_{p=1}^n frac{partial c_{ip}}{partial a_{jk}}a_{pk}=-delta_{qk}c_{ij} ,quad i,j,k=1,cdots,n otag
    end{align}
    现在对恒等式 (x=Cb) 关于 (a_{jk}) 微分得到
    egin{align}
    frac{partial x_i}{partial a_{jk}} &= Sigma_{p=1}^n frac{partial c_{ip}}{partial a_{jk}} b_p = Sigma_{p=1}^n Sigma_{q=1}^n frac{partial c_{ip}}{partial a_{jk}}a_{pq}x_q otag \
    &=Sigma_{q=1}^n left( Sigma_{p=1}^n frac{partial c_{ip}}{partial a_{jk}}a_{pq} ight) x_q = Sigma_{q=1}^n (-delta_{qk}c_{ij})x_q = -c_{ij}x_k otag
    end{align}
    这就是恒等式
    egin{align} label{e12}
    frac{partial x_i}{partial a_{jk}}=-c_{ij}Sigma_{p=1}^nc_{kp}b_p ,quad i,j=1,cdots,n
    end{align}
    从而 ef{e11} 以及 ef{e12} 提醒我们:如果 (C=A^{-1}) 有任何相对来说比较大的元素,那么解 (x) 的某个元素对于 (b) 以及 (A) 的某些元素的摄动可能就会有很大且不可避免的敏感度.
     


    应该知道什么

    • 只要条件数 (kappa(A)) 不大,那么矩阵逆的相对误差与数据的相对误差有同样的阶
    • 如果线性方程组中的系数矩阵是良态的,那么关于解的相对误差与关于数据的相对误差有相同的阶
  • 相关阅读:
    css | js 实现扩展卡片小demo
    ESLint如何配置
    (js描述的)数据结构[哈希表1.3](10)
    (js描述的)数据结构[哈希表1.2](9)
    VSCode——自定义VSCode背景图片
    VSCode 初次写vue项目并一键生成.vue模版
    (js描述的)数据结构[哈希表1.1](8)
    (js描述的)数据结构[字典](7)
    Vue 实战项目: 硅谷外卖(1)
    脑残式网络编程入门(六):什么是公网IP和内网IP?NAT转换又是什么鬼?
  • 原文地址:https://www.cnblogs.com/zhoukui/p/8150184.html
Copyright © 2011-2022 走看看