Salut a tous,
j'ai un probleme bizarre. J'ai fait un programme avec des fonctions et des variables float. Tout marche impecable. Cependant j'ai voulu passer à des variables double et j'ai donc changé tout les float par double. Et bien sur sa ne marche pas (le prog se compile mais les resultat sont mauvais).
Quel difference y a t-il donc entre le float et le double??. Pour printf et scanf le %f est bien commun au float et au double ?
Voila le code (en float) qui marche, il est regroupé dans plusieurs fichier (mais ça c'est pas vraimment important). Il s'agit d'un programme de calcul d'integrale par la methode de simpson.
Dans ce fichier on a la fonctions de resolution et celle qui renvoie la valeur de f(x) la fonction calculée :
#include <stdio.h>
#include <math.h>
float f(float x);
//algorithme de calcul de simson
float simpson (float a, float b,int N)
{
float h=(b-a)/N;
float sigma1=0,sigma2=0,I=0;
int j=0;
for(j=1;j<=(N/2)-1;j++)
{
sigma1=sigma1+f(a+2*h*j);
}
// printf("sigma1=%f\n",sigma1);getchar;
for(j=1;j<=(N/2);j++)
{
sigma2=sigma2 +f(a+h*((2*j)-1));
}
// printf("sigma2=%f\n",sigma2);getchar;
I= (h/3)*(f(a)+2*sigma1+4*sigma2+f(b));
return I;
}
//renvoie l'image par la fonction f
float f(float x)
{
float y;
y=1/(sqrt(1-(sin(3.14/6)*sin(3.14/6))*(sin(x)*sin(x))));
return y;
}
Et dans un autre on a un main qui communique avec ça pour obtenir les resultats.
Voila j'esperere que vous pourrez m'aider. En fait j'ai juste un probleme avec float et double, l'algorithme est juste, mais je prefere vous presenter trop que pas asser
Un grand merci d'avance.