博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
矩阵分析-线性系统-2 高斯消元法、高斯-若尔当消元法
阅读量:4597 次
发布时间:2019-06-09

本文共 1206 字,大约阅读时间需要 4 分钟。

1. 高斯消元法

高斯消元法(是求解线性方阵组的一种算法,它也可用来求,以及求可逆的。它通过逐步消除未知数来将原始线性系统转化为另一个更简单的等价的系统。它的实质是通过初等行变化(),将线性方程组的增广矩阵转化为行阶梯矩阵()。总结起来,如下步骤所示

 

以下面方程组为例,它的执行步骤为

                         

1)构造增广矩阵,即系数矩阵A增加上常数向量b(A|b)

                         

2)通过以交换行、某行乘以非负常数和两行相加这三种初等变化将原系统转化为更简单的三角形式(triangular form)

     注:这里的初等变化可以通过系数矩阵A乘上初等矩阵E来实现

                        

3)从而得到简化的三角方阵组,注意它更容易解

                        

4)这时可以使用向后替换算法()求解得

    z=-4/-4=1,  y=4-2z=4-2=2,  x= (1-y-z)/2=(1-2-1)/2=-1

 

总结上面过程,高斯消元法其实就是下面非常简单的过程

                            原线性方程组       ——>       高斯消元法     ——> 下三角或上三角形式的线性方程组           ——>  前向替换算法求解(对于上三角形式,采用后向替换算法)

         \begin{matrix} l_{1,1} x_1 &   &             &            &             & = &    b_1 \\ l_{2,1} x_1 & + & l_{2,2} x_2 &            &             & = &    b_2 \\      \vdots &   &      \vdots &     \ddots &             &   & \vdots \\ l_{m,1} x_1 & + & l_{m,2} x_2 & + \dotsb + & l_{m,m} x_m & = &   b_m  \\ \end{matrix}                         

 

2.高斯-若尔当消元法(Gauss-Jordan Elimination

相对于高斯消元法,高斯-若尔当消元法最后的得到线性方程组更容易求解,它得到的是简化行列式。其转化后的增高矩阵形式如下,因此它可以直接求出方程的解,而无需使用替换算法。但是,此算法的效率较低。

                            

 

例子如下:

          解为

 

3.实际应用中的高斯消元法

前面介绍了最基本的高斯消元法,现在看看应用于实际问题的实用算法。

3.1 误差

因为实际应用中,我们总是利用计算机来分析线性系统,而计算机中以有限的数来近似无限的实数,因此产生舍入误差(roundoff error),进而对解线性系统产生很多影响。

 

一个t位(即精度为t)以为基的浮点数的表达形式为:,。对于一个实数x,其浮点近似值为最接近x的浮点数,必要时进行近似。

例1:对2位以10为基的浮点算法,。

例2:同样考虑,。

 

以下面系统为例,看看在高斯消元中采用浮点算法会产生什么效果。

                                                                          

当以精确解法时,通过将第一行乘以m=89/47,并从第二行中减去得到,进而利用后向替换算法得x=1,y=-1。

当以3位以10为基的浮点算法时,乘子变为,因为,因此第一步高斯消元后得

。此时,因为不能将第2行第1列位置变为0,所以不能将其三角化。从而,我们只能接受将这个位置值赋为0,而不管其实际浮点值。因此,3位浮点高斯消元的结果为,后向算法计算结果为。

3.2 部分主元消元(Partial Pivoting)

尽管无法消除近似误差的影响,可以采用一些技术来尽量减小这类机器误差。部分主元消元法在高斯消元的每一步,都选择列上最大值为轴(通过行变换将其移动)。

3.

转载于:https://www.cnblogs.com/pegasus/archive/2011/07/31/2123195.html

你可能感兴趣的文章
ubuntu系统下Python虚拟环境的安装和使用
查看>>
IOS7开发~新UI学起(二)
查看>>
软件过程度量和CMMI模型概述
查看>>
数据结构(DataStructure)与算法(Algorithm)、STL应用
查看>>
Linux与Windows xp操作系统启动过程
查看>>
linux运维、架构之路-Kubernetes1.13离线集群部署双向认证
查看>>
[Leetcode]Substring with Concatenation of All Words
查看>>
Gem install rmagick 报错问题~
查看>>
验证一个方法触发时机
查看>>
25句充满正能量的句子
查看>>
python学习手册笔记——27.更多实例
查看>>
Spring Cloud Alibaba 新版本发布:众多期待内容整合打包加入!
查看>>
Android Camera 使用小结
查看>>
20170908 校内模拟赛 游戏
查看>>
P1774 最接近神的人_NOI导刊2010提高(02)
查看>>
4245: [ONTAK2015]OR-XOR
查看>>
DataGridView的DataGridViewCheckBox问题
查看>>
C#导出成Excel文档
查看>>
C语言指针总结
查看>>
关于MFC项目中使用WebBrowser控件禁止脚本错误的方法 .
查看>>