高斯消元法【Gaussian Elimination】

关键词:高斯消元法,变治法



以下是本篇文章正文内容


一、算法针对的问题和应用

1.应用一:解线性方程组
2.应用二:计算一个矩阵的逆
3.应用三:计算矩阵的行列式

二、算法介绍

1.算法讲解

(1)基本思路:
把n个线性方程构成的n元联立方程组变换为一个等价的方程组(方程的解不变),该方程组有着一个上三角形的系数矩阵,该系数矩阵的主对角线下方元素全部为0,然后进行反向替换,从xn,逐个求出原方程组的解。流程见下图:
在这里插入图片描述
(2)求解线性方程组的两个阶段。
【前向消失】
在这里插入图片描述
伪代码为:
在这里插入图片描述
【前向消失的改进】
上述算法仍存在:
问题一:并不总是正确
1>比例因子A[j,i]/A[i,i]的除0操作没能避免。
–>用第i行下面的某行与第i行进行交换,该行的第i个元素不为0
在这里插入图片描述

2>比例因子A[j,i]/A[i,i]太大,导致A[j,k]的新值会因为舍入误差而歪曲
–>部分选主元法:每次都去找第i列系数的绝对值最大的行,然后把它作为第i次迭代的起点,保证比例因子的绝对值永远不会大于1
在这里插入图片描述

问题二:最内层循环的效率太低
改进算法:
在这里插入图片描述

【反向替换】
首先从最后一个方程中可以立即求出xn的值;然后可以把这个值代入到倒数第二个方程来求xn-1,依此类推,直到把最后n-1个变量的已知值代入第一个方程,这样九求出了x1的值。
在这里插入图片描述
(3)实现高斯消元的另一种路径——LU分解
A:初始矩阵
L:下三角且主对角线为1的矩阵
U:上三角矩阵

已知:A=LU
实现过程:
Ax=b
LUx=b
令y=Ux
Ly=b =>易求出y
代入,Ux=y =>易求的x

在这里插入图片描述
(4)计算一个矩阵的逆
退化矩阵/奇异矩阵:不存在逆的矩阵
非退化矩阵:存在逆的矩阵
判断:当且仅当矩阵的某一行是其他行的一个线性组合时,该矩阵是一个退化矩阵。
用高斯消元法判断是否是退化矩阵:
如果高斯消元法生成的上三角矩阵的主对角线包含0,那该矩阵就是退化矩阵。
求一个非退化的n阶方阵A的逆矩阵:
在这里插入图片描述
(5)计算矩阵的行列式
在这里插入图片描述


2.一些语言的代码实现

【待补充】

本文是作者在学习数据结构、算法设计与分析课程时,结合自己理解所写的,如有错误或补充,请在评论区留言。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值