没有合适的资源?快使用搜索试试~ 我知道了~
用此程序代码可以计算任意行列式的值。改变主函数中的行列式,运行后就可以求得值。
资源推荐
资源详情
资源评论
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
public static double Determinant(double[][] matrix)
{
double dSum = 1,dSign=1;
double[] matrixChange = new double[matrix.Length];
double[] matrixTemp = new double[matrix.Length];
for (int i = 0; i < matrix.Length; i++)//化成三角阵
{
for (int j = i + 1; j < matrix.Length; j++)
{
if (matrix[i][i] == 0)//如果要乘的那行第一个数等于 0,那就把它与下一列对换后继续
{
for (int x = 0; x < matrix.Length; x++)
{
matrixChange[x] = matrix[i + 1][x];
matrix[i + 1][x] = matrix[i][x];
matrix[i][x] = matrixChange[x];
}
dSign = dSign * -1;
}
//if (matrix[j][i] != 0)
matrixTemp[j] = -matrix[j][i] / matrix[i][i];
}
for (int k = i + 1; k < matrix.Length; k++)//将两行乘系数相加,使变成 0
for (int m = i; m < matrix.Length; m++)
{
matrix[k][m] = matrixTemp[k] * matrix[i][m] + matrix[k][m];
//if (matrix[k][m] < Math.Pow(10,-13))
// matrix[k][m] = 0;
}
}
for(int x=0;x<matrix.Length;x++)//查看最后得到的三角阵
for(int y=0;y< matrix.Length; y++)
Console.WriteLine(matrix[x][y]);
for (int q = 0; q < matrix.Length; q++)//三角阵对角线相乘得到结果
dSum = matrix[q][q] * dSum;
dSum = dSum * dSign;
return dSum;
}
static void Main(string[] args)//主程序中输入要求的矩阵
{
//十阶行列式
double[][] matrix = new double[][]
{
new double[] { 1, 2, 4, 1,2,5,1,2,3,4 },
资源评论
wangbh01
- 粉丝: 2
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功