Bonjour, j'ai un souci avec l'écriture dans un fichier de mes résultats.
C'est un projet qui utilise la fonction tridag pour la résolution d'une matrice tridiagonal.
Voici le code:
Voici également la fonction tridag:
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 #include <stdio.h> #include <math.h> #include <stdlib.h> #include "tridag.h" main() { double k,a,b,L,T0,Te,t,teta0; double A[100],B[100],C[100],D[100],u[100]; unsigned long N; int i,j; FILE *fp; fp=fopen("RESULTAT", "w"); printf("Entrez les valeurs de k,a,b,L,T0,Te et N\n"); scanf("%lf%lf%lf%lf%lf%lf%d",&k,&a,&b,&L,&T0,&Te,&N); t=(10*(2*a+2*b)*L*L)/(k*a*b); teta0=(T0-Te)/Te; for (i=1;i<N;i++){ B[i]=2+(1./N)*(1./N)*t; } B[N]=1+(1./N)*(1./N)*t; for (i=2;i<=N;i++){ A[i]=-1; } for (i=1;i<=(N-1);i++){ C[i]=-1; } D[1]=teta0; for (i=2;i<=N;i++){ D[i]=0; } tridag(A,B,C,D,u,N); for (i=1;i<=N;i++){ u[i]=Te*u[i]+Te; //printf("T[%d]=%lf\n",i,u[i]); fprintf(fp,"%d %lf\n",i,u[i]); } //getch(); fclose(fp); }
Pour les valeurs a entrer, dans l'ordre:
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 void tridag(double a[], double b[], double c[], double r[], double u[], unsigned long n) { unsigned long j; double bet,*gam; gam=(double*)malloc(n*sizeof(double)); if (b[1] == 0.0) printf("Error 1 in tridag"); u[1]=r[1]/(bet=b[1]); for (j=2;j<=n;j++) { gam[j]=c[j-1]/bet; bet=b[j]-a[j]*gam[j]; if (bet == 0.0) printf("Error 2 in tridag"); u[j]=(r[j]-a[j]*u[j-1])/bet; } for (j=(n-1);j>=1;j--) u[j] -= gam[j+1]*u[j+1]; }
Je ne comprend pas, peut-ètre que j'utilise mal les fopen, fprintf...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 164 4 50 40 46 20 50
Enfin le fait est que l'affichage a l'écran s'effectue, j'ai les bons résultats, mais a l'écriture, la console s'arrète.
Merci bcp d'avance.
Pour info je tourne sous xp, j'utilise dev cpp, et c'est un projet de physique, je ne suis pas informatitien donc désolé d'avance si l'erreur est bête.
Partager