n元一次线性方程组模板

简介: n元一次线性方程组模板

题目描述


给定 n 个形如a1x1+a2x2+a3x3+⋯+anxn=b 的线性方程组,请你求出 x1,x2,⋯,xn


输入描述


第 1行为一个整数 n

接下来的 n 行每行包含一个 n+1 个整数 a1,a2,⋯,an,b,表示方程对应的系数和值。

1≤n≤100,−104≤∣ai∣,∣b∣≤104,保证对于任意的 i,j,ai,aj 都互质。

输出描述

输出 n 行,每行包含一个数,分别表示x1∼xn

若不存在唯一解,则仅需输出一行 −1。

答案保留 2 位小数。

样例输入

样例输出


1. #include<bits/stdc++.h>
2. using namespace std;
3. double a[105][105];   //存方程组的矩阵
4. double eps = 1e-7;
5. int main(){
6.     int n;
7.     scanf("%d",&n);
8. for(int i=1;i<=n;++i)
9. for(int j=1;j<=n+1;++j)
10.             scanf("%lf",&a[i][j]);    //读方程组,存入矩阵
11. for(int i=1;i<=n;++i){           //枚举列
12.         int max=i;
13. for(int j=i+1;j<=n;++j)      //选出该列最大系数
14. if(fabs(a[j][i])>fabs(a[max][i]))
15.                max=j;
16. for(int j=1;j<=n+1;++j)
17.             swap(a[i][j],a[max][j]); //把最大系数所在的行移到前面
18. if(fabs(a[i][i]) < eps){     //对角线上的主元系数等于0,说明没有唯一解
19.             puts("-1");
20. return 0;
21.         }
22. for(int j=n+1;j>=1;j--)         //把这一行的主元系数变为1
23.             a[i][j]= a[i][j]/a[i][i];  //除法产生精度问题
24. for(int j=1;j<=n;++j){         //消去主元所在列的其他行的主元
25. if(j!=i)    {
26.                 double temp=a[j][i]/a[i][i];
27. for(int k=1;k<=n+1;++k)
28.                     a[j][k] -= a[i][k]*temp;
29.             }
30.         }
31.     }
32. for(int i=1;i<=n;++i)    
33.         printf("%.2f\n",a[i][n+1]); //最后得到简化阶梯矩阵
34. return 0;
35. }
目录
相关文章
|
7月前
|
存储 算法 API
P4779 【模板】单源最短路径(标准版) 题解
本文提供了使用链式前向星存储结构和堆优化的Dijkstra算法模板,用以解决单源最短路径问题,并包含了完整的题解和代码示例。
P4779 【模板】单源最短路径(标准版) 题解
|
10月前
|
存储 数据可视化
R语言计算资本资产定价模型(CAPM)中的Beta值和可视化
R语言计算资本资产定价模型(CAPM)中的Beta值和可视化
|
10月前
|
数据可视化
R语言两阶段最小⼆乘法2SLS回归、工具变量法分析股息收益、股权溢价和surfaces曲面图可视化
R语言两阶段最小⼆乘法2SLS回归、工具变量法分析股息收益、股权溢价和surfaces曲面图可视化
|
10月前
二分图相关模板
二分图相关模板
38 0
|
计算机视觉
挣值管理公式
挣值管理公式。
113 2
|
机器学习/深度学习 自然语言处理 算法
C++模板元模板(异类词典与policy模板)- - - 题目
C++模板元模板(异类词典与policy模板)- - - 题目
77 0
|
机器学习/深度学习 设计模式 C++
C++模板元模板实战书籍讲解第一章(奇特的递归模板式以及小结和题目)
C++模板元模板实战书籍讲解第一章(奇特的递归模板式以及小结和题目)
98 0
|
机器学习/深度学习 自然语言处理 安全
C++模板元模板(异类词典与policy模板)- - - 题目答案
C++模板元模板(异类词典与policy模板)- - - 题目答案
67 0
|
算法
基于matlab的归一化阵列响应幅值极坐标图仿真,对比四阵元,八阵元以及十六阵元
基于matlab的归一化阵列响应幅值极坐标图仿真,对比四阵元,八阵元以及十六阵元
207 0