#include #include #include #include /***********************declaratino des variables globales***********************************************/ /********************************************************************************************************/ FILE *pf1; FILE *pf2; //Définition pointeurs double *C,*C1,*C2,*DTC; double *pC,*pDTC,*pC1,*pC2; //parametres du problème double mu,gama; //parametres d'espace int ne,n; //longueurs discrétisées double dl; int longueur; //parametres de temps int nt; //temps_max discrétisé int temps_max,temps_init; double dt; //parametres de phi int phi_1,phi_2; double alpha,beta; double borne_phi; //parametres de phi discrétisés int dphi_1,dphi_2; int borne_integ; //partie dialogue char choix1[20],choix2[20]; int choix0; /***********************routine d'initialisation des paramètres******************************************/ /********************************************************************************************************/ void initialisation(void) { mu=1.; gama=3.; temps_max=5; longueur=15; dl=0.1; dt=0.001; phi_1=1; phi_2=2; alpha=2.; beta=-1.; borne_phi=2.; //borne d'integration de phi non discretisée borne_integ=ceil(borne_phi/dl); //borne d'integration de phi discretisée ne=ceil((double)longueur/dl); n=ne+(2*borne_integ); nt=ceil((double)temps_max/dt); printf("%d %d %d\n",ne,n,nt); printf("%d %d\n",dphi_1,dphi_2); printf("%d\n",borne_integ); } /***********************routine d'allocation des vecteurs************************************************/ /********************************************************************************************************/ void allocations(void) { C= (double*) malloc((n)*sizeof(double)); C=C+borne_integ; C1=(double*) malloc((n)*sizeof(double)); C1=C1+borne_integ; C2=(double*) malloc((n)*sizeof(double)); C2=C2+borne_integ; DTC=(double*) malloc((n)*sizeof(double)); DTC=DTC+borne_integ; } /***********************fonction poids phi***************************************************************/ /********************************************************************************************************/ double phi(double s) { double res; if(s>=-phi_2 && s<=-phi_1) { res=beta; } else if(s>-phi_1 && s=phi_1 && s<=phi_2) { res=beta; } else { res=0.; } return res; } /*double phi(double s) { double res; if(s==0) { res=-2.; } else if(s==1) { res=1.; } else if(s==-1) { res=1.; } else { res=0.; } return res; }*/ /*double phi(double s) { return (-11.719)*(s*s)+(1.87507); }*/ /***********************fonction d'integration de c(x+y)*phi(y)dy****************************************/ /********************************************************************************************************/ double integ(double infinteg,double supinteg) { double res; int a,b; int j,jmax; res=0.; jmax=(supinteg-infinteg); for(j=0;j C //c_int -> C1 //c_old -> C2 for(i=0;i tapez 0\n"); printf("partir d'un fichier existant ----> tapez 1\n"); printf("\n"); scanf("%d",&choix0); if(choix0==0) { temps_init=0; boucle_temps_1(); test=1; } else if(choix0==1) { boucle_temps_2(); test=1; } else { printf("erreur de frappe!!!\n"); } } /**** Affichage des resultats dans pf2 ****/ printf("nom du fichier final:\n"); scanf("%s",&choix2); pf2 = fopen(choix2,"w"); temps_init=temps_init+temps_max; fprintf(pf2,"# %d\n",temps_init); for(u=0;u