Salut,
Voici un code que j'ai ecris pour calculer le determinant d'une matrice. Il fonctionne . Il est à améliorer, c'est sur, allocation dynamique entre autre.
Je voudrai avoir des avis sur son efficacité avec de grosse matrice et la précision? Ce qu'en pense les expert de la programmation et les mathématiciens .
Thank a lot et bon week end
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 #include <stdlib.h> #include <stdio.h> #include <math.h> void main() { int i,j,l,n=4; double matrix[4][4],c,det=1; matrix[0][0]=1;matrix[0][1]=2;matrix[0][2]=3;matrix[0][3]=1; matrix[1][0]=3;matrix[1][1]=3;matrix[1][2]=1;matrix[1][3]=2; matrix[2][0]=2;matrix[2][1]=3;matrix[2][2]=2;matrix[2][3]=1; matrix[3][0]=2;matrix[3][1]=1;matrix[3][2]=2;matrix[3][3]=2; for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%f\t",matrix[i][j]); } printf("\n"); } printf("\nmatrice triangulaire:\n"); for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { c=matrix[j][i]; for(l=i;l<n;l++) { matrix[j][l]=matrix[j][l]-c*matrix[i][l]/matrix[i][i]; } } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%f\t",matrix[i][j]); } printf("\n"); } for(i=0;i<n;i++) { det=det*matrix[i][i]; } printf("\ndeterminant = %f\n",det); }
Partager