2.1.5 三对角追赶法

在三次样条插值问题和常微分方程边值问题的数值解法中,都要借助于三对角方程组Axg,其中

并且A满足条件:

这时称A为对角占优的三对角矩阵。

以下我们还用四阶矩阵来说明具体的解法,则

可以证明,三对角矩阵A可以分解为二对角的下三角矩阵L和二对角的上三角矩阵U的乘积。当U的对角元素为1时,属于Crout分解;当L的对角元素为1时,属于Doolittle分解。以下对ACrout分解。

则有:×

比较等式两边位置相同的元素,可得以下式子:

从上式解出:

可见对A的分解只需要计算{}{}就可以了,而且需按的递推过程进行。

解方程组Axg可化为解如下两个三角形方程组:

1 解方程组Lyg,即,列出方程组并解之。

,解得

把下标从小到大求yr的过程,形象地称之为“追”的过程

2 解方程组Uxy,即,列出方程组并解之。

,解得

把下标从大到小求解的回代过程为“赶”的过程。因此,称由以上过程求解三对角方程组Axg的方法为追赶法。

例 用追赶法解线性方程组

解 

具体计算如下:

MATLAB程序

% 用追赶法解4阶三对角方程

a=[0 2 2 2];b=[3 3 3 3];c=[1 1 1 0];g=[1 0 1 0];

d=b(1);g(1)=g(1)/d;

for k=2:4,

    c(k-1)=c(k-1)/d;d=b(k)-a(k)*c(k-1);

    g(k)=(g(k)-a(k)*g(k-1))/d;

end

clear d a b

for k=3:-1:1,

    g(k)=g(k)-c(k)*g(k+1);

end

g

g=0.5806   -0.7419    1.0645   -0.7097

>> A=[3 1 0 0;2 3 1 0;0 2 3 1;0 0 2 3];

 b=[1 0 1 0]';A\b

ans =0.5806   -0.7419    1.0645   -0.7097

>> A=[4 1 0 0 0;1 4 1 0 0;0 1 4 1 0;0 0 1 4 1;0 0 0 1 4];

 b=[2 1 1 1 2]';A\b

ans =0.4808

    0.0769

    0.2115

    0.0769

    0.4808

  A=[2 -1 0 0;-1 2 -1 0;0 -1 2 -1;0 0 -1 2];

b=[1 0 1 0]';A\b

ans =1.2000

    1.4000

    1.6000

    0.8000

对于n阶矩阵A有以下公式:

从上式解出:

可见对A的分解只需要计算{}{}就可以了,而且需按→…→的递推过程进行。

例 用追赶法解线性方程组

 

追的过程y(38/51/22)T,赶的过程x(5432)T

x=(1,2,3,4)T