コード例 #1
0
ファイル: SLAU.cs プロジェクト: krasaler/MatrixLibrary
 public static Vector Kramer(Matrix A, Vector b)
 {
     Vector X = new Vector(A.ColumnCount);
     Matrix temp = new Matrix(A.RowCount, 0);
     for (int i = 0; i < A.ColumnCount; i++)
     {
         temp = new Matrix(A.RowCount, 0);
         for (int j = 0; j < A.ColumnCount; j++)
         {
             if (j == i)
             {
                 temp = temp.AddColumn(b);
             }
             else
             {
                 temp = temp.AddColumn(A.Get_column(j));
             }
         }
         X[i] = MathM.Determinant(temp) / MathM.Determinant(A);
     }
     return X;
 }
コード例 #2
0
 public Matrix Danilevsky_Vectors(Matrix val)
 {
     Matrix A = new Matrix(val);
     Danilevsky dan = new Danilevsky(A);
     Matrix Y = new Matrix(val.RowCount, val.ColumnCount);
     Matrix T = dan.S;
     Vector R = new Vector(val.RowCount);
     R = Danilevsky_Values(dan.A);
     for (int i = 0; i < val.ColumnCount; i++)
     {
         for (int j = 0; j < val.RowCount; j++)
         {
             Y[val.RowCount - 1 - j, i] = Math.Pow(R[i], j);
         }
     }
     A = T * Y;
     double a = 0;
     for (int i = 0; i < val.ColumnCount; i++)
     {
         a = MathM.vect_norm_2(A.Get_column(i));
         for (int j = 0; j < val.RowCount; j++)
         {
             A[j, i] /= a;
         }
     }
     return A;
 }