using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace zblGauss1
{
class Program
{
static void Main(string[] args)
{
double[,] a = { { 8.1, 2.3, -1.5, 6.1 }, { 0.5, -6.23, 0.87, 2.3 }, { 2.5, 1.5, 10.2, 1.8 } };
//double[,] a = { { 2, -1, 3, 1 }, { 4, 2, 5, 4 }, { 1, 2, 0, 7 } };
int n = a.GetLength();//数组a的第一维长度,即行数,3
double[] x = new double[n];//存放解的数组,初始值为0 Gauss1(n, a, x);//调用Gauss1 方法计算用顺序高斯消去法计算一元多次方程组
Console.WriteLine("方程的根为:");//输出方程组的根
for (int i = ; i < n; i++)
{
Console.Write("x{0}={1,10:F10}, ", i, x[i]);
}
} //利用顺序高斯Gauss消元法求一元多次线性方程组的解
public static void Gauss1(int n, double[,] a, double[] x)//写了一个静态方法,方法可以在别的方法中直接调用,不必声明对象然后调用对象中的方法了
{
Console.WriteLine("-----------利用顺序高斯Gauss消元法求线性方程组的解----------");
Console.WriteLine("要计算的增广矩阵a为:");
printArray(n, a); //消元过程
for (int k = ; k < n - ; k++)//k=0 1 ,弄出来两个主元即可 ,两次大循环,此称为1层循环 ---主元---
{
for (int i = k; i < n - ; i++)//每个大循环中 要对主元素下面所有元素变化为零,, ---行--- ,i= 0 1 ,此称为2层循环
{
double m = a[i + , k] / a[k, k];//可能用到多次,在此将化零因子放入m中
for (int j = k; j <= n; j++) //2层循环中要对每行所有元素都做相同变化, ---列--- , j=
{
a[i + , j] = a[i + , j] - m * a[k, j];//由于第一行第一列元素不用化零,故首先从i+1开始,同列所以后面都是j,k处为主元行处
}
Console.WriteLine("第{0}个主元第{1}次变换后增广矩阵为:", k, i);
printArray(n, a);
}
Console.WriteLine();
} //回代过程
for (int k = n - ; k >= ; k--) //k=2 1 0 从最后一行开始往前迭代
{
double addResult = 0.0;//用于存放已知的未知数代入相应式子中之和,换一行计算时需要清零,故放在此处
for (int j = k; j < n - ; j++)//j=2 j 最大值为2,每行未知数可能不止一个,故需要遍历已知的未知数并代入
{
addResult = addResult + x[j + ] * a[k, j + ];//k代表计算的行,j+1代表的列,系数与解要对应,故都为 j+1
}
x[k] = (a[k, n] - addResult) / a[k, k];//本行的未知数用本行最右边数-本行已知未知数代入系数之差 再除以本未知数系数
} }
public static void printArray(int n, double[,] a)
{
for (int i = ; i < n; i++)
{
for (int j = ; j <= n; j++)
{
Console.Write("{0,10:F6}", a[i, j]);
}
Console.WriteLine();
} }
}
}

高斯消去法由消元和回代两个过程组成。消元就是对增广矩阵做有限次的初等行变换,使它的系数矩阵部分变为一个上三角矩阵。所用的初等行变换主要有两种:第一种,交换两行的位置;第二种,用一个数乘某一行加到另一行上。

经过n-1次消元后,原增广矩阵变为行阶梯矩阵。

高斯消去法分为顺序高斯消去法和列主元素消去法两种。

顺序高斯消去法:在消元过程中对增广矩阵只做前述的第二种初等行变换就形成了顺序Gauss消去法。

原创, 转载请注明出处,谢谢。

