求一个n元一次方程的解,Gauss消元

  1. const Matrix=require('./Matrix.js')
  2.  
  3. /*Gauss 消元
  4. 传入一个矩阵,传出结果
  5. */
  6. function Gauss(matrix){
  7. let l=[];//是否为自由元
  8. let ans=[];//存储解
  9. const n=matrix.Column-1;//解的个数
  10. const EPS=0.00001;
  11. let res=0,r=0;
  12. for(let i=0;i<matrix.Column;i++){
  13. for(let j=r;j<matrix.Row;j++){
  14. if(Math.abs(matrix.getItem(j,i))>EPS){
  15. if(j!==r){
  16. //行交换位置
  17. for(let k=i;k<=n;k++){
  18. const temp1=matrix.getItem(j,k)
  19. const temp2=matrix.getItem(r,k)
  20. matrix.setItem(j,k,temp2)
  21. matrix.setItem(r,k,temp1)
  22. }
  23. }
  24. break;
  25. }
  26. }
  27. // console.log(matrix.toString(),r,i)
  28. if(Math.abs(matrix.getItem(r,i)<EPS)){
  29. ++res;
  30. console.log('continue')
  31. continue;
  32. }
  33. //方程相减,消除元
  34. for(let j=0;j<matrix.Row;j++){
  35. if(j!==r&&Math.abs(matrix.getItem(j,i))>EPS){
  36. let tmp=matrix.getItem(j,i)/matrix.getItem(r,i);
  37. for(let k=i;k<=n;k++){
  38. const item=matrix.getItem(j,k)-tmp*matrix.getItem(r,k)
  39. matrix.setItem(j,k,item)
  40. }
  41.  
  42. }
  43. }
  44. l[i]=true;
  45. r++;
  46. }
  47. //输出答案
  48. for(let i=0;i<n;i++){
  49. if(l[i]){
  50. for(let j=0;j<n;j++){
  51. if(Math.abs(matrix.getItem(j,i))>0){
  52. ans[i]=matrix.getItem(j,n)/a.getItem(j,i)
  53. }
  54. }
  55. }
  56. }
  57. return ans;
  58. }
  59.  
  60. //x+y+z=6
  61. //x+2y+z=8
  62. //x+2y+3z=15
  63.  
  64. const a=new Matrix([
  65. 1,1,1,4,
  66. 1,2,1,6,
  67. 1,2,1,6,
  68. 1,2,3,10
  69. ],4,4);
  70. console.log(Gauss(a))

[ 0, 2, 2 ]

求一个n元一次方程的解,Gauss消元的更多相关文章

  1. $Gauss$消元

    $Gauss$消元 今天金牌爷来问我一个高消的题目,我才想起来忘了学高消... 高斯消元用于解线性方程组,也就是形如: $\left\{\begin{matrix}a_{11}x_1+a_{12}x_ ...

  2. Gauss 消元(模板)

    /* title:Gauss消元整数解/小数解整数矩阵模板 author:lhk time: 2016.9.11 没学vim的菜鸡自己手打了 */ #include<cstdio> #in ...

  3. hdu 5755(Gauss 消元) &poj 2947

    Gambler Bo Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Tota ...

  4. POJ 1830 开关问题(Gauss 消元)

    开关问题 Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 7726   Accepted: 3032 Description ...

  5. poj 1681(Gauss 消元)

    Painter's Problem Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5875   Accepted: 2825 ...

  6. 【Luogu】P3389高斯消元模板(矩阵高斯消元)

    题目链接 高斯消元其实是个大模拟qwq 所以就着代码食用 首先我们读入 ;i<=n;++i) ;j<=n+;++j) scanf("%lf",&s[i][j]) ...

  7. 高斯消元(Gauss消元)

    众所周知,高斯消元可以用来求n元一次方程组的,主要思想就是把一个n*(n+1)的矩阵的对角线消成1,除了第n+1列(用来存放b的)的其他全部元素消成0,是不是听起来有点不可思议??! NO NO NO ...

  8. gauss消元

    题意描述:有n个星球,m台望远镜.每台望远镜有一个开始时间和结束时间,但只给出了月.日的信息,没有给出年份,每台望远镜记录了它所观测的星球上发生的各类事件的次数.每类事件持续的时间是恒定的,且不会超过 ...

  9. POJ1830开关问题——gauss消元

    题目链接 分析: 第一个高斯消元题目,操作是异或.奇偶能够用0.1来表示,也就表示成bool类型的方程,操作是异或.和加法没有差别 题目中有两个未知量:每一个开关被按下的次数(0.1).每一个开关的转 ...

随机推荐

  1. date_default_timezone_set()

    date_default_timezone_set("Asia/Shanghai");

  2. 实践作业4:Web测试实践(小组作业)每日任务记录5

    (一)今日任务更新 本次小组作业均已完成! 本组文件最终pdf文件(文件稍大,请耐心等待加载):https://files.cnblogs.com/files/ruanshuo170204/Web测试 ...

  3. JS中立即执行函数的理解

    1.匿名函数不能单独定义,必须进行赋值操作或者立即执行,否则会被JS引擎定义为语法错误 function(){alert(dada);} VM229:1 Uncaught SyntaxError: U ...

  4. 【转载】redis优化配置和redis.conf说明

    转载地址:http://blog.csdn.net/luozhonghua2014/article/details/40568707?utm_source=tuicool&utm_medium ...

  5. CodeForces 346A Alice and Bob (数学最大公约数)

    题意:有一堆数,然后有两个人轮流从中取出两个数,这两个数的差的绝对值不在这个集合,然后把这个数放进这个集合,如果哪个人不能拿了,就是输了,问你谁赢. 析:当时连题意都没看好,以为拿出两个数,就不放回了 ...

  6. LinearLayout属性用法和源码分析

    转载自:http://www.jianshu.com/p/650c3fd7e6ab   一. LinearLayout的属性和用法 LinearLayout对于开发来说,是使用最常用的布局控件之一,但 ...

  7. SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)(Finchley版本)

    在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件.它就是Spring Cloud Config. 一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管 ...

  8. Windows安装mysql8.0

    一.下载并解压 地址:https://dev.mysql.com/downloads/mysql/ 如下图: 下载解压后 二.创建my.ini文件 在D:\mysql\mysql-8.0.13-win ...

  9. Razor TagHelper实现Markdown转HTML

    Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 用途 Markdown的语法简洁明了.学习容易,而且功能比纯文本更强,因此有很多人 ...

  10. Django Manage File

    default_storage >>> from django.core.files.base import ContentFile >>> from django ...