高斯消元法
00:00
高斯消元法的基本步骤,行阶梯形与行最简形矩阵,消元过程与回代过程,主元选取策略。
1. 高斯消元法概述
1.1 基本思想
高斯消元法(Gaussian Elimination)是求解线性方程组最基本的方法,通过初等行变换将增广矩阵化为行阶梯形或行最简形,从而求出方程组的解。
1.2 线性方程组的矩阵表示
线性方程组 的增广矩阵为:
对增广矩阵施行初等行变换,不改变方程组的解集。
2. 行阶梯形矩阵
2.1 定义
矩阵称为行阶梯形(Row Echelon Form, REF),若满足:
- 零行(元素全为零的行)位于矩阵底部
- 每个非零行的首非零元(主元)的列标严格递增
- 主元下方的元素全为零
示例:
其中 标记的是主元。
2.2 行最简形矩阵
行阶梯形进一步满足:
- 每个主元为
- 每个主元所在列的其他元素全为
称为行最简形(Reduced Row Echelon Form, RREF)。
示例:
3. 高斯消元法的步骤
3.1 前向消元(化为行阶梯形)
步骤:
- 选取第一列中非零元素作为主元(若第一列全为零,则看第二列)
- 若需要,交换行使主元位于第一行
- 用主元消去其下方所有元素
- 对右下角的子矩阵重复上述过程
示例:解方程组
增广矩阵:
3.2 回代过程
从最后一个非零行开始,逐步回代求出各未知量。
由行阶梯形:
回代:,,。
解为 。
3.3 高斯-约当消元法(化为行最简形)
继续消元,将主元上方的元素也消为零:
直接读出解:。
4. 主元选取策略
4.1 部分主元选取
在每一步消元中,选取当前列中绝对值最大的元素作为主元,交换行使之到达主元位置。
目的:减少舍入误差的传播,提高数值稳定性。
4.2 全主元选取
在剩余子矩阵中选取绝对值最大的元素作为主元,可能需要同时交换行和列。
优点:数值稳定性最好。
缺点:计算量增大,且列交换需要记录未知量的顺序。
4.3 主元选取的重要性
不选主元时,若主元非常小,消元过程中会产生大数,导致严重的舍入误差。
示例:
不选主元:,会产生大系数,增大误差。
选主元:交换两行后消元,数值更稳定。
5. 高斯消元法的计算量
5.1 时间复杂度
- 前向消元: 次乘除法
- 回代过程: 次乘除法
- 总计:
5.2 与克莱姆法则的比较
| 方法 | 计算量 |
|---|---|
| 克莱姆法则 | |
| 高斯消元法 |
高斯消元法远比克莱姆法则高效。
6. 高斯消元法的程序实现思路
6.1 伪代码
for k = 1 to n-1:
// 选主元
找到第k列中 |a_{ik}| 最大的行 i_max (i >= k)
交换第k行和第i_max行
// 消元
for i = k+1 to m:
factor = a_{ik} / a_{kk}
for j = k to n+1:
a_{ij} = a_{ij} - factor * a_{kj}
6.2 注意事项
- 主元为零或接近零时需要特殊处理
- 浮点运算中要注意数值稳定性
- 稀疏矩阵可以使用特殊存储格式加速