高斯消元

来源:互联网 发布:mac ps导入ttf 编辑:程序博客网 时间:2024/06/06 01:30

这里先讨论最简单的高斯消元

以下列方程为例

x1-2*x3=0

2*x2-3*x3=0

x1=1

未知数的名字并不重要,重要的是未知数前的系数,所以可以将方程组写成矩阵的形式

1 0 -2 0

0 2 -3 1

1 0  0 1

最后一列是方程的右边,前面三列是未知数的系数


高斯消元的过程分成两步:消元和回代

矩阵的初等变换有三种:

1.交换某两行

2.将某行的所有数统统乘以一个不为0的数x

3.将某两行作差

显然,这三种操作都不会改变方程组的解

于是消元的过程是这样的

1.对于第i列,我们从第i行开始看,找一个这一列的系数不为0的,换到第i行

2.将下面的每一行按照比例将第i列的系数消成0

最终会获得一个上三角形状的矩阵,如例子中的矩阵最终会变成

1 0 -2 0

0 2 -3 0

0 0  2 1


这样消除步骤完成,开始回代步骤

明显,最后一个方程是满足ax=b的形式的,所以x可以秒解:x=b/a

然后将x3回代到第二个式子里,发现x2也可以解出来

以此类推,可以解出所有的x


如果消除过程完成以后,你发现获得的不是一个上三角,而是一个“上梯形”,那就意味着你的最后一个方程不止一个未知数,所以这是一个不定方程

一般情况下可以添加一些方程固定住一些自由元以获得方程组的一组解

如果消元过程中出现矛盾,说明方程组无解