行列式计算(C#)
最近几天学习高等代数老师说要写个程序算行列式的结果,闲来无事就简单写了一下。
不多说了,上代码
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#)的更多相关文章
- n阶行列式计算----c语言实现(完结)
花了半天时间,写了这个n阶行列式计算的程序,应该算是比较优美吧,有很多地方多次做了优化,程序占用内存不是很大,要是说小吧,也不合适,因为里边有一个递归,而且递归的深度还比较深.时间复杂度具体没有细看, ...
- MyMathLib系列(行列式计算)
靠人不如靠己,准备做自己得MathLib,在学校的时候,就想过把数学数理的东西都计算机化.但一直没有时间去做这件事情,如今认为空余 时间比較闲,就做做这件事情,先从线性代数開始,毕竟这里面的非常多算法 ...
- MyMathLib系列(行列式计算2)
/// <summary> /// 行列式计算,本程序属于MyMathLib的一部分.欢迎使用,參考,提意见. /// 有时间用函数语言改写,做自己得MathLib,里面的算法经过验证,但 ...
- Java实现行列式计算
前天我看线代书,看到行列式,发现是个递归的式子,恰巧又正在学java,产生写程序实现的想法.写了两个小时,觉得实现了,写了个行列式放进去测试,我放的是 这个行列式,经过程序计算后发现结果是0.我以为我 ...
- python 行列式计算
N= #声明2x2的数组arr并将所有元素赋值为 None arr=[[None] * N for row in range(N)] print('|a1 b1|') print('|a2 b2|') ...
- HDU 5852 Intersection is not allowed! ( 2016多校9、不相交路径的方案、LGV定理、行列式计算 )
题目链接 题意 : 给定方格中第一行的各个起点.再给定最后一行与起点相对应的终点.问你从这些起点出发到各自的终点.不相交的路径有多少条.移动方向只能向下或向右 分析 : 首先对于多起点和多终点的不相交 ...
- n阶行列式计算
1.化为上下三角 该类型的矩阵.行列式在之前写过(https://www.cnblogs.com/wangzheming35/p/12906624.html),也建议记住这个行列式的结论. 当然不仅仅 ...
- HDU_2036——多边形面积,行列式计算
Problem Description “ 改革春风吹满地, 不会AC没关系; 实在不行回老家, 还有一亩三分地. 谢谢!(乐队奏乐)”话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也 ...
- Python实现行列式计算
数学公式: 代码: # 逆序数 def getInversion(numlist): count = 0 for i in range(1,len(numlist)): subscript = num ...
随机推荐
- 转: Hibernate HQL查询 插入 更新(update)实例
1.实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hq ...
- C#之事件
事件,是C#编程模型中重要的一个概念,通过对事件的理解,可以更好的了解C#程序运行机制.C#中的事件,可以简单的理解为类或者对象发生了一件事,并且把这件事通知给了其他的类或者对象,其他的类或者对象可以 ...
- Android下载压缩文件与解压案例
ackage com.example.jsontest.biz; import java.io.BufferedInputStream; import java.io.BufferedOutputSt ...
- js中Array的一些扩展
IE下很多Array的方法都不被支持.每次都要写.所以记下来,以免忘记: 以下是对Array的一些扩展,在FF ,google 下是不需要加的. /** * 方法Array.filter(functi ...
- 《数据结构》2.2顺序表(sequence list)
//顺序表节点的定义 typedef struct { datatype data[MAXSIZE]; //数组容量的上限 int len; //记录最后一个元素的位置,相当于一个指针,表空时len= ...
- Oracle查询表空间使用情况
--查询表空间使用情况 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", ...
- MyBatis3学习--来源自用户指南
MyBatis是什么? MyBatis 是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架. MyBatis几乎消 除了所有的JDBC 代码,也基本不需要手工去设置参数和获取检索结果. My ...
- 黑马程序员——C语言基础 流程控制 选择结构和循环结构
---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...
- web.config 配置
一.认识Web.config文件 Web.config 文件是一个xml文本文件,它用来储存 asp.NET Web 应用程序的配置信息(如最常用的设置asp.NET Web 应用程序的身份验证方 ...
- php 读取网页源码 , 导出成txt文件, 读取xls,读取文件夹下的所有文件的文件名
<?php // 读取网页源码$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLO ...