掌握数值方法
掌握循环约化法的基本思想, 用分块循环约化法解方程组 A x = b A x=b Ax=b
其中
A = ( D − I q − I q D ⋱ ⋱ ⋱ − I q − I q D ) A=\left(\begin{array}{cccc}D & -I_{q} & & \\ -I_{q} & D & \ddots & \\ & \ddots & \ddots & -I_{q} \\ & & -I_{q} & D\end{array}\right) A=⎝⎜⎜⎛D−Iq−IqD⋱⋱⋱−Iq−IqD⎠⎟⎟⎞
是一个 2 k − 1 2^{k}-1 2k−1 阶的分块方阵.
对于 i = 2 , 4 , 6 i=2,4,6 i=2,4,6, 我们分别用 F , − D , F F,-D, F F,−D,F 去乘第 i − 1 , i , i + 1 i-1, i, i+1 i−1,i,i+1 个方程, 然后将得到的方程相加:
( 2 F 2 − D 2 F 2 F 2 2 F 2 − D 2 F 2 F 2 2 F 2 − D 2 ) ( x 2 x 4 x 6 ) = ( F ( b 1 + b 3 ) − D b 2 F ( b 3 + b 5 ) − D b 4 F ( b 5 + b 7 ) − D b 6 ) \left(\begin{array}{ccc} 2 F^{2}-D^{2} & F^{2} & \\ F^{2} & 2 F^{2}-D^{2} & F^{2} \\ F^{2} & 2 F^{2}-D^{2} \end{array}\right)\left(\begin{array}{l} x_{2} \\ x_{4} \\ x_{6} \end{array}\right)=\left(\begin{array}{l} F\left(b_{1}+b_{3}\right)-D b_{2} \\ F\left(b_{3}+b_{5}\right)-D b_{4} \\ F\left(b_{5}+b_{7}\right)-D b_{6} \end{array}\right) ⎝⎛2F2−D2F2F2F22F2−D22F2−D2F2⎠⎞⎝⎛x2x4x6⎠⎞=⎝⎛F(b1+b3)−Db2F(b3+b5)−Db4F(b5+b7)−Db6⎠⎞
这样, 就将下标为奇数的 x i x_{i} xi 消去.得到一个简化的分块三对角方程组, 其形式为
( D ( 1 ) F ( 1 ) F ( 1 ) D ( 1 ) F ( 1 ) F ( 1 ) D ( 1 ) ) ( x 2 x 4 x 6 ) = ( b 2 ( 1 ) b 4 ( 1 ) b 6 ( 1 ) ) \left(\begin{array}{lll} D^{(1)} & F^{(1)} & \\ F^{(1)} & D^{(1)} & F^{(1)} \\ & F^{(1)} & D^{(1)} \end{array}\right)\left(\begin{array}{l} x_{2} \\ x_{4} \\ x_{6} \end{array}\right)=\left(\begin{array}{l} b_{2}^{(1)} \\ b_{4}^{(1)} \\ b_{6}^{(1)} \end{array}\right) ⎝⎛D(1)F(1)F(1)D(1)F(1)F(1)D(1)⎠⎞⎝⎛x2x4x6⎠⎞=⎝⎜⎛b2(1)b4(1)b6(1)⎠⎟⎞
其中, D ( 1 ) = 2 F 2 − D 2 D^{(1)}=2 F^{2}-D^{2} D(1)=2F2−D2 与 F ( 1 ) = F 2 F^{(1)}=F^{2} F(1)=F2 可互换.应用如上相同的方法, 将这三个方程分别乘以 F ( 1 ) F^{(1)} F(1), − D ( 1 ) -D^{(1)} −D(1) 和
F ( 1 ) F^{(1)} F(1), 将他们相加, 得到一个方程:
( 2 [ F ( 1 ) ] 2 − D ( 1 ) 2 ) x 4 = F ( 1 ) ( b 2 ( 1 ) + b 6 ( 1 ) ) − D ( 1 ) b 4 ( 1 ) \left(2\left[F^{(1)}\right]^{2}-D^{(1)^{2}}\right) x_{4}=F^{(1)}\left(b_{2}^{(1)}+b_{6}^{(1)}\right)-D^{(1)} b_{4}^{(1)} (2[F(1)]2−D(1)2)x4=F(1)(b2(1)+b6(1))−D(1)b4(1)
将其记作 D ( 2 ) x 4 = b ( 2 ) D^{(2)} x_{4}=b^{(2)} D(2)x4=b(2), 这样循环约化就完成了.现在求解这个小的方程组, 得到 x 4 x_{4} x4 .向量 x 2 x_{2} x2 和 x 6 x_{6} x6 可通过求解方程组
D ( l ) x 2 = b 2 ( l ) − F ( l ) x 4 D^{(\mathrm{l})} x_{2}=b_{2}^{(\mathrm{l})}-F^{(\mathrm{l})} x_{4} D(l)x2=b2(l)−F(l)x4
D ( l ) x 6 = b 6 ( l ) − F ( l ) x 4 D^{(\mathrm{l})} x_{6}=b_{6}^{(\mathrm{l})}-F^{(\mathrm{l})} x_{4} D(l)x6=b6(l)−F(l)x4
而解得.
最后, 用 (1) 中第一、三, 五, 七个方程来分别计算 x 1 , x 3 , x 5 x_{1}, x_{3}, x_{5} x1,x3,x5 和 x 7 x_{7} x7 .
此方法的计算结果较其他方法更精确, 而且递推的工作量在很大程度上依赖于 D p D^p Dp 和 F p F^p Fp 的稀疏性, 当这些矩阵是满的时, 计算量为 n 3 log 2 ( 2 k − 1 ) . n^3\log_2(2^k-1). n3log2(2k−1).
本人水平有限,若有不妥之处, 恳请批评指正.
作者: 图灵的猫
作者邮箱: [email protected]