其他分享
首页 > 其他分享> > 凸优化有关的数值线性代数知识四:分块消元与Schur补

凸优化有关的数值线性代数知识四:分块消元与Schur补

作者:互联网

四、分块消元与Schur补

  1. 消除部分变量
  2. 逆矩阵引理

消除部分变量

考虑Ax=b,将变量x \in R^n分为凉快或两个子向量

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

对线性方程组Ax=b做同样的划分,

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

假设A_{11}可逆,则按以下方式消去x_1x_1=A_{11}^{-1}(b_1-A_{12}x_2),再将其代入第二个方程

得到

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是非奇异矩阵。

通过分块消元求解线性方程组

给定非奇异线性方程组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^3

无结构矩阵消元:此时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

标签:Schur,求解,浮点运算,分块,矩阵,计算,消元
来源: https://blog.csdn.net/hyl1181/article/details/111305821