[AcWing]883. 高斯消元解线性方程组(C++实现)高斯消元解线性方程组模板题

  • 1. 题目
  • 2. 读题(需要重点注意的东西)
  • 3. 解法
  • 4. 可能有帮助的前置习题
  • 5. 所用到的数据结构与算法思想
  • 6. 总结

1. 题目

2. 读题(需要重点注意的东西)

思路:

即模拟线性代数的求通解过程

注:高斯消元中的① ② ③ ④ 对应代码中注释的① ② ③ ④

3. 解法

---------------------------------------------------解法---------------------------------------------------

#include <iostream>
#include <algorithm>
#include <cmath>using namespace std;const int N = 110;
/*  C++浮点数存在误差,不能直接判断0,要判断是否小于一个很小的数,如果小于这个很小的数,就认为是0,如小于1e-6*/
const double eps = 1e-6;int n;
double a[N][N];int gauss()
{int c, r;// c列,r行for (c = 0, r = 0; c < n; c ++ ){int t = r;// ① 找到当前这一列中绝对值最大的一行for (int i = r; i < n; i ++ )if (fabs(a[i][c]) > fabs(a[t][c]))t = i;// 如果这一列中最大值已经是0了,直接continue进入下一列if (fabs(a[t][c]) < eps) continue;// ② 将这行换到最上面// 从当前列c开始交换后面的值到第一行for (int i = c; i < n + 1; i ++ ) swap(a[t][i], a[r][i]);// ③ 将该行第一个数变成1// 将r行中c列后的每一个元素除上一个a[r][c](该行的第一个不为零的元素)for (int i = n; i >= c; i -- ) a[r][i] /= a[r][c];// ④ 用这一行将下面每一行的该列清0for (int i = r + 1; i < n; i ++ )// 如果该行的该列元素不是0才进行操作if (fabs(a[i][c]) > eps)for (int j = n; j >= c; j -- )a[i][j] -= a[r][j] * a[i][c];r ++ ; // r表示消0后最后剩余的行数}// 无解和无穷多解的判断if (r < n){// 如果出现了等号左右一个为0一个非0,则说明无解for (int i = r; i < n; i ++ )if (fabs(a[i][n]) > eps)return 2;// 否则说明有无穷多解return 1;}// 回溯计算每个值xifor (int i = n - 1; i >= 0; i -- )for (int j = i + 1; j < n; j ++ )a[i][n] -= a[j][n] * a[i][j];// 有唯一解return 0;
}int main()
{cin >> n;// 存储线性方程组的增广矩阵for (int i = 0; i < n; i ++ )for (int j = 0; j < n + 1; j ++ )cin >> a[i][j];// 执行高斯消元int t = gauss();// 如果 t = 0,有唯一解if (t == 0){   // %.2lf 保留两位小数for (int i = 0; i < n; i ++ ) printf("%.2lf\n", a[i][n]);}// 如果 t = 1,线性方程组存在无数解else if (t == 1) puts("Infinite group solutions");// 否则无解else puts("No solution");return 0;
}

4. 可能有帮助的前置习题

5. 所用到的数据结构与算法思想

  • 高斯消元

6. 总结

高斯消元解线性方程组模板题,理解思路并背下代码。