C# 顺序高斯(Gauss)消去法计算一元多次方程组的更多相关文章

  1. C# 列主元素(Gauss)消去法 计算一元多次方程组

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. (原创)列主元Gauss消去法的通用程序

    import numpy as np np.set_printoptions(precision=5) A = np.array([[31., -13., 0., 0., 0., -10., 0., ...

  3. C语言简单计算一元二次方程

    #include <stdio.h> #include <math.h> /*计算一元二次方程的根*/ void Cal(double a,double b,double c) ...

  4. 计算一元一次方程Y=kX+b

    开发过程中用不到一元一次方程吗?非也,iOS开发中经常会遇到根据某个ScrollView动态偏移量的值来实时设置一个View的透明度,你敢说你不用一元一次方程你能搞定? 想把一个动画效果做好,经常会遇 ...

  5. poj 2065 高斯消元(取模的方程组)

    SETI Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 1735   Accepted: 1085 Description ...

  6. python3 练手实例2 解一元二次方程组

    import math def y(): a,b,c=map(float,input('请输入一元二次方程式ax^2+bx+c=0,abc的值,用空格隔开:').split()) d=math.pow ...

  7. 【dfs】【高斯消元】【异或方程组】bzoj1770 [Usaco2009 Nov]lights 燈 / bzoj2466 [中山市选2009]树

    经典的开关灯问题. 高斯消元后矩阵对角线B[i][i]若是0,则第i个未知数是自由元(S个),它们可以任意取值,而让非自由元顺应它们,得到2S组解. 枚举自由元取0/1,最终得到最优解. 不知为何正着 ...

  8. 【高斯消元】【异或方程组】poj1222 EXTENDED LIGHTS OUT

    由于每个点的状态受到其自身和周围四个点的影响,所以可以这样建立异或方程组: 引用题解: http://hi.baidu.com/ofeitian/item/9899edce6dc6d3d2974452 ...

  9. 【高斯消元】【异或方程组】【bitset】bzoj1923 [Sdoi2010]外星千足虫

    Xor方程组解的个数判定: ——莫涛<高斯消元解Xor方程组> 使用方程个数判定:消去第i个未知数时,都会记录距第i个方程最近的第i位系数不为0の方程是谁,这个的max就是使用方程个数. ...

随机推荐

  1. asp.net 分页-自己写分页控件

    去年就发表过asp.net 分页-利用后台直接生成html分页 ,那种方法只是单纯的实现了分页,基本不能使用,那时就想写个自己的分页控件,无奈能力有限.最近有点时间了,就自己做出了这个分页控件.我承认 ...

  2. Prince2的七大原则(7)

    [Prince2科普]Prince2的七大原则(7) 2016-12-12 光环组织级项目管理 按照惯例我们先来回顾一下,PRINCE2七大原则分别是指:持续的业务验证,经验学习,角色与责任,按阶段管 ...

  3. Linux的加密认证功能以及openssl详解

    一.详细介绍加密.解密技术 现在的加密/解密技术主要有三种:对称加密,非对称加密,和单向加密 这三种加密解密技术的组合就是现在电子商务的基础,它们三个有各自最适合的领域,而且所要完成的功能也是不同的, ...

  4. 针对高通BMS的研究 高通电量计

    点击打开链接 高通8064 8974 8926等pm芯片都集成了电量计,估计后续芯片都会一直存在,现在许多项目UI状态栏电池都有百分比显示,所以需要深入分析BMS有助于解决电量方面的BUG. 一: S ...

  5. IE/Firefox/Chrome等浏览器保存Cookie的位置

    IE/Firefox/Chrome等浏览器保存Cookie的位置 原文  http://smilejay.com/2013/04/browser-cookie-location/   前面写了篇长文( ...

  6. php手册杂记

    1, strcmp()是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCI ...

  7. 微信小程序注册页面

    Page Page() 函数用来注册一个页面.接受一个 object 参数,其指定页面的初始数据.生命周期函数.事件处理函数等. object 参数说明: 属性 类型 描述 data Object 页 ...

  8. pycharm上运行django服务器端、ip地址访问

    安装Django  下载Django包,解压缩. CMD 进入解压路径下. 执行:python setup.py install 增加环境变量: C:\Python27\Scripts 测试djang ...

  9. css取消input、select默认样式(手机端)

    IOS端: background-color:transparent; border-color:transparent; andorid端: 仅仅使用上面的代码还不够,可以发现select框在某些浏 ...

  10. Eclipse+Tomcat+MAVEN+SVN项目完整环境搭建

    1.JDK的安装 首先下载JDK,这个从sun公司官网可以下载,根据自己的系统选择64位还是32位,安装过程就是next一路到底.安装完成之后当然要配置环境变量了. ————————————————— ...