国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#使用加邊法計算行列式的值

2020-01-24 01:32:57
字體:
來源:轉載
供稿:網友

本文實例講述了C#使用加邊法計算行列式的值。分享給大家供大家參考。具體如下:

1.函數

行列式的值等于其第一行各元素乘以各自對應的代數余子式之積的和。
(注:本代碼僅提供一種思路,并不代表最優解)

/// <summary>/// 遞歸計算行列式的值/// </summary>/// <param name="matrix">矩陣</param>/// <returns></returns>public static double Determinant(double[][] matrix){  //二階及以下行列式直接計算  if (matrix.Length == 0) return 0;  else if (matrix.Length == 1) return matrix[0][0];  else if (matrix.Length == 2)  {    return matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0];  }  //對第一行使用“加邊法”遞歸計算行列式的值  double dSum = 0, dSign = 1;  for (int i = 0; i < matrix.Length; i++)  {    double[][] matrixTemp = new double[matrix.Length - 1][];    for (int count = 0; count < matrix.Length - 1; count++)    {      matrixTemp[count] = new double[matrix.Length - 1];    }    for (int j = 0; j < matrixTemp.Length; j++)    {      for (int k = 0; k < matrixTemp.Length; k++)      {        matrixTemp[j][k] = matrix[j + 1][k >= i ? k + 1 : k];      }    }    dSum += (matrix[0][i] * dSign * Determinant(matrixTemp));    dSign = dSign * -1;  }  return dSum;}

2.Main函數調用

static void Main(string[] args){  //二階行列式 -2  double[][] matrix1 = new double[][]  {    new double[] { 1, 2 },    new double[] { 3, 4 }  };  Console.WriteLine(Determinant(matrix1));  //三階行列式 -4  double[][] matrix2 = new double[][]  {    new double[] { 2, 0, 1 },    new double[] { 1, -4, -1 },    new double[] { -1, 8, 3 }  };  Console.WriteLine(Determinant(matrix2));  //四階行列式 -21  double[][] matrix3 = new double[][]  {    new double[] { 1, 2, 0, 1 },    new double[] { 1, 3, 5, 0 },    new double[] { 0, 1, 5, 6 },    new double[] { 1, 2, 3, 4 }  };  Console.WriteLine(Determinant(matrix3));  Console.ReadLine();}

3.運行結果

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳朔县| 法库县| 青龙| 郓城县| 鱼台县| 化隆| 中阳县| 平山县| 乐山市| 金乡县| 金川县| 达州市| 鹰潭市| 洛浦县| 赫章县| 千阳县| 绥德县| 文山县| 临沭县| 金湖县| 抚顺市| 都江堰市| 新安县| 肃北| 交城县| 遂昌县| 当雄县| 辛集市| 漳州市| 彭阳县| 辽中县| 乐清市| 泰安市| 长泰县| 南昌县| 金乡县| 麻阳| 武汉市| 平顺县| 建昌县| 隆安县|