下述所有内容都是建立在线性方程组有唯一解的情况
高斯消去法主要用来求解线性方程组比如求解下图中的四维线性方程组
该方程组写成行列式形式如下图所示
首先将行列式变为阶梯行列式,以第一行为例:
第一行同时除以,然后分别乘以
、
、
并加到第2,3,4行,第一列的列向量中便只有
为1
下所有元素为0。
同理对第二行除以,使第二列
下的元素皆为0,依次类推得到如下行列式。
通过回带便可以得到解向量也就是N为线性方程组的唯一解。
但是这种方法存在一个问题,如果A方阵中对角线中存在为0的元素,那么在变化阶梯行列式的过程中会出现分母为零的情况,导致计算没有意义。因此列主元高斯消去便成为一个更好的选择。
列主元高斯消去法与普通方法唯一的不同在于普通方法需要使A方阵化为上三角阵且对角线元素为1,而列主元高斯消去A方阵的特点有:
- 每增加一行,该行0元素项比上一行多一项;
- 每行中化为1的项为该行绝对值最大项(不是初始值);
- 每一行至少有一项为1,且存在一项为1的其下所有行该列元素皆为0;
比如下述形式为列主元高斯消去的一种最终形式
列主元高斯消去的回带也是由最后一行开始逐列回带得到解向量。
上述就是列主元高斯消去的过程,具体代码在笔者github中。