我想找到在C#4x4矩阵的行列式 [英] i want to find determinant of 4x4 matrix in c#

查看:236
本文介绍了我想找到在C#4x4矩阵的行列式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


可能重复:结果
计算n×n的矩阵行列式C#






我想找到的决定因素在C#4x4矩阵的,请帮助紧急

  INT SS = 4;诠释计数= 0; 
INT [,]矩阵=新的INT [SS,SS]
ArrayList的人=新的ArrayList(){} 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;
的for(int i = 0; I< SS,我++)
{
为(INT J = 0; J< SS; J ++)
{
矩阵[I,J] = Convert.ToInt32(人[计数]);
++计数;
的Response.Write(矩阵[I,J] +);
}
的Response.Write(< BR />中);
}


解决方案

如果你是固定4×4,最简单的办法是只硬编码的公式。

  //假设矩阵指数从0(0,1开始,图2和3)
公共双行列式(INT [,]米){
返回
M [0,3] * M [1,2] * M [2,1] *米[ 3,0] - 米[0,2] * M [1,3] * M [2,1] *米[3,0] -
M [0,3] * M [1,1] *米[2,2] * M [3,0] + M [0,1] * M [1,3] * M [2,2] * M [3,0] +
M [0,2 ] * M [1,1] * M [2,3] * M [3,0] - 米[0,1] * M [1,2] * M [2,3] * M [3,0] -
M [0,3] * M [1,2] * M [2,0] * M [3,1] + M [0,2] * M [1,3] * M [2,1 0] * M [3,1] +
M [0,3] * M [1,0] * M [2,2] *米[3,1] - 米[0,0] *米[ 1,3] * M [2,2] *米[3,1] -
M [0,2] * M [1,0] * M [2,3] * M [3,1] +米[0,0] * M [1,2] * M [2,3] * M [3,1] +
M [0,3] * M [1,1] * M [2,0 ] * M [3,2] - 米[0,1] * M [1,3] * M [2,0] * M [3,2] -
M [0,3] *米[1 ,0] * M [2,1] * M [3,2] + M [0,0] * M [1,3] * M [2,1] * M [3,2] +
M [0,1] * M [1,0] * M [2,3] * M [3,2] - 米[0,0] * M [1,1] * M [2,3] *米[ 3,2] -
M [0,2] * M [1,1] * M [2,0] * M [3,3] + M [0,1] * M [1,2] *米[2,0] * M [3,3] +
M [0,2] * M [1,0] * M [2,1] * M [3,3] - 米[0,0 ] * M [1,2] * M [2,1] * M [3,3] -
M [0,1] * M [1,0] * M [2,2] * M [3 1,3] + M [0,0] * M [1,1] * M [2,2] * M [3,3];
}



参考




Possible Duplicate:
calculate nxn matrix determinant C#

i want to find determinant of 4x4 matrix in c# please help urgent

    int ss = 4; int count = 0;
    int[,] matrix=new int[ss,ss];
    ArrayList al = new ArrayList() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 };
    for (int i = 0; i < ss; i++)
    {
        for (int j = 0; j < ss; j++)
        {
            matrix[i, j] =Convert.ToInt32( al[count]);
            ++count;
            Response.Write(matrix[i, j] + " ");
        }
        Response.Write("<br/>");
    }

解决方案

If you're fixed to 4x4, the simplest solution would be to just hardcode the formula.

   // assumes matrix indices start from 0 (0,1,2 and 3)
   public double determinant(int[,] m) {
      return
         m[0,3] * m[1,2] * m[2,1] * m[3,0] - m[0,2] * m[1,3] * m[2,1] * m[3,0] -
         m[0,3] * m[1,1] * m[2,2] * m[3,0] + m[0,1] * m[1,3] * m[2,2] * m[3,0] +
         m[0,2] * m[1,1] * m[2,3] * m[3,0] - m[0,1] * m[1,2] * m[2,3] * m[3,0] -
         m[0,3] * m[1,2] * m[2,0] * m[3,1] + m[0,2] * m[1,3] * m[2,0] * m[3,1] +
         m[0,3] * m[1,0] * m[2,2] * m[3,1] - m[0,0] * m[1,3] * m[2,2] * m[3,1] -
         m[0,2] * m[1,0] * m[2,3] * m[3,1] + m[0,0] * m[1,2] * m[2,3] * m[3,1] +
         m[0,3] * m[1,1] * m[2,0] * m[3,2] - m[0,1] * m[1,3] * m[2,0] * m[3,2] -
         m[0,3] * m[1,0] * m[2,1] * m[3,2] + m[0,0] * m[1,3] * m[2,1] * m[3,2] +
         m[0,1] * m[1,0] * m[2,3] * m[3,2] - m[0,0] * m[1,1] * m[2,3] * m[3,2] -
         m[0,2] * m[1,1] * m[2,0] * m[3,3] + m[0,1] * m[1,2] * m[2,0] * m[3,3] +
         m[0,2] * m[1,0] * m[2,1] * m[3,3] - m[0,0] * m[1,2] * m[2,1] * m[3,3] -
         m[0,1] * m[1,0] * m[2,2] * m[3,3] + m[0,0] * m[1,1] * m[2,2] * m[3,3];
   }

References

这篇关于我想找到在C#4x4矩阵的行列式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