高斯-若尔当消元法(英语:Gauss-Jordan Elimination),或译为高斯-约旦消元法,简称G-J消元法,是数学中的一个算法,是高斯消元法的另一个版本。它在线性代数中用来找出线性方程组的解,其方法与高斯消去法相同。唯一相异之处就是这算法产生出来的矩阵是一个简化行梯阵式,而不是高斯消元法中的行梯阵式。相比起高斯消元法,此算法的效率比较低,却可把方程组的解用矩阵一次过表示出来。

中文名

高斯-若尔当消元法

外文名

Gauss-Jordan Elimination

领    域属    性

高斯消元法的另一个版本

其他译名

高斯-约旦消元法

简    称

G-J消元法

高斯-若尔当消元法简介

编辑

语音

数学上,高斯消元法(或译:高斯消去法),是线性代数规划中的一个算法,可用来为线性方程组求解。但其算法十分复杂,不常用于加减消元法,求出矩阵的秩,以及求出可逆方阵的逆矩阵。不过,如果有过百万条等式时,这个算法会十分省时。一些极大的方程组通常会用迭代法以及花式消元来解决。当用于一个矩阵时,高斯消元法会产生出一个“行梯阵式”。高斯消元法可以用在电脑中来解决数千条等式及未知数。亦有一些方法特地用来解决一些有特别排列的系数的方程组[1]

图1Gauss-Jordan消元法在很多地方都会用到,例如求一个矩阵的逆矩阵、解线性方程组,等等。它的速度不是最快的,但是它非常稳定, 同时它的求解过程也比较清晰明了, 因而人们使用较多。相对于高斯消元法,Gauss-Jordan消元法最后的得到线性方程组更容易求解,它得到的是简化行列式。其转化后的增高矩阵形式如图1所示,因此它可以直接求出方程的解,而无需使用替换算法。但是,此算法的效率较低。

高斯-若尔当消元法G-J消元法的初等变换方法

编辑

语音

G-J 消元法通过这样的方法来进行初等变换:在每一个循环过程中,先寻找到主元,并将主元通过行变换 (无需列变换) 移动到矩阵的主对角线上, 然后将主元所在的行内的所有元素除以主元,使得主元化为 1;然后观察主元所在的列上的其他元素,将它们所在的行减去主元所在的行乘以一定的倍数, 使得主元所在的列内、 除主元外的其他元素化为 0,这样就使得主元所在的列化为了单位矩阵的形式。 这就是一个循环内做的工作。 然后, 在第二轮循环的过程中, 不考虑上一轮计算过程中主元所在的行和列内的元素, 在剩下的矩阵范围内寻找主元, 然后(如果其不在主对角线上的话) 将其移动到主对角线上, 并再次进行列的处理, 将列化为单位矩阵的形式。 余下的步骤依此类推。 具体的计算过程的一个例子, 请看下面求逆矩阵的过程的例子。

高斯-若尔当消元法Gauss-Jordan法求解方程组过程

编辑

语音

高斯-若尔当消元法引例

假设有如下的方程组:

写成矩阵形式就是: AX=B ,其中:

,现对矩阵 A 作初等变换,同时矩阵 B 也作同样的初等变换,则当 A 化为单位矩阵的时候,有:

显而易见,我们得到了方程组的解:

所以, 我们要以一定的策略, 对 A 和 B 施以一系列的初等变换, 当 A 化为单位矩阵的时候,B 就为方程组的解。

高斯-若尔当消元法求解过程

如果要解系数矩阵相同、右端向量不同的 N 个方程组,在设计程序的时候,没有必要 ”解 N次方程组 “,我们完全可以在程序中,将所有的右端向量以矩阵的数据结构(类似于二维数组)来表示, 在系数矩阵作行变换的时候, 矩阵里的每一个右端向量也做同样的变换, 这样,我们在一次求解运算的过程中,实际上就是同时在解 N 个方程组了。

高斯-若尔当消元法用G-J消元法求逆

编辑

语音

高斯-若尔当消元法原理

假设 AX=E ,其中, A 为 n 阶系数矩阵(与上面的解线性方程组对照);E 为单位矩阵,即,其中为单位列向量; X 为 n 个列向量构成的矩阵,即,其中为列向量。于是,可以把等式 AX=E 看成是求解 n 个线性方程组,求出了所有的之后,也即得到了矩阵 X。而由 AX=E 可知,矩阵 X 是 A 的逆矩阵,即。这样,就求出了 A 的逆矩阵了。于是,求逆矩阵的过程被化成了解线性方程组的过程,因此我们可以用 Gauss-Jordan 消元法来求逆矩阵。求逆矩阵时,系数矩阵 A 和单位矩阵 E 可以共用一块存储区,在每一次约化过程中,系数矩阵逐渐被其逆矩阵替代。

高斯-若尔当消元法示例

有如下的方程组:

显而易见,该方程组对应的系数矩阵 A 和右端向量矩阵 B(此处只有一个右端向量)分别为:

其实在求逆矩阵的过程中,矩阵 B 无关紧要,可以忽略,不过此处还是把它写出来了。下面,把单位矩阵 E 附在 A 的右边,构成另一个矩阵(A|E):

下面,通过矩阵的初等变换,将 A 化为单位矩阵 E,而 E 则化为了 A 的逆矩阵。以下是转化步骤:

(1)主元选为 3,所以将 Row1 (第一行)与 Row2 (第二行)交换:

(2)主元所在行的所有元素除以主元:

(3)Row1 – Row2 ,Row3 – 2 × Row2 :

现在,原来的矩阵 A 有一列被化为了单位阵的形式。

(4)重新选主元,这一次主元选为 5/3,于是 Row1 ÷ 5/3 (主元所在行的所有元素除以主元):

