A=evstr(x_dialog('donnees initiales (nombre de predateurs, proies)?','[1000,50]'));
B =evstr(x_dialog('a,b,c et d','[0.05,0.002,0.00004,0.04]'));
tmax=evstr(x_dialog('temps d''observation (s)?','600'));
a=B(1,1);b=B(1,2);c=B(1,3);d=B(1,4);
//
// definition de la fonction volterra 
//
deff('[Ydot]=volterra(t,Y)',[
'Ydot(1) =  Y(1)*(a-b*Y(2))';
'Ydot(2) = Y(2)*(-d +c*Y(1))'])
t=0:min(0.1,tmax/10):tmax;
// resolution approchee du systeme differentiel avec ode
Y1 = ode([A(1);A(2)],0,t,volterra);
clf;
show_window;
plot2d(1000,50,-2);
plot2d(Y1(1, :),Y1(2, :),2);
xtitle(" Clic gauche pour rechercher l''equilibre. Espace pour arrêter")
while(%T)
[u,v,w]=xclick() ;
if (u==10 | u>=32 ) then break end ; // double-click ou touche clavier
Y1 = ode([v;w],0,t,volterra);
plot2d(Y1(1, :),Y1(2, :),2) ;
plot2d(v,w,-3)
end ;