高斯消元

简介#

高斯消元 主要用于求线性方程组,也可以求矩阵的秩、矩阵的逆

时间复杂度为 O(n3)

思想:初中解方程的加减消元,最后得到类似 kx=b ,然后逐一往回带,求出其他的未知数

解方程#

{3x+2y+z=6  2x+2y+2z=4  4x2y2z=2  

x

① 式除以 3,然后让 ② - 2 * ①,③ - 4 * ① 得到

{x+23y+13z=2  23y+34z=0  143y103z=6  

然后让 ⑤ 除以 23, 然后让 ⑥ - ⑤ * (143)

得到

{y+2z=0    183z=6  

由 ⑧ 得 z=1

然后再把 z=1 代入 ⑦ 得到 y=2

然后把 z=1,y=2 代入 ④ 得到 x=1

矩阵运算消元#

把上面的柿子的系数放在矩阵中

[xyzval321622244222]

左边是系数,右边是结果

然后再这个矩阵中进行上述操作

消去 x

[xyzval12313202343001431036]

消去 y

[xyzval1231320120001836]

解得

[121]

判断解得情况#

  • 无解:若有一行系数全是 0,且 val 不为 0,那么方程无解

[xyzval12313201200007]

  • 有多个解,有多行系数和 val 都为 0

[xyzval12313200000000]

优点:可以判断无解,有无数解情况

缺点:需要回代

高斯-约当消元

高斯消元是执行到第 i 个方程 xk 去消后面的 xk , 而约当消元是同时消掉前面的 xk

初始形式:

[xyzval321622244222]

最终形式

[xyzval100?010?001?]

呈对角线形式

优点:省掉了回代过程

缺点:只能判断是否有唯一解,不能判断是否有解

P3389 【模板】高斯消元法

code

写在最后#

鸣谢Alex_McAvoy 提供栗子

posted @   Dita  阅读(140)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示
主题色彩