线性系统的直接方法与LU分解
在科学计算中,求解线性方程组是一个核心问题。线性方程组在科学、工程、金融、商业等众多领域都有广泛应用,它们可以直接通过这些领域的数学模型产生,也可以在数学模型的数值求解中间接出现,比如在求解偏微分方程时。由于线性系统的重要性,人们对其求解方法进行了大量的研究。
1. 线性系统概述
一个包含 $m$ 个方程和 $n$ 个未知数的线性系统可以写成矩阵形式 $Ax = b$,其中系数矩阵 $A$ 是 $m×n$ 的,未知向量 $x$ 和右侧向量 $b$ 都是 $n$ 维的。最重要的情况是系数矩阵为方阵,即方程数和未知数个数相同,更一般的 $m×n$ 情况可以转化为这种情况。
求解线性系统主要有两种方法:直接法和迭代法。如果算术运算精确,直接算法可以在预定的有限步骤内精确求解系统。但在实际的不精确计算中,直接方法仍然会在相同的步骤数内停止,但会接受一定程度的数值误差。使用直接方法时,一个主要的考虑因素是减轻这种误差。直接方法通常用于系数矩阵为稠密矩阵(即大多数元素非零)的中等规模系统,而迭代法通常用于非常大的稀疏系统。迭代法会渐近收敛到解,因此会一直运行直到近似解被认为可接受为止。
2. 三角系统
在科学计算中出现的矩阵通常具有特殊结构。利用这些特殊结构的算法比通用算法更优,因为它们可以减少存储需求、减少浮点运算次数,并获得更稳定的算法。
2.1 下三角系统 - 前向替换
考虑系数矩阵 $A$ 为下三角矩阵的特殊情况,即当 $j > i$ 时,$a_{ij} = 0$。系统形式如下:
[
\begin{cases}
a_{11}x_1