ou

u' = FF1(u,up,t)

up' = FF2(u,up,t).

Le coeur du programme est donc une boucle:
for(itt=1;itt<ittmax;itt++)
{
/* Runge Kutta 4 */
du1 =dt*FF1(u ,up ,t);
dup1=dt*FF2(u ,up ,t);
du2 =dt*FF1(u+du1/2,up+dup1/2,t+dt/2);
dup2=dt*FF2(u+du1/2,up+dup1/2,t+dt/2);
du3 =dt*FF1(u+du2/2,up+dup2/2,t+dt/2);
dup3=dt*FF2(u+du2/2,up+dup2/2,t+dt/2);
du4 =dt*FF1(u+du3 ,up+dup3 ,t+dt );
dup4=dt*FF2(u+du3 ,up+dup3 ,t+dt );
u =u +(du1 /6 +du2 /3 +du4 /6);
up=up+(dup1/6 +dup2/3 +dup4/6);
t=t+dt;
}

Exemple de RUN:

printf(" Resolution du pendule force \n");
printf(" 2 \n");
printf(" d u du \n");
printf(" --- + lbd -- + k sin(u) - omega sin(u) cos(u) \n");
printf(" 2 dt \n");
printf(" dt \n");

printf("

avec

lbd=.30;

k=(2*Pi)*(2*Pi);

Quelques exemples

On impose au temps t=0 un déplacement sans vitesse

u=.2;
|
|
 |