[AcWing]883. 高斯消元解线性方程组(C++实现)高斯消元解线性方程组模板题相关推荐

  1. [AcWing]885. 求组合数 I(C++实现)求组合数模板题

    [AcWing]885. 求组合数 I(C++实现)求组合数第一种题型模板题 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6 ...

  2. 高斯消元 AcWing 883. 高斯消元解线性方程组

    高斯消元 AcWing 883. 高斯消元解线性方程组 原题链接 AcWing 883. 高斯消元解线性方程组 算法标签 线性代数 高斯消元 思路 代码 #include<bits/stdc++ ...

  3. AcWing 883. 高斯消元解线性方程组(高斯消元模板)

    先出裸的模板: #include<bits/stdc++.h>using namespace std; const int N = 110; typedef double db; db a ...

  4. 矩阵与高斯消元【矩阵乘法,高斯消元求线性方程组,求行列式】 全网最详,附例题与姊妹篇 一万三千字详解

    (详解)矩阵快速幂详解与常见转移矩阵的构造_秦小咩的博客-CSDN博客_矩阵快速幂转移矩阵 目录 矩阵乘法 矩阵快速幂 伪代码模板 例题一 例题2 例题三 例题四 高斯消元 整形高斯消元 浮点型高斯消 ...

  5. 详解向图像加入高斯白噪声

    记录一下如何向图像中添加高斯白噪声.0均值高斯分布. 通过skimage.util.random_noise添加噪声_aiyaheart的博客-CSDN博客_skimage.util.random_n ...

  6. 【线代】线性方程组:非齐次/齐次方解的个数、系数矩阵的秩、未知数个数的关系?为什么 Ax=0 比 Ax=b 少1个线性无关的解?

    目录 一.起因 二.概念理解 1. Ax=0 基础解系 2. Ax=b 线性无关解的个数 3. 为什么 Ax=0 比 Ax=b 少1个线性无关的解? 三.解题 四.小结 一.起因 上一篇文章主要讲了线 ...

  7. Java设计模式之享元模式(UML类图分析+代码详解)

    大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...

  8. 元宇宙技术普及读本重磅问世 详解十大技术 把脉数字经济 前瞻产业布局

    转自 元宇宙共识圈 王恩东.倪光南.沈昌祥.郑纬民--四位中国工程院院士联袂力荐 倪健中.姚前.李正茂.朱嘉明.肖风.敖然等权威专家一致推荐 汇聚元宇宙技术专家及产业一线佼佼者倾力撰写 元宇宙技术普及 ...

  9. Python(IT峰)笔记07-数据类型详解-元祖的定义与操作,元祖推导式,元祖生成器,yield关键字,字典及定义,字典所支持的操作,zip研所函数,dict转型,字典函数,集合,冰冻集合,集合推导

    1.元祖的定义 一组有序数据的组合,元祖一旦定义不可修改,是不可变数据类型 定义空元祖 变量=() 变量=tuple() 变量=(内容1,内容2,内容3,--)直接赋值 特列:变量=内容1,内容2,内 ...

最新文章

  1. 物体抓取位姿估計算法綜述_基于深度学习的物体抓取位置估计
  2. mysq中文编码问题
  3. linux修改系统时间为北京时间(CentOS)
  4. 12月13日主题讨论日
  5. Linux静态暗Oracle,Oracle静态监听配置示例
  6. 千万别让爸妈帮你P图......
  7. mybatis传递多个参数_深入浅出MyBatis:MyBatis解析和运行原理
  8. java 访问手机存储卡,android实现文件下载并存储进SD卡
  9. java面试准备之---Struts2体系知识点,系统复习,struts2原理,ognl,el支持.---随时更新
  10. 【每日算法Day 81】面试经典题:关于丑数,你真的理解为什么这么算吗?
  11. 应用优化-HTTP缓存
  12. 使用OpenCV进行图片模糊处理(归一化滤波器)
  13. 2023年天津中德应用技术大学专升本飞行器制造工程专业考试大纲
  14. QT UDP通信(单播、广播、组播)
  15. putty、xshell小键盘无法输入
  16. YARN集群的mapreduce测试(一)
  17. dblp搜文献时各颜色含义
  18. MetaWRAP 安装与配置
  19. 生活中人们通过计算机网络进行信息交流,浅谈网络计算机应用
  20. OPC UA JAVA开发笔记(四):数据写入

热门文章

  1. 评价CommonPhotoStar(动感相册)软件的特色(真是太棒了)
  2. 2023关键词:挑战
  3. 浏览器的GreaseMonkey和Trixie插件
  4. 2021-2027全球与中国专用无线网络市场现状及未来发展趋势
  5. IPv6知识概述 - ND协议
  6. 【Unity】Unity 特殊文件夹
  7. 如何实现百度播放器jsp页面中播放高清视频
  8. 部署yum仓库及部署FTP服务
  9. [实用]推荐一些非常棒的前端网站
  10. 鸿蒙小游戏-数字华容道 自定义组件的踩坑记录