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


文章目录

  • 一、算法针对的问题和应用
  • 二、算法介绍
    • 1.算法讲解
    • 2.一些语言的代码实现

以下是本篇文章正文内容


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

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.一些语言的代码实现

【待补充】

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

高斯消元法【Gaussian Elimination】相关推荐

  1. 高斯消元(Gaussian elimination)

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

  2. Matrix 高斯消元Gaussian elimination 中的complete pivoting和partial pivoting

    首先科普下Pivoting的含义 一般翻译为"主元",在对矩阵做某种算法时,首先进行的部分元素.在线性规划的单纯形法中常见. wiki的解释如下: Pivot element (t ...

  3. 高斯消元法java语言设计_高斯消元法(Gauss Elimination)【超详解模板】

    高斯消元法,是线性代数中的一个算法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵. 高斯消元法的原理是: 若用初等行变换将增广矩阵 化为 ,则AX = B与CX = D是同解方程 ...

  4. ACM数学模板1 高斯消元 Gaussian Elimination

    声明: 题目来源: https://www.luogu.com.cn/problem/P3389 https://www.luogu.com.cn/problem/P2447 https://ac.n ...

  5. C#,数值计算,高斯消元法与列主元消元法的源代码及数据动态可视化

    高斯消元法! 一.高斯消元法 Gaussian Elimination 高斯消元法(或译:高斯消去法),是线性代数中的一个常用算法,常用于求解线性方程组和矩阵的逆. 本程序的运行效果: 1.高斯消元法 ...

  6. 计算机数值方法:高斯消元法解线性方程组

    题目 用高斯消元法解下列线性方程组(要求按三位小数计算) 高斯消元法简介 高斯消元法(Gaussian elimination)是求解线性方阵组的一种算法,它也可用来求矩阵的秩,以及求可逆方阵的逆矩阵 ...

  7. [POJ 1222] EXTENDED LIGHTS OUT

    题目 http://acm.pku.edu.cn/JudgeOnline/problem?id=1222 描述 给你一个5行6列的矩阵分别表示30个灯,矩阵map[i][j]为1表示灯亮着, 0表示灯 ...

  8. NTL密码算法开源库——模二整数上的矩阵(mat_GF2)

    2021SC@SDUSC 模二整数上的矩阵(mat_GF2) 矩阵运算 高斯消元 矩阵运算 具体代码 #include <NTL/matrix.h> #include <NTL/ve ...

  9. 【直观详解】线性代数的本质

    转载自:https://charlesliuyx.github.io/2017/10/06/%E3%80%90%E7%9B%B4%E8%A7%82%E8%AF%A6%E8%A7%A3%E3%80%91 ...

最新文章

  1. outlook 未安装信息服务器,Outlook Web Access 未初始化并且在客户端访问服务器上的应用程序日志中记录了事件 ID 64...
  2. handle和handler的理解
  3. 《树莓派渗透测试实战》——2.12 用例子总结以上步骤
  4. cocos2d-x 3.10 显示Box2d 调试视图
  5. Spring Boot学习总结(23)——Spring Boot 实践经验总结
  6. Spring 中注入什么意思?
  7. mybatis分页插件_MyBatis 分页插件 5.2.0 发布
  8. mysql 并发性_MySQL 事务
  9. 读书笔记:《把时间当作朋友》
  10. 【ZBrush笔刷收集】一百多个实用笔刷和Alpah,以及笔刷使用方法,全部免费
  11. 阿里云ECS服务器很多台共用一个公网ip吗?
  12. 用c语言屏蔽鼠标键盘,用VBS屏蔽键盘和鼠标
  13. 入门nosql数据库(非关系型数据库)
  14. 爪哇国新游记之十八----泛型栈类
  15. Java Data truncation:Incorrect xxx value: ‘xxx‘ for column ‘xxx‘ at row 1问题
  16. soul_admin之使用zookeeper数据同步
  17. Linux解压tar.gz文件
  18. RT-Thread—FAL与EasyFlash组件移植
  19. Leetcode917:仅仅反转字母(simple)
  20. WPF弹窗框自定义可自定义样式

热门文章

  1. jquery中的this 到底是什么意思? $(this)
  2. JS如何替换元素内容
  3. remote app tool实现远程连接应用程序
  4. 为什么江西彩礼那么高呢?
  5. 化工安全事故近50%出在检维修环节,人员不安全行为如何化解?
  6. java 下载zip文件_Java以压缩包方式下载文件
  7. 自学Node--回调地狱
  8. Chap.8 总结《CL: An Introduction》 (Vyvyan Evans)
  9. KEPServerEX 6 之 lot Gateway MQTT Clinet 配置使用方式
  10. 2021年度复杂美公司加速区块链产业应用