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
|
#include <stdio.h>
#include <conio.h>
double F(double t,double y)
{
double r;
r=-2*y+1;
return r;
}
void RK4(double t0,double tf,double y0,double h,char s[20])
{
double t,y,k1,k,k2,k3,k4;
int i;
FILE *g;
g=fopen(s,"w");
t=t0;
y=y0;
fprintf(g,"%.5f\t%.5f\n",t,y);
i=0;
while(t<tf)
{ k1=F(t,y);
k2=F(t+h/2,y+(h*k1)/2);
k3=F(t+h/2,y+(h*k2)/2);
k4=F(t+h,y+h*k3);
k=(k1+2*k2+3*k3+k4)/6;
fprintf(g,"%.5f\t%.5f\n",t,y);
t=t+h;
y+=h;
}
fclose(g);
}
main()
{
char s[20];
double t0,tf,y0,h;
printf("donner l'instant initial t0= ");
scanf("%lf",&t0);
printf("donner l'instant final tf= ");
scanf("%lf",&tf);
printf("donner le pas h= ");
scanf("%lf",&h);
printf("donner la valeur initiale y0= ");
scanf("%lf",&y0);
printf("donner le nom du fishier ");
scanf("%s",s);
RK4(t0,tf,y0,h,s);
getch();
} |
Partager