Phaseplot

> phaseplots([eq1,eq2], xrange, yrange, options);

Permet de tracer des champs de phase et des courbes approximatives pour un système de deux équations différentielles
y'1(x) = f1(x,y1(x),y2(x))
et
y'2(x) = f2(x,y1(x),y2(x)).

eqi est de la forme (x,y1,y2) -> fi(x,y1,y2).

xrange est de la forme xi..xsxi et xs sont des valeurs numériques.

yrange est de la forme yi..ysyi et ys sont des valeurs numériques.

option: inits utilisé pour spécifier des valeurs initiales pour les courbes approximatives désirées.
inits est de la forme {[a1,b1],...,[an,bn]}
grid = [m,n] utilisé pour spécifier les dimensions m X n du maillage.
stepsize = n utilisé pour contrôler le pas dans le schéma numérique de Runge / Kutta. Le défaut est 0.1.
numsteps = m permets de spécifier combien de pas "forward" et "backward" seront calculés et mémorisés par la procédure de Runge / Kutta. Le défaut est 50.
iterations = 10 diminue la grandeur du pas par un facteur de 10 et chaque 10ème point est mémorisé et tracé.

Remarque: Cette commande nécessite la lecture de la librairie ode.

Exemple

> read'ode';
[directionfield, phaseplot, impeuler, rungekutta, rungekuttahf]
directionfield is the new name for fieldplot in Release 2.

> eq1 := (t,x,y) -> -x + sin(x*y);
eq1 := (t,x,y) -> -x + sin(x*y)

> eq2 := (t,x,y) -> -y + 2*cos(x^2)*sin(y)^2;
eq2 := (t,x,y) -> -y + 2*cos(x^2)*sin(y)^2

> inits1 := {seq(seq([0,i/2,j/2], i = 0..5), j = 0..5)}:

> inits2 := {seq(seq([0,-i/2,j/2], i = 0..5), j = 0..5)}:

> inits12 := inits1 union inits2:

> phaseplot([eq1,eq2], -5..5, 0..5, inits12, grid=[15,15]);

phaseplot11

> inits3 := {seq(seq([0,i/2,-j/2], i = 0..5), j = 0..5)}:

> inits4 := {seq(seq([0,-i/2,-j/2], i = 0..5), j = 0..5)}:

> inits := inits12 union inits3 union inits4:

> phaseplot([eq1,eq2], -5..5, -5..5, inits, grid=[15,15]);

phaseplot12