Salut,
je galère un peut dans la création d'une fonction de calcule du déterminant d'une matrice:
pour l'algo c'est facile:
Code :
- Fonction determinant (Matrice M)
- debut
- det = 0
- pour i de 1 à M.taille
- det += (-1)^(i + 1) * M[1][i] * determinant(sous_matrice(M, 1, i))
- fin pour
- renvoyer det
- fin
- // sous_matrice(M, i, j) renvoie la sous-matrice de M dont on a retiré la i-ème ligne et la j-ième colonne
|
alors voilà la fonction que j'ai fait pour l'instant, mais elle ne marche pas correctement :
Code :
- int determinant( int **mat, int N ) // N étant la dimension de la matrice (carrée)
- {
- int c, det = 0;
- if( N == 1 )
- return mat[0][0];
- if( N == 2 )
- return ( mat[0][0] * mat[1][1] - mat[1][0] * mat[0][1] );
- for(c=0; c<N; c++)
- {
- det += pow(-1,c) * mat[0][c] * determinant(sousMatrice(mat,N,c), N);
- }
- return det;
- }
|
Le problème est dans la fonction récursive, mais je ne trouve trop où !
merci
Message édité par bad___day le 05-03-2007 à 15:43:23