消元法解n元一次方程组 c++实现
昨天在找已知三个三维点求三角形外接圆的过程中找到了一篇文章求圆心方法文章连接,文章中提到了一个方法中的一步需要求多元一次方程组。在网上找到很多实现,但是效果都不好,在某些情况下都不能正确的计算,于是决定自己写一个。
一下是代码,主要就是按照手工消元计算的思路实现。
代码还有些不完善的地方,比如没有对于无解的判断,因为足够自己用了嫌麻烦没有写。
#include<iostream>
#include<math.h>
#include<fstream>
#include<stdlib.h>using namespace std;int _tmain(int argc, _TCHAR* argv[])
{double pre = 1e-7;int n,m;cout<<"输入方程组介数:";cin>>n; double a[3][4];double r[100];int i,j,k,l;cout<<"输入增广矩阵:"<<endl;for(i=0;i<n;i++){for(j=0;j<n+1;j++){cin>>a[i][j];}}cout<<"输入方程组介数:";cout<<n<<endl;cout<<"输入增广矩阵:"<<endl;for(i=0;i<n;i++){for(j=0;j<n+1;j++){cout<<a[i][j]<<" ";}cout<<endl;}int posit[100]; for (i = 0; i < 100; i++){posit[i] = -1;}//i代表元,表示的是列for (i = 0; i < n; i++){int zeroCount = 0;//标记i元第一个非零行for (int k = i; k < n; k++){if (abs(a[k][i]) > pre){posit[i] = k; break;}}if (posit[i] == -1){//cout<<"wujie"<<endl;}else{//hangfor (j = i; j < n; j++){if (j != posit[i]){double scale = a[j][i]/a[posit[i]][i];for (k = i; k < n+1; k++){a[j][k] -= scale*a[posit[i]][k];}}}for (l = 0; l < n+1; l++){double t = a[posit[i]][l];a[posit[i]][l] = a[i][l];a[i][l] = a[posit[i]][l];}}}for (i = n-1; i >= 0; i--){for (j = i+1; j < n; j++){a[i][n] -= r[j]*a[i][j];}//zuihouyibuif (abs(a[i][i]) < pre){r[i] = 0.0;}else{r[i] = a[i][n]/a[i][i];}}cout<<"结果 "<<endl;for (i = 0; i < n; i++){cout<<r[i]<<" ";}return 0;
}
消元法解n元一次方程组 c++实现相关推荐
- 【Java例题】4.3 3. 使用Gauss消元法求解n元一次方程组的根,
3. 使用Gauss消元法求解n元一次方程组的根, 举例,三元一次方程组: 0.729x1+0.81x2+0.9x3=0.6867 x1+x2+x3=0.8338 1.331x1+1.21x2+1.1 ...
- 四元一次方程组用计算机怎么解,四元一次方程组
四元一次方程组是在方程中含有四个未知数的方程组. 中文名 四元一次方程组定 义 四元一次方程组基本介绍 编辑 语音 原表达式中a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c ...
- n元n次方程求解c 语言,解n元一次方程
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 解N元一次方程从文件读入整数 N, 然后读入N*( N+1)矩阵,得到解并输出到文件中. int main(){ int ch; printf(&quo ...
- 二元一次方程组、三元一次方程组、四元一次方程组解析解(代码)
文章目录 一.二元一次方程组解析解 二.三元一次方程组解析解 三.四元一次方程组解析解 一.二元一次方程组解析解 clc clearsyms a11 a12 a21 a22 b1 b2 real x ...
- 20221207比对python和C的运行效率(以六元一次方程组为例)【大概300倍】
20221207比对python和C的运行效率(以六元一次方程组为例) 2022/12/7 17:30 C:\20221207比对python和C的运行效率(以六元一次方程组为例)\1000-1000 ...
- 五元一次方程组计算器_人教版初中数学七年级下册列一元一次不等式解实际问题公开课优质课课件教案视频...
9.2 一元一次不等式的应用(1)教案设计 一.教学目标 1.知识与技能目标 :掌握用一元一次不等式解决实际问题的步骤,能够根据具体问题中的数量关系列出一元一次不等式组解决简单的实际问题,并能根据具体 ...
- C++学习日记#1.1——四元一次方程组进行Sor松弛迭代法求解(现已推向n元一次方程组进行Sor松弛迭代法求解)
在这篇文章中,不会有太多的讲解,主要是因为Sor迭代法和高斯-赛德尔(gauss-seidle)迭代法的程序只有迭代公式的一点点区别,当松弛因子为1的时候,Sor迭代法和高斯-赛德尔(gauss-se ...
- 二元一次方程的解和二元一次方程组的解之间的联系的道理
1. 两个同解的二元一次方程构成的二元一次方程组,有无数组解. 当罢两个方程分别同解变形为a1x+b1y=c1.a2x+b2y=c2(其中a1.b1.a2.b2当然都不为零)的形式后,如果a1/a2= ...
- matlab范德蒙德行列式,求四元一次方程组的解这个 我自己算了很久 算不出来,好像得用范德蒙德行列式,希望能给出关键步骤,并把答案写出.怎么不能出图?...
优质解答 用matlab计算就简单了,指令: y=solve('x^3*a+x^2*b+x*c+d=y1','(x+t)^3*a+(x+t)^2*b+(x+t)*c+d=y2','(x+2*t)^3* ...
- 三元一次方程组计算机解法,math 三元一次方程组的解法
math & 三元一次方程组的解法 class 6 math 例题 问题: 1. 已经做好的与没有做好的比例是 5 比 7; 2 再做好51,完成总数的 70%; 3. 问,一共要做多少朵花? ...
最新文章
- w3 html网页元素,HTML Object 元素
- CV之Hog+HamMingDistance:基于Hog提取和汉明距离对比的应用—图像相似度对比之for循环将多个成对图片依次对比并输出相似度
- 【温故知新】CSS学习笔记(盒子边框介绍)
- 使用log4net记录日志到MySQL中 (转)
- 第一章 : javaScript框架分类及主要功能
- Objective-C组合模式(Composite)
- template 模板是怎样通过 Compile 编译的
- 一步步学习SPD2010--第四章节--创建和修改网页(9)--附上母版页
- JAVA 基础 / 第八课:面向对象 / JAVA类的方法与实例方法
- 2022年全新UI聚合支付系统四方源码+修复BUG完美版
- 永磁同步电机转速电流双闭环PI+MTPA+弱磁控制Simulink仿真模型
- 【菜鸟练习】用Java实现高尔顿瓶
- oracle大表新增字段并赋值,oracle批量新增字段 数据赋值应用
- jenkins启动后无法连接网络解决方法
- 计算机专业是不是天坑专业,工科中的三大“天坑”专业,就业前景不太乐观,入坑需谨慎!...
- 微信小程序最简单的轮播图
- 解决Retrying connect to server: 192.168.x.x:8032. Already tried 0 time(s); retry policy is...
- matlab中函数功能汇总(一)——rectangle、bwlabel、regionprops
- 新款苹果手机_入手新款苹果手机半个月,他们这样评价新手机
- 超简单、超实用的统计方法——因子分析