首页 > 代码库 > 【线性代数】矩阵消元-高斯消元法

【线性代数】矩阵消元-高斯消元法

一、高斯消元法

      能使用消元法的情况:每次消元过程中,对角线元素始终不能为0,即矩阵可逆

   我们一般利用高斯消元法进行矩阵的消元。下面我们通过举例说明:


       如果按照我们初中所学的解法,一般是先用第三个方程将z用y表示,然后代入到第二个方程就可以用x来表示y和z,最后代入第一个方程就可以求得x,y,z。这个算法的核心就是消元!下面我们看看矩阵形式的消元法。

       首将上面的三元一次方程组表示为矩阵形式为:
        

      为了方便,我们将等式右边的向量放到左边,构成增广矩阵(可以百度看看什么是增广矩阵)。下面是消元的具体步骤:

        

其中,上图中的第一个矩阵就是所说的增广矩阵,我们记作A,经过步骤E21得到的矩阵为B,经过步骤E32得到的矩阵为C。
       步骤E21的目的是A21=0,这里是指用第二行减去第一行的三倍
       步骤E32的目的是使A32=0,这里是指用第三行减去第二行的两倍
注:高斯消元的目的是使原矩阵(不要考虑最后一列,这一列是等式右边的,matlab是分别对左右两边进行消元的,我这里写在一起是为了方便)对角线下面的元素为0,变成上三角矩阵,在上面例子中本应该在步骤E21和步骤E32中还有步骤E31,使得A31=0。但是原矩阵的A31=0,所以没有必要进行操作。尽管这一步骤没有必要,但matlab会进行操作(没有人机智)。

       通过消元得到的结果矩阵C(上图中的第三个矩阵),我们可以写出其方程组的形式:
        

上面方程组可以直接看出,z=-2,然后代入第二个方程得到y=1,再代入第一个方程得到x=2。

       在上面的消元过程中,原始矩阵A经过步骤E21得到矩阵B,矩阵B经过步骤E32得到矩阵C,我们用矩阵来表示步骤E21,步骤E32,则可以得到:
        


把这两步综合起来得到:


总结,我们令方程组左边的矩阵为D,用初等矩阵E来表示消元操作,用上三角矩阵U表示消元得到的结果,则以上式为例:


二、置换矩阵

      1、行交换:左乘

     2、列交换:右乘













【线性代数】矩阵消元-高斯消元法