码迷,mamicode.com
首页 > 其他好文 > 详细

被学长教会的高斯消元法Gauss

时间:2018-02-26 21:46:15      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:ott   tar   完成   单位   size   加减法   最大   html   .com   

昨天学长教了我高斯消元法。

这里用一个栗子来模拟一下Gauss的流程。

真的通俗易懂!这里是洛谷题目链接

 

这就是例子

 

x-2y+3z=6
4x-5y+6z=12
7x-8y+10z=21

 

 

先将它转化为矩阵

1 -2 3 6
4 -5 6 12
7 -8 10 21

 

解决这个方程组

我们会希望它变成如下形式

1 0 0 a
0 1 0 b
0 0 1 c

 

这样就可以表示为x=a,y=b,z=cx=a,y=b,z=cx=a,y=b,z=c

我们使用高斯消元,就要一步一步将每个未知数约去。

这种方法是以列为单位消去的

首先我们将第一列转化为1 0 0的形式

在这里要注意一下,我们往往是将这个系数绝对值最大的方程转移到被减的这一行,这样就可以减小误差

所以我们先将矩阵变成这样

7 -8 10 21
4 -5 6 12
1 -2 3 6

 

然后将正在处理的方程式化简,让正被处理的系数化1

1 -8/7 10/7 3
4 -5 6 12
1 -2 3 6

 

然后使用加减法将第二个与第三个方程组的第一个系数化0

1 -8/7 10/7 3
0 -3/7 2/7 0
0 -6/7 11/7 3

 

然后这时候第一列就被化简完成

同理我们化去第二行与第三行,步骤如下:

1.化简第二行

1 -8/7 10/7 3
0 1 -2/3 0
0 -6/7 11/7 3

 

2.用第一行减第二行×(-8/7),第三行减第二行×(-6/7)

1 0 2/3 3
0 1 -2/3 0
0 0 1 3

 

3.不需要化简第三行,所以直接用第一行减去第三行×2/3,第二行减去第三行×(-2/3)

1 0 0 1
0 1 0 2
0 0 1 3

 

最后我们就得到了一组解x=1,y=2,y=3x=1,y=2,y=3x=1,y=2,y=3 。

所以高斯消元其实是运用了小学解方程组的加减法的讷。

代码请见我的博客《从2017年暑假到现在手打的模板_之三十二

 

被学长教会的高斯消元法Gauss

标签:ott   tar   完成   单位   size   加减法   最大   html   .com   

原文地址:https://www.cnblogs.com/fushao2yyj/p/8475942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!