高斯消元模板
来源:互联网 发布:阿里云镜像是什么 编辑:程序博客网 时间:2024/06/05 19:39
高斯消元:
就是加减消元法。
要消x_i时, 注意一定要选取一个系数最大的, 不然就会出Bug。
还是看懂标比较实在。
#include<cstdio>#include<algorithm>#define abs(a) ((a) < 0 ? -(a) : (a))#define fo(i, x, y) for(int i = x; i <= y; i ++)using namespace std;const int Maxn = 505;int n;double a[Maxn][Maxn], ans[Maxn];void Init() { scanf("%d", &n); fo(i, 1, n) fo(j, 0, n) scanf("%lf", &a[i][j]); //a[i][0]是常数,它和未知数看作同一边,所以求答案时要取反。 }void Solve_equation() { fo(i, 1, n) { int w = i; fo(j, i + 1, n) if(abs(a[w][i]) < abs(a[j][i])) w = j; if(a[w][i] == 0) continue; fo(j, 0, n) swap(a[w][j], a[i][j]); fo(j, 1, n) if(i != j) { double c = a[j][i] / a[i][i]; fo(k, 0, n) a[j][k] -= a[i][k] * c; } } fo(i, 1, n) { if(a[i][i] == 0) continue; //此时如果a[i][0] == 0,x_i为自由元,否则无解。 ans[i] = - a[i][0] / a[i][i]; //取反。 }}void End() { fo(i, 1, n) printf("%lf ", ans[i]); }int main() { Init(); Solve_equation(); End();}
1 1
- 高斯消元模板
- 高斯消元模板
- 高斯消元模板
- 高斯消元模板
- 高斯消元模板
- 高斯消元模板
- 高斯消元模板
- 高斯消元模板
- 高斯消元模板
- 高斯消元模板
- 高斯消元模板
- 高斯消元模板
- 高斯消元模板
- 高斯消元 【模板】
- 高斯消元模板
- 高斯消元模板
- 高斯消元模板
- 高斯消元模板
- React Native 学习笔记(一)
- DiallogFragment的如何设置全屏
- 使用Java Mail发送邮件
- 5个砝码 表示1~121
- iOS10 Keychain 使用注意事项
- 高斯消元模板
- struts2 升级至2.5流程及主要事项
- cusen
- 【cocos2d-x从c++到js】JS与C++的交互2——JS与C++的“函数重载”问题
- 简单遗传算法MATLAB实现
- Git详解
- 进程间通信-1-160815
- CoreData简单教程
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历