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. ajax获取其他网站接口信息

    MXS&Vincene  ─╄OvЁ  &0000023─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好, ...

  2. xcode 中 的工程模板

    基于视图的应用程序(view-based application) 应用程序如果仅使用一个视图,应该使用这个模板.一个简单的视图控制器会管理应用程序的主视图,而界面布置则使用一个Interface B ...

  3. mac攻略(三) -- apache站点配置

    Mac OS X 中默认有两个目录可以直接运行你的 Web 程序, 一个是系统级的 Web 根目录:/Library/WebServer/Documents/ 此根目录我们平常使用地址http://l ...

  4. [Python]处理windows下多级目录文件,上传到Linux服务器

    #-*- coding: utf-8 -*- __author__ = 'tsbc' import sys reload(sys) sys.setdefaultencoding('utf-8') im ...

  5. (转)MySQL命令行--导入导出数据库

    MySQL命令行导出数据库:   1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Se ...

  6. 批量运行R包

    #批量运行包:all.pcg <- c("data.table","ggplot2","rmarkdown","tidyr& ...

  7. cas的http配置和rmi远程调用

    1.cas配置http请求(服务端) 1) 解压cas-server-3.4.4-release.zip将modules目录下的cas-server-webapp-3.4.4.war改名称为cas.w ...

  8. java 字符串split有很多坑,使用时请小心!!

    System.out.println(":ab:cd:ef::".split(":").length);//末尾分隔符全部忽略 System.out.print ...

  9. Doolitter分解 三对角矩阵分解 拟三对角分解

    #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> # ...

  10. Apache Solr 访问权限控制

    Current state of affairs SSL support was added in version 4.2 (SolrCloud v4.7). Protection of Zookee ...