高斯消元法解线性方程组
题目描述:
给定一个包含 n 个方程和 n 个未知数的线性方程组,形式如下:
a₁₁x₁ + a₁₂x₂ + ... + a₁ₙxₙ = b₁
a₂₁x₁ + a₂₂x₂ + ... + a₂ₙxₙ = b₂
...
aₙ₁x₁ + aₙ₂x₂ + ... + aₙₙxₙ = bₙ
要求使用高斯消元法求解该方程组,得到未知数 x₁, x₂, ..., xₙ 的值。
解题过程:
高斯消元法的核心思想是通过初等行变换,将方程组的系数矩阵化为上三角矩阵(或行最简形式),然后通过回代求解未知数。以下是详细步骤:
- 构造增广矩阵:
将方程组的系数和常数项合并为一个增广矩阵:
\[ \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} & | & b_1 \\ a_{21} & a_{22} & \cdots & a_{2n} & | & b_2 \\ \vdots & \vdots & \ddots & \vdots & | & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} & | & b_n \\ \end{bmatrix} \]
竖线左侧是系数矩阵,右侧是常数项。
- 前向消元(化为上三角矩阵):
从第 1 行开始,逐列消除主元下方的元素:- 步骤 2.1:确保主元 a₁₁ 非零(若为零,可交换行使主元非零)。
- 步骤 2.2:对第 2 行到第 n 行,计算倍数 \(m_{i1} = \frac{a_{i1}}{a_{11}}\),然后将第 1 行乘以 \(-m_{i1}\) 加到第 i 行,使第 1 列下方元素变为零。
- 步骤 2.3:重复上述过程处理第 2 列到第 n-1 列。例如,处理第 k 列时,以当前行的对角线元素 aₖₖ 为主元,对第 k+1 行到第 n 行,计算 \(m_{ik} = \frac{a_{ik}}{a_{kk}}\),并消去下方元素。
最终得到上三角矩阵:
\[ \begin{bmatrix} a'_{11} & a'_{12} & \cdots & a'_{1n} & | & b'_1 \\ 0 & a'_{22} & \cdots & a'_{2n} & | & b'_2 \\ \vdots & \vdots & \ddots & \vdots & | & \vdots \\ 0 & 0 & \cdots & a'_{nn} & | & b'_n \\ \end{bmatrix} \]
- 回代求解:
从最后一行开始,逐步向前求解未知数:- 步骤 3.1:最后一行直接得 \(x_n = \frac{b'_n}{a'_{nn}}\)。
- 步骤 3.2:对第 i 行(i 从 n-1 到 1),利用已求得的 x_{i+1} 到 x_n 的值计算:
\[ x_i = \frac{b'_i - \sum_{j=i+1}^n a'_{ij}x_j}{a'_{ii}} \]
例如,倒数第二行方程为 $ a'_{n-1,n-1}x_{n-1} + a'_{n-1,n}x_n = b'_{n-1} $,解得 $ x_{n-1} = \frac{b'_{n-1} - a'_{n-1,n}x_n}{a'_{n-1,n-1}} $。
- 特殊情况处理:
- 若消元过程中主元 aₖₖ 为零且无法通过行交换解决,说明方程组无解或有无穷多解。
- 若回代时出现 \(0 = \text{非零数}\),则无解;若出现 \(0 = 0\),则有无穷多解。
总结:高斯消元法通过系统化的消元和回代,将复杂方程组转化为易解的形式,是线性代数中最基础的数值算法之一。