Example #1
0
        //求代数余子式公式
        public static void Algebraic_Complement(int[,] D, int[,] A, int n)//D 代表原矩阵   A代表代数余子式的矩阵
        {
            int[,] Sub = new int[n - 1, n - 1];

            int[] arr = new int[n - 1];

            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    for (int k = 0; k < n - 1; k++)
                    {
                        arr[k] = k;
                    }
                    Subdeterminant(i, j, D, Sub, n);
                    int Sum = 0;
                    Det.Resove(0, n - 1, arr, Sub, ref Sum);
                    if ((i + j) % 2 == 0)
                    {
                        A[j, i] = Sum;
                    }
                    else
                    {
                        A[j, i] = -Sum;
                    }
                }
            }
        }
Example #2
0
 private void button1_Click(object sender, EventArgs e)    //计算行列式的值
 {
     if (order == 0)
     {
         MessageBox.Show("请输入正确的数值");
     }
     else
     {
         int cnt = 0, Sum = 0;
         for (int i = 0; i < order; i++)
         {
             for (int j = 0; j < order; j++)
             {
                 // a[i, j] = int.Parse(LBT[cnt].Text.ToString());
                 //  Sum += a[i, j];
                 f = int.TryParse(LBT[cnt].Text.ToString(), out a[i, j]);
                 if (f == false)
                 {
                     break;
                 }
                 cnt++;
             }
             if (f == false)
             {
                 break;
             }
         }
         if (f == false)
         {
             MessageBox.Show("请按要求输入合理整数!");
         }
         else
         {
             int[] b = new int[order];
             for (int i = 0; i < order; i++)
             {
                 b[i] = i;
             }
             Det.Resove(0, order, b, a, ref Sum);
             textBox2.Text = Sum.ToString();
         }
     }
 }