列主元消元法比起高斯消元增加了每次化简时取第一列最大元素作为主元
即:

题目:

代码:

#include <iostream>
#include <cstdio>
#include <queue>
#include <cstring>
#include <cmath>
using namespace std;
#define ll long long
const int maxn = 205;
const int INF = 0x3f3f3f;void _pri(double x, long long n, bool f) { //预处理数字,保留位数,是否需要四舍五入double _ma = 1.0, _mi = 1.0, _t = 10.0;long long _n = n, i = 0, cnt = 0;while(_n) {if(_n % 2 == 1) _ma *= _t, _mi /= _t;_n >>= 1, _t *= _t;}if(x < 0) printf("-"), x = -x;if(x < 1) printf("0.");if(x < _mi) {for(i = 0; i < n; ++i) printf("0");return;}double t = 1.0, _x = x;if(x >= 1)while(_x >= 1)_x /= 10, cnt++;if(x < 1)while(_x < 1) {if(_x < 0.1) printf("0");_x *= 10;}while(_x < _ma) _x *= 10;long long a = (long long)_x;if(f == 1 && cnt <= n && a % 10 >= 5)if(a > 0) a += 10;else if(a < 0) a -= 10;a /= 10;char ans[105]; _n = 0;while(a) {ans[_n++] = a%10 + '0';a /= 10;}for(i = 0; i < _n; ++i) {if(i == cnt && cnt != 0) printf(".");printf("%c",ans[_n - i - 1]);}
}double a[1005 * 1005] = {0.0}, b[1005] = {0.0};
double x[1005] = {0.0};
int n = 0, n2 = 0;inline void IN() { //输入int t = 0;while(scanf("%lf",&a[++t]) != EOF) {}while(n*(n+1) != (t-1)) {n++;}n2 = n * n;
}inline double *A(int i, int j) {return &a[j + (i-1) * n];
}inline double *B(int j) {return &a[j + n2];
}void _swap(int a, int b) {for(int i = 1; i <= n; ++i) {swap(*A(a,i), *A(b,i));}swap(*B(a), *B(b));
}inline void SIM() { //化简为三角行列式for(int k =  1; k <= n; ++k) {double ma = abs(*A(k,k)), _i = k;for(int i = k+1; i <= n; ++i) {if(abs(*A(i,k)) > ma) {ma = abs(*A(i,k));_i = i;}}_swap(_i,k);for(int i = k+1; i <= n; ++i) {double mik = *A(i,k) / *A(k,k);for(int j = k; j <= n; ++j) {*A(i,j) -= *A(k,j) * mik;}*B(i) -= mik * *B(k);}}
}inline void _Pri(){for(int i = 1; i <= n; ++i) {for(int j = 1; j <= n; ++j) {printf("%lf ", *A(i,j));}printf("\n");}for(int i = 1; i <= n; ++i) {printf("%lf ", *B(i));}printf("\n");
}inline void ANS() { //迭代求解for(int i = n; i >= 1; --i) {x[i] = *B(i);for(int j = i+1; j <= n; ++j) {x[i] -= *A(i,j) * x[j];}x[i] /= *A(i,i);}
}inline void OUT() {for(int i = 1; i <= n; ++i) {_pri(x[i],(long long)5,1); printf("\n\n");}
}int main() {IN();SIM();ANS();OUT();return 0;
}

计算方法 - 列主元消元法(线性方程组的解法)相关推荐

  1. matlab算线性方程解,MATLAB计算方法3解线性方程组计算解法.pptx

    第三章线性方程组数值解法解线性方程组 §3.1 直接法一. Gauss 消去法设 有消 元: 用Matlab实现顺序Gauss消去法在Matlab程序编辑器中输入:function x=nagauss ...

  2. 列主元消去法例题详解_高斯列主元消元法解方程组的步骤

    高斯列主元消元法求解线性方程组 AX=b 的简要步骤                                      ...

  3. C#,数值计算,高斯消元法与列主元消元法的源代码及数据动态可视化

    高斯消元法! 一.高斯消元法 Gaussian Elimination 高斯消元法(或译:高斯消去法),是线性代数中的一个常用算法,常用于求解线性方程组和矩阵的逆. 本程序的运行效果: 1.高斯消元法 ...

  4. 带参数的线性方程组怎么用计算机解,带参数的线性方程组的解法.docx

    带参数的线性方程组的解法.docx 带参数的线性方程组的解 法 左连 翠 济南大学 侯淑 轩 基础 部 摘要 对带参数的 线性方程组的解法进行了系统的研 讨 , 分类给出了具体的解 法 , 并对一类复 ...

  5. 高斯列主元消元法求解线性方程组

    一.高斯消去法的基本思想     例1. 解方程组:                  解 方程组矩阵形式为: AX=b ,其中:               第一步,消元过程:对增广矩阵进行消元 即 ...

  6. 【计算方法】解线性方程组的直接法

    0.WARNINGS 本文章主要适用于计算方法代码的实现参考,由于本人是python究极小白,为了实验课速成了一些内容,因此会包含较多的暴力解法orz,如有代码错误.可优化的地方欢迎各位大佬指出,感激 ...

  7. 【高等代数】线性方程组的解法

    Gauss - Jordan 消元法 先化为行阶梯形,再从最下面的一个方程向上回代. 或者化为行阶梯形,再化为行最简形,然后直接写出解. 几个重要结论 nnn元线性方程组有解 ⇔\Leftrighta ...

  8. 稀疏线性方程组求解法

    稀疏线性方程组的求解是对自然科学和社会科学中许多实际问题进行数值模拟时的关键技术之一.在高层建筑.桥梁.水坝.防洪堤的结构设计中,需对变形与应力情况进行模拟:在油气资源探测与分析.数值天气预报.飞行器 ...

  9. 线性方程组数值解法(2)

    LU分解法: #include<stdio.h> #include<stdlib.h> #include<math.h> #define n 6//n为矩阵维数 / ...

最新文章

  1. WebStorm 2018版本破解方法
  2. cocos2d-x android 入门
  3. POJ_1151 Atlantis(线段树)
  4. cookie、session、sessionid 与jsessionid
  5. 即日起,正式进入编程世界!
  6. Python3实现汉诺塔问题
  7. 大android 平板,15.6英寸安卓大平板? 阿芙罗S1评测
  8. 字节对齐 pragma
  9. sap系统webservice接口开发
  10. Win11文件类型怎么改?Win11修改文件后缀的方法
  11. 易语言从c盘开始搜索文件夹,易语言递归寻找文件及文件夹
  12. 诛仙3服务器查询系统,《诛仙3》4月1日服务器数据互通公告
  13. 产品设计需求分析研究
  14. 7-62 贴“福”字
  15. 软考中级软件设计师--7.设计模式
  16. 从SUV到MPV,岚图难跨高端
  17. 二项分布的期望和方差
  18. 关于Type-C扩展坞干扰路由器交换机的解决方案
  19. Ubuntu系统下增加中文字体
  20. Verilog系统函数

热门文章

  1. 计算机一级及wps试题,历年计算机一级考试WPS试题及答案
  2. cocos lua 接入google Play 排行榜
  3. C#上位机——倒计时计时器
  4. Excel VBA编写excel数据汇总宏命令
  5. mmdetection/mmdetection3d多机多卡训练
  6. __stack_chk_fail问题分析
  7. 黎曼猜想为何如此重要?若被证明将增加一千多条数学定理
  8. python django聊天系统
  9. CMD学习笔记——rename、del和attrib
  10. libraries 和android runtime之间的关系,《Android Studio应用开发实战详解》——第1章,第1.3节Android系统架构...