(5)Row2 – (1/3) × Row1 ,Row3 – (4/3) × Row1 :

现在,原来的矩阵 A 又有一列被化为了单位阵的形式。

(6)重新选主元,这一次主元选为 -1/5 ,于是 Row3 ÷ (-1/5) (主元所在行的所有元素除以主元):

(7)Row1 – (2/5) × Row3 ,Row2 – (1/5) × Row3 :

现在,原来的矩阵 A 的所有列都被化为了单位阵的形式。可见,以上过程非常适合于计算机编程求解。至此,我们完成了从 A 到 E 的转换,这个过程中使用了选主元的方法,但没有使用列交换。于是,原来的单位矩阵 E 就变成了,即:

词条图册

更多图册

参考资料

1.

华健,韩学山,王锦旗,陈芳,李超. 改进高斯消元算法在电力系统拓扑结构分析中的应用[J]. 电网技术,2007,(23):57-61.

计算机编程 高斯消元,高斯-若尔当消元法相关推荐

  1. [学习笔记]高斯消元求解两种特殊问题(带状矩阵/主元法)

    本文章是[学习笔记]概率与期望进阶的一部分 由于时间问题我写的比较简略,所以我把大佬的总结链接贴上来了(应该没什么吧qwq). 1 概述 最常见的当然是随机游走问题了- • fu=∑pu,v∗(fv+ ...

  2. [TopCoder 12984] TorusSailing(高斯消元主元法优化)

    文章目录 题面 分析 代码 题面 Vjudge TorusSailing 分析 首先得到一个DP方程dp[i][j]=12(dp[(i+1)mod N][j]+dp[i][(j+1)mod M])+1 ...

  3. 高斯消元(Gaussian elimination)

    我们将分两个部分来说明高斯消去,第一部分是数学方面,第二个部分是如何用 C++ 来实现. 第一部分 数学知识 什么是高斯消去 高斯消元法(或译:高斯消去法),是线性代数规划中的一个算法,可用来为线性方 ...

  4. Rocksdb Ribbon Filter : 结合 XOR-filter 以及 高斯消元算法 实现的 高效filter

    文章目录 前言 XOR-filter 实现原理 xor filter 的构造原理 xor filter 构造总结 XOR-filter 和 ADD-filter对比 XOR-filter 在计算上的优 ...

  5. CF1616F Tricolor Triangles(构造、高斯消元)

    解析 关键性质:三元环合法等价于边权和模3等于0. 还有一个常识:三元环的级别是O(mm)O(m\sqrt m)O(mm​). 证明: 三个点度数都大于 m\sqrt mm​ 的点不超过Cm3=mmC ...

  6. 计算矩阵的逆和行列式的值(高斯消元+LU分解)

    计算矩阵的逆 选主元的高斯消元法 朴素的高斯消元法是将矩阵A和单位矩阵放在一起,通过行操作(或者列操作)将A变为单位矩阵,这个时候单位矩阵就是矩阵A的逆矩阵.从上到下将A变为上三角矩阵的复杂度为O(n ...

  7. BZOJ 2466 [中山市选2009]树(高斯消元)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2466 [题目大意] 给定一棵树,每个节点有一盏指示灯和一个按钮.如果节点的按扭被按了, ...

  8. 解线性方程组——高斯消元の板子

    ATP记得它在很久以前看过一点点高斯消元的东西然后做过一点点题目..但是当时实在是太zz了所以本来就没有很懂这个东西现在更是忘得差不多了.. 所以现在就当重新学一遍了QwQ 一点口胡的解释 高斯消元. ...

  9. 中国石油大学 个人训练赛第五场C:所罗门王的宝藏(高斯消元)

    题目描述 据古代传说记载,所罗门王既是智慧的代表,又是财富的象征.他建立了强大而富有的国家,聚集了大批的黄金象牙和钻石,并把这些价值连城的珍宝藏在一个神秘的地方,这就是世人瞩目的"所罗门王的 ...

最新文章

  1. Centos6.5更换163源 epel源
  2. 《C#精彩实例教程》小组阅读08 -- C#流程控制语句
  3. 分布式主键解决方案----Twitter 雪花算法的原理(Java 版)
  4. 【重磅收藏】智源发布《人工智能的认知神经基础白皮书》
  5. Visual Studio调试之符号文件
  6. java hashmap 输出_JAVA如何把HashMap内容输出到文本文件
  7. iOS Airplay Screen Mirroring 同屏技术详解
  8. Exceptionless 本地部署
  9. python做接口自动化如何输出测试报告-python生成接口自动化测试报告模版
  10. maven将第三方依赖_如何将商业第三方文物整合到您的Maven版本中
  11. 简而言之Java.io:22个案例研究
  12. 解决outlook2013设置错误无法启动
  13. transtion-transform
  14. html5下input的placeholder标签兼容ie9
  15. php之图片上传到服务器的原理
  16. IP切换器是做什么用的?
  17. HCSE设计知识点50个
  18. ThreeJS的性能优化方面
  19. 莫以物喜 、莫以己悲!
  20. Power BI_柱状图中间空一列_横坐标显示

热门文章

  1. android 滑动取值_Android View篇之调整字体大小滑杆的实现
  2. 作文第一次用计算机350,第一次作文350字
  3. SpringBoot学习历程(十一):SpringBoot2.X集成mail发送邮件
  4. vue 动态 Prop
  5. excel填充序列_数据太多输不完?Excel自动填充帮你搞定
  6. python实现提取视频里的语音转换为文字
  7. NetScaler AG自定义用户门户
  8. [功不唐捐-2013]_强哥的无敌异或
  9. 小工具:找出序列中的极值点
  10. uniapp editor编辑器