Bonjour
j'ai programmé ce programme en c qui applique la méthode de dichotomie a ma fonction " fpro" mais la mais j'ai un probléme dans mon programme !! il y a une seule itération et le programme s’arrête !!
ou est l'erreur svp ? et merci d'avance
Code:#include<stdlib.h> #include<stdio.h> #include<math.h> #define PI acos(-1.) #define HBAR 1.05360572e-34 #define M 9.e-31 #define K0 1.61e+10 #define A 10.e-10 #define EPS 1.e-10 #define N_MAX 50 #define NPAS 10 double fp(double zm); double fpz(double z1); int main() { double z1,z2,zm,fpro,fz1,v,fpz1,k; printf("donner la valeur de z1\t"); scanf("%lf",&z1); FILE *fichier; fichier=fopen("figure2.dat","w"); printf("donner la valeur de z2\t"); scanf("%lf",&z2); while ( fabs(z1-z2)> EPS) { zm = (z1+z2) / 2. ; v=fp(zm); k=fpz(z1); if (fpro==0) break; //zero trouvé if (fpro*fz1 < 0) { z2=zm; } else { z1=zm; } } fprintf(fichier,"%lf \t %lf \n",zm,v); fclose(fichier); system("pause"); return 0; } double fp(double zm) { double fpro; fpro=tan(zm/2.)-sqrt((K0*A/zm)*(K0*A/zm)-1.); return (fpro); } double fpz(double z1) { double fz1; fz1=tan(z1/2.)-sqrt((K0*A/z1)*(K0*A/z1)-1.); return (fz1); }
-----