从第三行 $z = 1$
从第二行 $y = \frac{10}{3} - \frac{4}{3}z = 2$
从第一行 $x = 10 - 2y - 3z = 3$
运行图 5.8 中给出的代码可复现上述输出。
接下来只需以规范且合乎逻辑的方式执行该示例中的操作,即可将该方法变为求解线性方程组的最强大技术之一,称为消元法。该方法在所有计算机软件包中均可使用。这些软件包非常擅长执行相当繁琐的算术运算,有些甚至会展示计算细节。它们非常值得掌握。然而,编写并检查自己的程序,例如实现图 5.8 中的 MATLAB 代码,是一种强大的学习工具,能让人深入理解该方法以及方法中涉及的困难和误差。
三对角算法或 Thomas 算法
由于求解上三角方程组十分容易,许多方法都采用将其方程组化为此形式的一般策略。作为该策略的一个例子,我们来考察一个三对角方程组,其形式为
$$\begin{bmatrix} a_1 & b_1 & 0 & 0 & 0 & 0 & \dots & 0 \ c_2 & a_2 & b_2 & 0 & 0 & 0 & \dots & 0 \ 0 & c_3 & a_3 & b_3 & 0 & 0 & \dots & 0 \ 0 & 0 & c_4 & a_4 & b_4 & 0 & \dots & 0 \ & & & & & & & \vdots \ \vdots & & & & & & & 0 \ 0 & \dots & 0 & c_{n-1} & a_{n-1} & b_{n-1} & x_{n-1} & d_{n-1} \ 0 & \dots & 0 & 0 & c_n & a_n & x_n & d_n \end{bmatrix} \quad (5.25)$$
或
$$\begin{aligned} a_1x_1 + b_1x_2 &= d_1 \ c_2x_1 + a_2x_2 + b_2x_3 &= d_2 \ c_3x_2 + a_3x_3 + b_3x_4 &= d_3 \ \dots &\vdots \ c_nx_{n-1} + a_nx_n &= d_n \end{aligned}$$
首先我们消去 $x_1$ :
$$\begin{aligned} x_1 + b'_1x_2 &= d'_1 \ a'_2x_2 + b_2x_3 &= d'_2 \ c_3x_2 + a_3x_3 + b_3x_4 &= d_3 \end{aligned}$$