/********************************************************************** * * File: euler.c (31-Mar-2006) * (27-Mar-2008) * * Loesung der Differentialgleichung * * du/dt = -u * * mit dem Eulerverfahren * * dt......Zeitschritt * itpr....Ausgabe alle itpr Zeitschritte * itmax...maximale Anzahl Zeitschritte * u(0)....Startwert * * Ausgabe auf File "euler.dat" * **********************************************************************/ #include /**********************************************************************/ int main() { /**********************************************************************/ FILE *fp; int it,itmax,itpr; float dt,t,u,un; printf(" dt,itpr,itmax="); scanf("%f,%d,%d",&dt,&itpr,&itmax); printf(" u(0)="); scanf("%f",&u); fp=fopen("euler.dat","w"); t=0.0; fprintf(fp," %11.7f %14.7e\n",t,u); for(it=1;it<=itmax;it++) { un=u-dt*u; /* Euler explizit */ t=it*dt; u=un; if(it%itpr==0) { fprintf(fp," %11.7f %14.7e\n",t,u); } } fclose(fp); return 0; } /**********************************************************************/