25 printf(
"NAME\n\tessai04 - see TP3.pdf\n");
26 printf(
"SYNOPSIS\n\tessai04 [FILENAME] [NINI PAS NFIN]\n");
27 printf(
"DESCRIPTION\n");
28 printf(
"\tFILENAME (optional) : name of the output filename\n");
29 printf(
"\tNINI PAS NFIN (optional) : three integers values\n");
33 return 8.*sqrt(x*(1-x));
36 void GetMainParameters(
int argc,
char **argv,
37 char **pFileName,
int *pini,
int *ppas,
int *pfin);
39 void ComputeErrors(
double (*pf)(
double),
double a,
double b,
double Exact,
40 int nini,
int pas,
int nfin,
41 double **ph,
double **pError,
int *n);
44 int main(
int argc,
char **argv){
45 int nini=100,pas=100,nfin=1000;
50 GetMainParameters(argc,argv,&FileName,&nini,&pas,&nfin);
51 ComputeErrors(sin,0.,M_PI,2,nini,pas,nfin,&ph,&pError,&n);
56 if (strlen(FileName)>0){
57 printf(
"Save results in file %s ... \n",FileName);
66 void GetMainParameters(
int argc,
char **argv,
67 char **pFileName,
int *pnini,
int *ppas,
int *pnfin){
84 if (strcmp(*pFileName,
"help")==0){
90 void ComputeErrors(
double (*pf)(
double),
double a,
double b,
double Exact,
91 int nini,
int pas,
int nfin,
92 double **ph,
double **pError,
int *pn){
95 *pn=(nfin-nini)/pas+1;
96 *ph=(
double *)
Malloc((*pn)*
sizeof(double));
97 *pError=(
double *)
Malloc((*pn)*
sizeof(double));
99 (*pError)[i]=(*ph)[i]=1.0*i;
103 (*pError)[i]=fabs(val-Exact)/Exact;
104 printf(
"N=%8d, val=%.16lf, error=%.16e\n",N,val,(*pError)[i]);