求一个n元一次方程的解,Gauss消元
求一个n元一次方程的解,Gauss消元
- const Matrix=require('./Matrix.js')
- /*Gauss 消元
- 传入一个矩阵,传出结果
- */
- function Gauss(matrix){
- let l=[];//是否为自由元
- let ans=[];//存储解
- const n=matrix.Column-1;//解的个数
- const EPS=0.00001;
- let res=0,r=0;
- for(let i=0;i<matrix.Column;i++){
- for(let j=r;j<matrix.Row;j++){
- if(Math.abs(matrix.getItem(j,i))>EPS){
- if(j!==r){
- //行交换位置
- for(let k=i;k<=n;k++){
- const temp1=matrix.getItem(j,k)
- const temp2=matrix.getItem(r,k)
- matrix.setItem(j,k,temp2)
- matrix.setItem(r,k,temp1)
- }
- }
- break;
- }
- }
- // console.log(matrix.toString(),r,i)
- if(Math.abs(matrix.getItem(r,i)<EPS)){
- ++res;
- console.log('continue')
- continue;
- }
- //方程相减,消除元
- for(let j=0;j<matrix.Row;j++){
- if(j!==r&&Math.abs(matrix.getItem(j,i))>EPS){
- let tmp=matrix.getItem(j,i)/matrix.getItem(r,i);
- for(let k=i;k<=n;k++){
- const item=matrix.getItem(j,k)-tmp*matrix.getItem(r,k)
- matrix.setItem(j,k,item)
- }
- }
- }
- l[i]=true;
- r++;
- }
- //输出答案
- for(let i=0;i<n;i++){
- if(l[i]){
- for(let j=0;j<n;j++){
- if(Math.abs(matrix.getItem(j,i))>0){
- ans[i]=matrix.getItem(j,n)/a.getItem(j,i)
- }
- }
- }
- }
- return ans;
- }
- //x+y+z=6
- //x+2y+z=8
- //x+2y+3z=15
- const a=new Matrix([
- 1,1,1,4,
- 1,2,1,6,
- 1,2,1,6,
- 1,2,3,10
- ],4,4);
- console.log(Gauss(a))
[ 0, 2, 2 ]
求一个n元一次方程的解,Gauss消元的更多相关文章
- $Gauss$消元
$Gauss$消元 今天金牌爷来问我一个高消的题目,我才想起来忘了学高消... 高斯消元用于解线性方程组,也就是形如: $\left\{\begin{matrix}a_{11}x_1+a_{12}x_ ...
- Gauss 消元(模板)
/* title:Gauss消元整数解/小数解整数矩阵模板 author:lhk time: 2016.9.11 没学vim的菜鸡自己手打了 */ #include<cstdio> #in ...
- hdu 5755(Gauss 消元) &poj 2947
Gambler Bo Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Tota ...
- POJ 1830 开关问题(Gauss 消元)
开关问题 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 7726 Accepted: 3032 Description ...
- poj 1681(Gauss 消元)
Painter's Problem Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5875 Accepted: 2825 ...
- 【Luogu】P3389高斯消元模板(矩阵高斯消元)
题目链接 高斯消元其实是个大模拟qwq 所以就着代码食用 首先我们读入 ;i<=n;++i) ;j<=n+;++j) scanf("%lf",&s[i][j]) ...
- 高斯消元(Gauss消元)
众所周知,高斯消元可以用来求n元一次方程组的,主要思想就是把一个n*(n+1)的矩阵的对角线消成1,除了第n+1列(用来存放b的)的其他全部元素消成0,是不是听起来有点不可思议??! NO NO NO ...
- gauss消元
题意描述:有n个星球,m台望远镜.每台望远镜有一个开始时间和结束时间,但只给出了月.日的信息,没有给出年份,每台望远镜记录了它所观测的星球上发生的各类事件的次数.每类事件持续的时间是恒定的,且不会超过 ...
- POJ1830开关问题——gauss消元
题目链接 分析: 第一个高斯消元题目,操作是异或.奇偶能够用0.1来表示,也就表示成bool类型的方程,操作是异或.和加法没有差别 题目中有两个未知量:每一个开关被按下的次数(0.1).每一个开关的转 ...
随机推荐
- date_default_timezone_set()
date_default_timezone_set("Asia/Shanghai");
- 实践作业4:Web测试实践(小组作业)每日任务记录5
(一)今日任务更新 本次小组作业均已完成! 本组文件最终pdf文件(文件稍大,请耐心等待加载):https://files.cnblogs.com/files/ruanshuo170204/Web测试 ...
- JS中立即执行函数的理解
1.匿名函数不能单独定义,必须进行赋值操作或者立即执行,否则会被JS引擎定义为语法错误 function(){alert(dada);} VM229:1 Uncaught SyntaxError: U ...
- 【转载】redis优化配置和redis.conf说明
转载地址:http://blog.csdn.net/luozhonghua2014/article/details/40568707?utm_source=tuicool&utm_medium ...
- CodeForces 346A Alice and Bob (数学最大公约数)
题意:有一堆数,然后有两个人轮流从中取出两个数,这两个数的差的绝对值不在这个集合,然后把这个数放进这个集合,如果哪个人不能拿了,就是输了,问你谁赢. 析:当时连题意都没看好,以为拿出两个数,就不放回了 ...
- LinearLayout属性用法和源码分析
转载自:http://www.jianshu.com/p/650c3fd7e6ab 一. LinearLayout的属性和用法 LinearLayout对于开发来说,是使用最常用的布局控件之一,但 ...
- SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)(Finchley版本)
在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件.它就是Spring Cloud Config. 一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管 ...
- Windows安装mysql8.0
一.下载并解压 地址:https://dev.mysql.com/downloads/mysql/ 如下图: 下载解压后 二.创建my.ini文件 在D:\mysql\mysql-8.0.13-win ...
- Razor TagHelper实现Markdown转HTML
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 用途 Markdown的语法简洁明了.学习容易,而且功能比纯文本更强,因此有很多人 ...
- Django Manage File
default_storage >>> from django.core.files.base import ContentFile >>> from django ...