Courbes intégrales de l'équation différentielle:

Procédure scilab (fichier ode01.sci) :
function [Xprime] = OdeSysteme(t,X)
Xprime(1) = 1
Xprime(2) = SM(X(1),X(2))
endfunction
//------------------------------------------------------------------------------
function [] = TraceSolutions(xmin,ymin,xmax,ymax,n,m)
x = linspace(xmin,xmax,n);
y = linspace(ymin,ymax,n);
clf();
fchamp(OdeSysteme,0,x,y,1,[xmin,ymin,xmax,ymax],"031")
xselect()
t = linspace(xmin,xmax,m);
couleurs = [21 2 3 4 5 6 19 28 32 9 13 22 18 21 12 30 27]; // 17 couleurs
num = -1;
while %t
[c_i,c_x,c_y] = xclick();
if c_i == 0 then
plot2d(c_x, c_y, -1, "000")
num = modulo(num+1,length(couleurs));
u0 = [c_x;c_y];
[u] = ode(u0, c_x, linspace(c_x,xmin,m/2), OdeSysteme);
plot2d(u(1,:)',u(2,:)',couleurs(num+1),"000")
[u] = ode(u0, c_x, linspace(c_x,xmax,m/2), OdeSysteme);
plot2d(u(1,:)',u(2,:)',couleurs(num+1),"000")
elseif c_i == 2 then
break
end
end
endfunctionDocument maître:
function Y=SM(x,y),
Y=y/(2*x)+1/(2*x*(1-x)),
endfunction
getf("ode01.sci")
TraceSolutions(-7,-5,7,5,20,100)
Images:

En prenant un paramètre m plus grand (m=1000) on obtient des courbes plus lisses et le passage de la singularité pour x=0 est mieux représenté.
