例 5.32
使用三对角算法求解
$$\begin{bmatrix} 2 & 1 & 0 & 0 \ 1 & 2 & 1 & 0 \ 0 & 1 & 2 & 1 \ 0 & 0 & 1 & 2 \end{bmatrix} \begin{bmatrix} x \ y \ z \ t \end{bmatrix} = \begin{bmatrix} 1 \ 1 \ 1 \ -2 \end{bmatrix}$$
解 矩阵序列如下给出
$$\begin{bmatrix} 1 & \frac{1}{2} & 0 & 0 \ 0 & \frac{3}{2} & 1 & 0 \ 0 & 1 & 2 & 1 \ 0 & 0 & 1 & 2 \end{bmatrix} \begin{bmatrix} x \ y \ z \ t \end{bmatrix} = \begin{bmatrix} \frac{1}{2} \ \frac{1}{2} \ 1 \ -2 \end{bmatrix}, \quad \begin{bmatrix} 1 & \frac{1}{2} & 0 & 0 \ 0 & 1 & \frac{2}{3} & 0 \ 0 & 0 & \frac{4}{3} & 1 \ 0 & 0 & 1 & 2 \end{bmatrix} \begin{bmatrix} x \ y \ z \ t \end{bmatrix} = \begin{bmatrix} \frac{1}{2} \ \frac{1}{3} \ \frac{2}{3} \ -2 \end{bmatrix}$$
$$\begin{bmatrix} 1 & \frac{1}{2} & 0 & 0 \ 0 & 1 & \frac{2}{3} & 0 \ 0 & 0 & 1 & \frac{3}{4} \ 0 & 0 & 0 & \frac{5}{4} \end{bmatrix} \begin{bmatrix} x \ y \ z \ t \end{bmatrix} = \begin{bmatrix} \frac{1}{2} \ \frac{1}{3} \ \frac{1}{2} \ -\frac{5}{2} \end{bmatrix}$$
消元阶段现已完成,我们回代得到
$$t = -2, z = \frac{1}{2} - \frac{3}{4}t = 2, y = \frac{1}{3} - \frac{2}{3}z = -1 \text{ and } x = \frac{1}{2} - \frac{1}{2}y = 1$$
因此完整解为 $x = 1, y = -1, z = 2, t = -2$ 。
要执行图 5.9 中的代码,我们输入:
a = [2, 2, 2, 2]
b = [1, 1, 1, 0]
c = [0, 1, 1, 1]
d = [1, 1, 1, -2]
tridiag(a, b, c, d, 4)
这将产生结果
1.000 -1.000 2.000 -2.000
尽管 Thomas 算法很高效,但图 5.9 中的过程并非万无一失,如下面这个简单例子所示
$$\begin{bmatrix} -1 & 1 & 0 \ 1 & -1 & 1 \ 0 & 1 & -1 \end{bmatrix} \begin{bmatrix} x \ y \ z \end{bmatrix} = \begin{bmatrix} -1 \ 2 \ 1 \end{bmatrix}$$