static void Main(string[] args) { /*int d=3; * Matrice<DoubleA> A = new Matrice<FractionA>(d,d); * for (int i=1; i<=d; i++){ * for (int j=1; j<=d; j++){ * A[i,j]= new FractionA(1 , i+j-1); * } * }*/ Matrice <DoubleA> test = new Matrice <DoubleA>(2, 2); test[1, 1] = 1; test[1, 2] = 2; //test[1,3]= 3; test[2, 1] = 3; test[2, 2] = 4; //test[2,3]= 6; //test[3,1]= 3; //test[3,2]= 4; //test[3,3]= 5; DoubleA det = new DoubleA(0); det = test.Determinant(test); Console.WriteLine(det); //FractionA f = new FractionA(3,2); //Console.WriteLine(f.MultiplierPar(f)); }
public T Determinant(Matrice <T> M) { /*if (M.NbCol==1){ * return M[1,1]; * } * T det = new T(); * for (int i=1; i<= M.NbLig; i++){ * Matrice<T> M_bis = new Matrice<T>(M.NbLig-1,M.NbCol-1); * for(int j=1; j<=M_bis.NbLig; j++){ * for(int k=1; k<=M_bis.NbCol; k++){ * if(i!=k){ * M_bis[j,k]=M[j+1,k]; * } * } * } * T det_bis = Determinant(M_bis); * if((i+1)%2!=0){ * det = det.Ajouter( det_bis.MultiplierPar(M[1,i]).Oppose()); * } * else { * det = det.Ajouter( det_bis.MultiplierPar(M[1,i])); * } * } * return det;*/ }
public Matrice <T> Cofacteur(Matrice <T> M) { Matrice <T> C = new Matrice <T>(M.NbLig, M.NbCol); for (int i = 1; i <= M.NbLig; i++) { for (j = 1; j <= M.NbCol; j++) { C[i, j] = new T(); Matrice <T> M_bis = new Matrice <T>(M.NbLig - 1, M.NbCol - 1); for (int k = 1; k <= M_bis.NbLig; k++) { for (int l = 1; l <= M_bis.NbCol; l++) { } } if ((i + j) % 2 == 0) { C[i, j] = M_bis.Determinant(M_bis); } else { C[i, j] = M_bis.Determinant(M_bis).Oppose(); } } } return(C); }
public Matrice <T> Ajouter(Matrice <T> M) { Matrice <T> A = new Matrice <T> (NbLig, NbCol); for (int i = 1; i <= NbLig; i++) { for (int j = 1; j <= NbCol; j++) { A [i, j] = this [i, j].Ajouter(M[i, j]); } } return(A); }
public Matrice <T> Oppose() { Matrice <T> A = new Matrice <T> (NbLig, NbCol); for (int i = 1; i <= NbLig; i++) { for (int j = 1; j <= NbCol; j++) { A[i, j] = new T(); A[i, j] = this[i, j].Oppose(); } } return(A); }
public Matrice <T> MultiplierPar(Matrice <T> M) { Matrice <T> A = new Matrice <T> (NbLig, M.NbCol); for (int i = 1; i <= NbLig; i++) { for (int j = 1; j <= M.NbCol; j++) { A [i, j] = new T(); for (int k = 1; k <= NbLig; k++) { A[i, j] = A[i, j].Ajouter(this [i, k].MultiplierPar(M[k, j])); } } } return(A); }