最近几天学习高等代数老师说要写个程序算行列式的结果,闲来无事就简单写了一下。

不多说了,上代码


 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace Nrow_culmn
{
class Program
{
//计算行列式 计算复杂度为O(n的3次方)
public static double jlength = ;
static void Main(string[] args)
{
//double[,] row_culmn = { { 3, 1, -1, 1 }, { 1, -1, 1, 2 }, { 2, 1, 2, -1 }, { 1, 0, 2, 1, } };
//行列式二维数组
double[,] row_culmn = { { , , , , }, { , , , , }, { , , , , }, { , , , , }, { , , , , } }; //计算行列式的阶数
jlength = Math.Sqrt(row_culmn.Length); Console.WriteLine("原始行列式为:");
for (int i = ; i < jlength; i++)
{
for (int j = ; j < jlength; j++)
{
Console.Write(row_culmn[i, j].ToString() + " ");
}
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
int row = ;//行 数组行列下标从0开始 int rowup = ;//向右移动的偏移列(相对行) for (row = ; row < jlength - ; row++)
{
//递归算法将行列式计算为做下三角全为0
ValueRow_Culmn(ref row_culmn, ref row, rowup);
rowup++;
}
//计算行列式的值double值不能默认等于0 否则会所有值都为零
double a = ;
for (int i = ; i < jlength; i++)
{
Console.WriteLine("第" + (i + ) + "行 第" + (i + ) + "列" + row_culmn[i, i]);
a *= row_culmn[i, i];
}
//格式化输出
Console.WriteLine("最后得:");
Console.WriteLine(string.Format("{0:F}",a));
Console.ReadLine(); } public static void ValueRow_Culmn(ref double[,] rc, ref int row, int rowup)
{
//double jlength = Math.Sqrt(rc.Length);
double k;//与列相乘的系数
if (rowup < jlength)
{
//计算行列式系数(第i行比第i-1行)
k = -rc[rowup, row] / rc[row, row];
//通过相乘系数 计算第i行的值
for (int j = ; j < jlength; j++)
{
rc[rowup, j] += rc[row, j] * k;
} Console.WriteLine();
Console.WriteLine();
//打印计算之后的行列式 for (int m = ; m < jlength; m++)
{
for (int j = ; j < jlength; j++)
{
Console.Write(rc[m, j].ToString() + " ");
}
Console.WriteLine();
} Console.WriteLine();
//向下移动行
rowup++;
//递归调用方法函数
ValueRow_Culmn(ref rc, ref row, rowup);
}
else
{ return; }
} }
}

 

行列式计算(C#)的更多相关文章

  1. n阶行列式计算----c语言实现(完结)

    花了半天时间,写了这个n阶行列式计算的程序,应该算是比较优美吧,有很多地方多次做了优化,程序占用内存不是很大,要是说小吧,也不合适,因为里边有一个递归,而且递归的深度还比较深.时间复杂度具体没有细看, ...

  2. MyMathLib系列(行列式计算)

    靠人不如靠己,准备做自己得MathLib,在学校的时候,就想过把数学数理的东西都计算机化.但一直没有时间去做这件事情,如今认为空余 时间比較闲,就做做这件事情,先从线性代数開始,毕竟这里面的非常多算法 ...

  3. MyMathLib系列(行列式计算2)

    /// <summary> /// 行列式计算,本程序属于MyMathLib的一部分.欢迎使用,參考,提意见. /// 有时间用函数语言改写,做自己得MathLib,里面的算法经过验证,但 ...

  4. Java实现行列式计算

    前天我看线代书,看到行列式,发现是个递归的式子,恰巧又正在学java,产生写程序实现的想法.写了两个小时,觉得实现了,写了个行列式放进去测试,我放的是 这个行列式,经过程序计算后发现结果是0.我以为我 ...

  5. python 行列式计算

    N= #声明2x2的数组arr并将所有元素赋值为 None arr=[[None] * N for row in range(N)] print('|a1 b1|') print('|a2 b2|') ...

  6. HDU 5852 Intersection is not allowed! ( 2016多校9、不相交路径的方案、LGV定理、行列式计算 )

    题目链接 题意 : 给定方格中第一行的各个起点.再给定最后一行与起点相对应的终点.问你从这些起点出发到各自的终点.不相交的路径有多少条.移动方向只能向下或向右 分析 : 首先对于多起点和多终点的不相交 ...

  7. n阶行列式计算

    1.化为上下三角 该类型的矩阵.行列式在之前写过(https://www.cnblogs.com/wangzheming35/p/12906624.html),也建议记住这个行列式的结论. 当然不仅仅 ...

  8. HDU_2036——多边形面积,行列式计算

    Problem Description “ 改革春风吹满地, 不会AC没关系; 实在不行回老家, 还有一亩三分地. 谢谢!(乐队奏乐)”话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也 ...

  9. Python实现行列式计算

    数学公式: 代码: # 逆序数 def getInversion(numlist): count = 0 for i in range(1,len(numlist)): subscript = num ...

随机推荐

  1. JS-DOM基础

    1     JS-DOM 全称:document object model 1.1 获取页面元素 getElementsByTagName():无论元素的数量是多少,都会存入数组 getElement ...

  2. 提升你的开发效率,10 个 NPM 使用技巧

    对于一个项目,常用的一些npm简单命令包含的功能有:初始化一个文件夹(npm init),下载npm模块(npm install),创建测试(npm test) 和自定义脚本(npm run).但是, ...

  3. Bootstrap <基础二十九>面板(Panels)

    Bootstrap 面板(Panels).面板组件用于把 DOM 组件插入到一个盒子中.创建一个基本的面板,只需要向 <div> 元素添加 class .panel 和 class .pa ...

  4. C++小项目:directx11图形程序(一):主框架

    最近在学习DIRECTX11,在学习过程中编写了一个程序,到现在发现这个程序也有几行代码了,结构还算整齐,就想把这个程序分享出来,其中涉及到了C++程序的架构,windows窗口程序编写,和Direc ...

  5. Switch图形练习

    //package IfAndSwitchs;import java.util.Scanner; public class Mianji { public static void main(Strin ...

  6. 关于ZendFramework环境的配置

    在运用PHP进行网站建设的时候,使用框架能够很好的提高编程效率,PHP语言的框架很多,现在普遍使用的是由Zend公司开发的ZendFramework框架,本篇文章是关于ZendFramework的运行 ...

  7. Python3学习(一)-基础、数据类型、变量、字符串和编码、list&tuple、if、for、while、dict、set、函数与参数

    ##廖雪峰py3笔记 ## '//'这是获得相除后的整数部分 ##a = 10//3 ##print (a) ## '/'获得相除后的结果,为浮点数,结果能整除也也是浮点数 ##b = 10/3 ## ...

  8. linux内核学习之六 进程创建过程学习

    一 关于linux进程概念的补充 关于进程的基本概念这里不多说,把自己的学习所得作一些补充: 1. 在linux内核中,系统最多可以有64个进程同时存在. 2.linux进程包含的关键要素:一段可执行 ...

  9. Oracle中SQL查询表字段基本信息、主键、外键(转)

    select utc.column_name, utc.data_type, utc.data_length, utc.data_precision, utc.data_Scale, utc.null ...

  10. JAVA多线程超时加载当网页图片

    先上图: 这一次没有采取正则匹配,而采取了最简单的java分割和替代方法进行筛选图片 它能够筛选如下的图片并保存到指定的文件夹 如: “http://xxxx/xxxx/xxx.jpg” 'http: ...