当前位置: 首页 > news >正文

[数学]高斯消元

介绍

用处:求解线性方程组

加减消元法和代入消元法

这里引用了高斯消元解线性方程组----C++实现_c++用高斯消元法解线性方程组-CSDN博客

改成了自己常用的形式:

int gauss()
{int c, r; // column, rowfor (c = 1, r = 1; c <= n; c ++){int maxx = r;   // 从对角线元素开始往下遍历这一列for (int i = maxx; i < n; i ++) // 找到该列绝对值最大的元素所在的行号if (fabs(a[i][c]) > fabs(a[maxx][c]))maxx = i;if (fabs(a[maxx][c]) < eps) continue; // 最大绝对值是0,那么这一列剩下的元素全是0,不用管这列。这个地方导致后面不能r ++,也意味着底部将会增加一个系数全0的方程for (int i = c; i <= n+1; i ++) swap(a[maxx][i], a[r][i]); // 把最大绝对值元素所在的行换到未处理行的最上面(即当前要处理的的第r行)for (int i = n+1; i >= c; i --) a[r][i] /= a[r][c];  // 把现在的第r行的数字全部除以一个系数,使得左上角a[r][c]变成1for (int i = r + 1; i <= n; i ++) // 把当前列下的所有数都消成0,要对应两行元素一起变化if (fabs(a[i][c]) > eps) //已经是0的就不用操作了,省点计算for (int j = n+1; j >= c; j --)a[i][j] -= a[r][j] * a[i][c];r ++;}// 上面步骤走完之后,矩阵a[][]扣掉增广的最后一列系数以外,剩下的已经是个上三角阵或者阶梯阵if (r <= n) // 说明有效的方程个数小于n,那要么无穷解,要么无解{for (int i = r; i <= n; i ++){if (fabs(a[i][n+1]) > eps) // a[i][n] = b_i不等于0return 2;  // 无解return 1;  // 都是0 = 0的方程,无穷解}}// 唯一解,从下往上回代,得到方程的解for (int i = n ; i >= 1; i --)for (int j = i + 1; j <= n; j ++)a[i][n+1] -=  a[i][j] * a[j][n+1];return 0;
}

http://www.lryc.cn/news/297987.html

相关文章:

  • 【Linux】gdb调试与make/makefile工具
  • 使用Arcgis裁剪
  • sheng的学习笔记-网络爬虫scrapy框架
  • Qt PCL学习(三):点云滤波
  • Ainx-V0.2-简单的连接封装与业务绑定
  • 《杨绛传:生活不易,保持优雅》读书摘录
  • ChatGPT在肾脏病学领域的专业准确性评估
  • Centos7.9安装SQLserver2017数据库
  • spring boot和spring cloud项目中配置文件application和bootstrap中的值与对应的配置类绑定处理
  • 每天一个数据分析题(一百五十四)
  • Django从入门到放弃
  • C++中类的6个默认成员函数【构造函数】 【析构函数】
  • 06-Java适配器模式 ( Adapter Pattern )
  • C# CAD交互界面-自定义面板集-添加快捷命令(五)
  • Spring boot集成各种数据源操作数据库
  • K8s环境下rook-v1.13.3部署Ceph-v18.2.1集群
  • 【JavaEE】传输层网络协议
  • 08-Java过滤器模式 ( Filter Pattern )
  • ChatGPT高效提问—prompt常见用法(续篇八)
  • 微软.NET6开发的C#特性——接口和属性
  • 容器基础知识:容器和虚拟化的区别
  • 【Linux】vim的基本操作与配置(下)
  • [office] 图文演示excel怎样给单元格添加下拉列表 #知识分享#经验分享
  • 【RT-DETR有效改进】利用SENetV2重构化网络结构 (ILSVRC冠军得主,全网独家首发)
  • 【Linux】学习-进程间通信
  • 45. C++ 字符指针和字符串
  • 如何制作一款3D FPS游戏
  • 人工智能|深度学习——使用多层级注意力机制和keras实现问题分类
  • C语言常见面试题:C语言中如何进行网页开发编程?
  • DevOps落地笔记-20|软件质量:决定系统成功的关键