凸優化有關的數值線性代數知識四:分塊消元與Schur補

4、分塊消元與Schur補

  1. 消除部分變量
  2. 逆矩陣引理

消除部分變量

考慮Ax=b,將變量x \in R^n分爲涼快或兩個子向量spa

x=\begin{bmatrix} x_1 \\x_2\end{bmatrix},x_1 \in R^{n_1},x_2 \in R^{n_2}

對線性方程組Ax=b作一樣的劃分,.net

\begin{bmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{bmatrix} \begin{bmatrix} x_1 \\x_2\end{bmatrix}=\begin{bmatrix} b_1 \\ b_2 \end{bmatrix}

其中A_{11}\in R^{n_1\times n_1},A_{22}\in R^{n_2 \times n_2}3d

假設A_{11}可逆,則按如下方式消去x_1x_1=A_{11}^{-1}(b_1-A_{12}x_2),再將其代入第二個方程blog

獲得ci

A_{21}x_1+A_{22}x_2=b_2 \\ \Leftrightarrow A_{21}A_{11}^{-1}(b_1-A_{12}x_2)+A_{22}x_2=b_2 \\ \Leftrightarrow (A_{22}-A_{21}A_{11}^{-1}A_{12})x_2=b_2-A_{21}A_{11}^{-1}b_1

其中S=A_{22}-A_{21}A_{11}^{-1}A_{12}是矩陣A的第一個分塊矩陣A_{11}的Schur補。當且僅當A非奇異時,Schur補S是非奇異矩陣。get

經過分塊消元求解線性方程組

給定非奇異線性方程組Ax=b,其中A_{11}非奇異:同步

  1. 計算A_{11}^{-1}A_{12}A_{11}^{-1}b_1
  2. 計算S=A_{22}-A_{21}A_{11}^{-1}A_{12}\hat{b}=b_2-A_{21}A_{11}^{-1}b_1
  3. 求解Sx_2=\hat{b}肯定x_2
  4. 求解A_{11}x_1=b_1-A_{12}x_2肯定x_1

分塊消元法的複雜度分析

f表示對A_{11}進行因式分解的計算成本,s表示A_{11}完成相應的求解步驟所須要的計算成本。博客

  1. 計算A_{11}^{-1}A_{12}A_{11}^{-1}b_1,對A_{11}進行因式分解,再加上求解兩個乘法須要的n_2+1次浮點運算,共須要f+(n_2+1)s
  2. 計算S=A_{22}-A_{21}A_{11}^{-1}A_{12}\hat{b}=b_2-A_{21}A_{11}^{-1}b_1,計算A_{21}A_{11}^{-1}A_{12}須要2n_2^2n_1,再加上n_2 \times n_2的矩陣減法,成本爲n_2^2,計算\hat{b}=b_2-A_{21}A_{11}^{-1}b_1的成本不如計算S的成本階次高,所以只需考慮計算S的成本。
  3. 求解Sx_2=\hat{b}肯定x_2,對該方程求解須要分解S,再求解,成本爲(2/3)n_2^3
  4. 求解A_{11}x_1=b_1-A_{12}x_2肯定x_1,計算b_1-A_{12}x_2須要2n_1n_2+n_1次浮點運算,求解方程組能夠利用1中的A_{11}的分解結果,於是秩序執行求解步驟,成本爲s。

故總成本:f+n_2s+2n_2^2n_1+(2/3)n_2^3class

無結構矩陣消元:此時A_{11}的分解爲LU分解,因而f=(2/3)n_1^3s=2n_1^2,代入上式獲得(2/3)(n_1+n_2)^3變量

對角矩陣消元:f=0,s=n_1,代入f+n_2s+2n_2^2n_1+(2/3)n_2^3獲得2n_2^2n_1+(2/3)n_2^3

逆矩陣引理

考慮線性方程組(A+BC)x=b,A \in R^{n \times n},B \in R^{n \times p},C \in R^{p \times n},引入新的變量y=Cx,寫成:

\begin{bmatrix} A &B \\ C&-I \end{bmatrix}\begin{bmatrix} x\\y \end{bmatrix}=\begin{bmatrix} b\\0 \end{bmatrix}

應用塊消元,從第一個方程中獲得x=A^{-1}(b-By),再將x代入第二個方程獲得

Cx-y=0\\ CA^{-1}(b-By)=y \\ CA^{-1}b=(I+CA^{-1}B)y

\Leftrightarrow y=(I+CA^{-1}B)^{-1}CA^{-1}b

\Leftrightarrow x=A^{-1}(b-B(I+CA^{-1}B)^{-1}CA^{-1}b)\\ \Leftrightarrow x=(A^{-1}-A^{-1}B(I+CA^{-1}B)CA^{-1})b

由於b是任意向量,有如下結論

(A+BC)^{-1}=A^{-1}-A^{-1}B(I+CA^{-1}B)CA^{-1}

這就是逆矩陣定理。

求解(A+BC)x=b的計算成本:

若是A是對角元素不等於零的對角矩陣,B,C 是稠密矩陣,

(1)計算D=A+BC須要2pn^2次浮點運算,再對D進行LU分解,須要(2/3)n^3次浮點運算,總成本2pn^2+(2/3)n^3

(2)用逆矩陣引理求解,即先計算y=(I+CA^{-1}B)^{-1}CA^{-1}b,計算z=A^{-1}b須要n次浮點運算,計算E=I+CA^{-1}B須要2p^2n次浮點運算,再求y,須要(2/3)p^3次浮點運算,再計算x=A^{-1}(b-By)=A^{-1}b-A^{-1}By=a-A^{-1}By,再求解x須要2pn次浮點運算。

 

來源:https://blog.csdn.net/wangchy29/article/details/87917717

本文同步分享在 博客「使君杭千秋」(CSDN)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索