📜  MATLAB Gauss和Gauss-Jordan消除

📅  最后修改于: 2021-01-07 03:06:01             🧑  作者: Mango

高斯和高斯-乔丹消除

解决线性方程组的方法有两种:

  • 高斯消除
  • 高斯-乔丹淘汰赛

它们都基于这样的观察:如果方程组具有相同的解集,并且对矩阵的行执行简单的运算(即基本行运算(EROs)) ,则它们是等效的。

有3个ERO:

  • 缩放:将行乘以标量(即,将行中的每个元素乘以相同的标量)。此被写入SR⟶rI,其指示行i是由一个标量s乘以修改。
  • 互换:互换两行的位置。这被写为R I⟵⟶rj,它表示行i和j互相交换。
  • 替换:将一行中的所有元素替换为该行的正负乘以标量乘以另一行。这被写为R I±SRĴ⟶r

互换行的一个例子是,R 1⟵⟶r3。

现在,从这个矩阵,缩放的例子是:2R 2⟶r2,它描述了在第2行所有的项目都乘以2。

现在,从该矩阵中,替换的例子是:因为r 3 -2r 2⟶r3 .Element逐元素,行3中,通过在元件中第3行减去2 *代替行2中的相应项这些结果:

Gauss和Gauss-Jordan方法都从方程组的矩阵形式Ax = b开始,然后用列向量b扩充系数矩阵A。

高斯消除

高斯消除法是一种针对x求解矩阵方程Ax = b的方法。

该过程是:

  • 首先用列向量b扩充矩阵A。
  • 它执行ERO来将该扩展矩阵转换为上三角形式。
  • 它使用反替换来解决x中的未知数。

使用2 x 2系统,增强矩阵将为:

然后,使用ERO将扩充后的矩阵转换为上三角形式:

因此,只需将0替换为21。在这里,质数表示值已更改。

将其放回方程式yield中

对每一行执行此矩阵乘法会导致:

因此,解决方案是:

类似地,对于3×3系统,扩充后的矩阵被简化为上三角形式:

这将通过在一个21位的第一得到一个0,则一个31,最后一个32来完成有序。

然后,解决方案将是:

考虑以下2×2方程组:

x 1 + 2x 2 = 2
2x 1 + 2x 2 = 6

由于矩阵方程Ax = b,因此:

第一个过程是用b扩充系数矩阵A,以获得扩充矩阵[A | b]:

对于正向淘汰,我们需要在a 21位置获得0。为此,我们可以通过减去2 *第一行来更改矩阵中的第二行。

我们编写此ERO的方式是:

现在,将其放回矩阵方程式中:

说第二个方程现在是-2x 2 = 2所以x 2 = -1插入第一个方程式:

x 1 +2(-1)= 2
x 1 = 4。

这称为后代

高斯-乔丹淘汰赛

高斯-乔丹消除法开始了与高斯消除法相似的技术,但是消除代替了替代,继续进行消除。

高斯-乔丹方法包括:

  • 创建增强矩阵[A b]
  • 通过实施ERO获得上三角形式的正向消除
  • 返回去除到对角线的过程,产生解决方案

使用2x 2系统,增强矩阵将为:

使用3x 3系统,增强矩阵将为:


注意:结果对角线形式不包括最右边的列。

例如,对于2×2系统,正向消除产生矩阵:

现在,要继续进行反向淘汰,我们希望0处于12位置。

因此,解决方案是

这是3×3系统的示例:

矩阵形式的扩充矩阵[A | b]为

正向替换(首先在a 21位置得到0 ,然后在31处得到,最后是32来有序地完成):

对于高斯技术,这是后面的替换:

对于Gauss-Jordan技术,此方法后面是反向消除:

这是一个使用MATLAB操作这些替换的示例:

>> a = [1 3 0; 2 1 3; 4 2 3]
a =
       1     3     0
       2     1     3
       4     2     3 >> b = [1 6 3]'
b=
       1
       6
       3
>> ab = [a b]
ab = 
          1    3    0   1 
          2    1    3   6
          4    2    3   3
>> ab(2, :) = ab(2,:) ? 2*ab(1,:)
ab=
         1    3    0    1
         0    -5   3    4
        4     2    3    3
>> ab(3,:) = ab(3,:) ? 4 * ab(1,:)
ab =

           1  3   0   1 
          0 ?5   3   4 
          0 ?10   3 ?1
>> ab(3,:) = ab(3,:) ? 2 * ab(2,:)
ab=
    1    3    0   1
            0    -5   3    4
    0    0    -3  -9
>> ab(2,:) = ab(2,:) + ab(3,:)
ab=
    1   3   0   1 
            0 ?5   0 ?5 
            0   0  ?3 ?9
>> ab(1,:) = ab(1,:) + 3/5*ab(2,:) ab=
    1   0   0  ?2 
            0 ?5   0  ?5 
            0   0  ?3 ?9