行列式计算(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 ...
随机推荐
- 【DIY】【外壳】木板 & 亚克力 加工
—————————————————————————————————————————————————————————————————————— 一.途径 淘宝 https://item.taobao.c ...
- Java期末设计(十三周)
一.项目完成计划 十三周和十四周完成用户交互界面的设计(1.登陆界面2.订票以及查询界面3.用户管理界面4.退票界面): 十三周完成登陆界面,十四周完成订票以及查询界面,用户管理界面和 ...
- erlang 查看内存消耗的方法?
找出消耗内存最多的进程 : lists:reverse(lists:keysort(2,[{P, erlang:process_info(P, heap_size)} || P <- erlan ...
- Git 撤消
现在添加一个新的文件 t.c, 写一行 int a; 用 git add . 添加跟踪,当前状态 $ git status On branch master Changes to be committ ...
- MYSQL低权限读文件
技巧:Reading files in MySQL with file_priv = no. 当用户无权限调用load_file()函数的时候可以用以下方式读取文件内容: 1.建立test(不分配fi ...
- android异常: java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused
android手机做下载文件时,报了如下异常: java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused 模拟器 ...
- Android studio 提示:Can't use Subversion command line client: svn Probably the path to Subversion executable is wrong. Fix it.
1.参考来源:http://my.oschina.net/fyyy/blog/519353 按照下图,svn相关选项不要选.
- Delphi编译的程序如何获取管理员权限
1.制作manifest文件 <?xml version="1.0" encoding="UTF-8" standalone="yes" ...
- Mvc api HelpPage 与注释
一.添加包Microsoft.AspNet.WebApi.HelpPage可以自动给api生成帮助页面,url:/help 二.help加注释: 1. 2. public static class H ...
- 关于mongoldb 启动时显示 add already in use
1 .不要在国内网上查找 浪费时间 2. stack over flow 是个不错的选择 进入正题. 终端输入: ps wuax | grep mongo 会看到: 随后:kill 447