博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P3389 【模板】高斯消元法
阅读量:7010 次
发布时间:2019-06-28

本文共 2155 字,大约阅读时间需要 7 分钟。

题目背景

Gauss消元

题目描述

给定一个线性方程组,对其求解

输入输出格式

输入格式:

 

第一行,一个正整数 nn

第二至 n+1n+1行,每行 n+1n+1 个整数,为a_1, a_2 \cdots a_na1​​,a2​​an​​ 和 bb,代表一组方程。

 

输出格式:

 

共n行,每行一个数,第 ii行为 x_ixi​​ (保留2位小数)

如果不存在唯一解,在第一行输出"No Solution".

 

输入输出样例

输入样例#1:
31 3 4 51 4 7 39 3 2 2
输出样例#1:
-0.975.18-2.39

说明

1 \leq n \leq 100, \left | a_i \right| \leq {10}^4 , \left |b \right| \leq {10}^41n100,ai​​104​​,b104​​

 

本来想深入的研究一下矩阵来着,,

结果不知道怎么着的研究到高斯消元上了,。。。。

高斯消元法真是一个神(bao)奇(li)的的东西、

本来想仔细整理整理来着,结果发现我不会在博客园里写矩阵,

1 #include
2 #include
3 #include
4 #include
5 //#define Matrix double 6 using namespace std; 7 const int MAXN=101; 8 typedef double Matrix[MAXN][MAXN]; 9 inline void read(int &n)10 {
char c=getchar();bool flag=0;11 while(c<'0'||c>'9') c=='-'?flag=1,c=getchar():c=getchar();12 while(c>='0'&&c<='9') n=n*10+c-48,c=getchar();flag==1?n=-n:n=n;}13 int n;14 Matrix a;15 void debug()16 {17 /*printf("********************************\n");18 for(int i=1;i<=n;i++)19 {20 for(int j=1;j<=n+1;j++) printf("%.2lf ",a[i][j]);21 printf("\n");22 }*/23 }24 void gauss_elimination(int n)25 {26 int r;// 将要选择的最大值 27 for(int i=1;i<=n;i++)28 {29 r=i;30 for(int j=i+1;j<=n;j++)// 枚举后面的行 31 if(fabs(a[j][i])>fabs(a[r][i])) r=j;32 debug();33 if(r!=i) swap(a[r],a[i]);34 debug();35 if(!a[i][i])36 {37 printf("No Solution\n");38 return;39 }40 for(int k=i+1;k<=n;k++)// 与后面的进行消元41 {42 double f=a[k][i]/a[i][i];//模拟人工消元 43 for(int j=i;j<=n+1;j++) a[k][j]-=f*a[i][j];44 } 45 debug();46 }47 debug();48 for(int i=n;i>=1;i--)49 {50 debug();51 for(int j=i+1;j<=n;j++)52 a[i][n+1]-=a[j][n+1]*a[i][j];53 a[i][n+1]/=a[i][i];54 }55 for(int i=1;i<=n;i++)56 printf("%.2lf\n",a[i][n+1]);57 }58 int main()59 {60 read(n);61 for(int i=1;i<=n;i++)62 for(int j=1;j<=n+1;j++)63 scanf("%lf",&a[i][j]);64 gauss_elimination(n); 65 return 0;66 }

 

转载地址:http://znttl.baihongyu.com/

你可能感兴趣的文章
Android -- 使用主题配置文件,去掉程序启动界面的短暂黑屏
查看>>
Oracle 常用操作【02】数据库特性
查看>>
linux下C语言实现的内存池【转】
查看>>
理解 OpenStack 高可用(HA) (6): MySQL HA
查看>>
Linux系统的快速启动机制(内核切换) 【转】
查看>>
Python 判断文件是否存在,不存在则将名称写入指定文件
查看>>
Azkaban是什么?(一)
查看>>
AgileEAS.NET平台开发实例-药店系统-数据库还原
查看>>
android JNI 简单demo(2)它JNI demo 写
查看>>
Android 中PopupWindow使用
查看>>
你真的会玩SQL吗?EXISTS和IN之间的区别
查看>>
[Linux] 守护进程和守护线程
查看>>
PostgreSQL 语法分析中所使用的List
查看>>
颜色模式中8位,16位,24位,32位色彩是什么意思?会有什么区别?计算机颜色格式( 8位 16位 24位 32位色)【转】...
查看>>
oracle的rollup
查看>>
数据库反范式~有时候多点冗余是好事!
查看>>
PostgreSQL中的数组与Any
查看>>
如何给wordpress的编辑器添加一个自定义按钮,并且实现插入功能
查看>>
[外挂2] 鼠标单击事件
查看>>
No 'Access-Control-Allow-Origin' header is present on the requested resource解决办法
查看>>