线性方程组求解算法
在数值线性代数中,求解联立线性方程组是一个基础问题,也是许多科学模拟的基本组成部分。例如,由常微分方程或偏微分方程建模的科学或工程问题,其数值解通常基于离散化方法,最终会归结为求解线性方程组。本文将介绍几种求解线性方程组 $Ax = b$ 的标准方法,其中 $A \in R^{n×n}$ 是一个 $n×n$ 的实数矩阵,$b \in R^{n}$ 是一个 $n$ 维向量,$x \in R^{n}$ 是待求解的未知向量。
1. 线性方程组求解方法分类
线性方程组的求解方法主要分为直接法和迭代法:
- 直接法 :在固定的步骤内(取决于系统的大小 $n$)确定精确解(除了舍入误差)。常见的直接法包括消元法和分解法。
- 迭代法 :从一个初始向量开始,计算一系列向量,使其收敛到精确解。当近似解达到可接受的精度时,计算停止。通常,迭代法比直接法更快,并且并行实现较为简单。不过,线性方程组需要满足一些数学性质才能保证收敛到精确解。对于许多元素为零的稀疏矩阵,迭代法具有优势,因为它们避免了用非零元素填充矩阵。
2. 高斯消元法
高斯消元法是一种直接求解器,下面将简要介绍其顺序方法,并讨论不同数据分布模式下的并行实现。
2.1 高斯消元法与 LU 分解
线性系统 $Ax = b$ 可以完整地写成如下形式:
[
\begin{cases}
a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n = b_1 \
\cdots \
a_{i1