高斯消元算法 详解

        对于正在学习或已经学完线性代数的同学来说,高斯消元并不算是一个新的知识点(假如你在课堂上认真听讲并且没有挂科的话)

        首先来看一下什么是高斯消元,其实说白了,就是线性代数里通过矩阵求线性方程组的解,设一个线性方程组,,则其增广矩阵,算法中给定的就是这个增广矩阵,整个矩阵就相当于一个隐藏变量的线性方程组,OK,现在高斯给了我们一种算法(其实九章算术里早就有了),来找出方程组的解或其解的限制。

       假设有三个方程组

       2x + y - z = 8 (L1)
      -3x - y + 2z = -11 (L2)
      -2x + y + 2z = -3 (L3)
    利用方程组L1消去其后所有方程组的X变量,然后利用方程组L2,消去其后所有的Y变量,以此类推,最后这些方程组会组成一个三角的形式,即第一行有3个变量,第二行有两个变量,第三行有一个变量。如果这些方程组是线性无关的并且方程组的数量和变量的个数相等(满秩),则这些线性方程组必定有唯一解,并且第一个解必定出现在最后一个方程组中,最后就是这个样子:
      2x + y - z = 8
         1/2y + 1/2z = 1
                       -z = 1
然后只要将答案以此往上带入即可求出答案,如果相对于增广矩阵,就是进行初等行变换,先用第一行消去之后各行的第一个值,再用第二行消去之后的第二个值,以此类推。。。
另外,使用高斯消元法还可以用来求矩阵的逆矩阵(假设矩阵可逆),其实这也是线性代数课本上给出的求逆矩阵的方法,即将矩阵 和单位矩阵E组合成一个矩阵(A,E),然后对这个矩阵进行初等行变换,当矩阵A被化为单位矩阵E时,原来的(A,E)就会变成 ,那么,我们梦寐以求的可逆矩阵就求出来了,如果矩阵A不可以化成一个三角形的格式,那就说明这个矩阵是不可逆的。
最后,高斯消元法的算法复杂度为 ,貌似蛮高的,所以用的时候还要小心哦
PS:暂时还没做相关的题目,只是对线性代数的热爱让我想要发这篇普及贴,下次粘代码哈

你可能感兴趣的:(ACM)