Résoudre un système différentiel (modèle proie-prédateur)

Utilisation de Xcas

Modérateur : xcasadmin

tertiath
Messages : 2
Inscription : mar. août 18, 2015 12:35 am

Résoudre un système différentiel (modèle proie-prédateur)

Message par tertiath » mar. août 18, 2015 8:52 am

Bonjour à tous,

je cherche à résoudre numériquement un système différentiel du type "proies-prédateurs" de Lotka-Volterra :
X'=aX-bXY
Y'=-cY+dXY

J'ai réussi à le faire sous Maple en écrivant cela:

Code : Tout sélectionner

DEtools[DEplot]([diff(x(t), t) = -c*x(t)+d*x(t)*y(t), diff(y(t), t) = a*y(t)-b*x(t)*y(t)], [x(t), y(t)], t = 0 .. 100, x = 0 .. 11, y = 0 .. 45, [[0, 1.2, 10], [0, 2, 10], [0, .1, 10]], arrows = medium, axes = normal, linecolor = black, numpoints = 500)
Cependant, je souhaite pouvoir le faire (et le montrer) sous Xcas... Savez-vous si cela est possible ? J'ai beau lire l'aide et des forums (dont ici), je ne trouve rien sauf ceci :

Code : Tout sélectionner

plotfield(5*[-y,x],[x=-1..1,y=-1..1]);
affichage(odeplot(5*[-y,x], [t=0..2,x,y],[0,0.3,0.7],tstep=0.02,plan),rouge+epaisseur_ligne_3)
mais dans cette écriture je n'arrive pas à comprendre comment changer le 5*[-y,x] pour qu'il prenne en compte mon système différentiel...

MERCI infiniment :)
Johan

parisse
Messages : 5739
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: Résoudre un système différentiel (modèle proie-prédateur

Message par parisse » mar. août 18, 2015 2:00 pm

Pour plotfield, il faut mettre en 1er argument le vecteur [dx/dt,dy/dt] donc [-c*x+d*x*y,a*y-b*x*y]
Vous pouvez aussi vous inspirer de ca:
http://www-fourier.ujf-grenoble.fr/~par ... ateurs.pdf
http://www-fourier.ujf-grenoble.fr/~par ... ateurs.xws

tertiath
Messages : 2
Inscription : mar. août 18, 2015 12:35 am

Re: Résoudre un système différentiel (modèle proie-prédateur

Message par tertiath » mar. août 18, 2015 3:55 pm

Merci beaucoup, ça m'a permis de mieux comprendre le fonctionnement de Xcas :)

Pour ceux qui feront la même recherche que moi, voici le code:

- pour afficher le champ des tangentes ainsi que la courbe solution:

Code : Tout sélectionner

a:=0.2;b:=0.09;c:=0.4;d:=0.03;
ClrGraph;
plotfield([-c*x+d*x*y,a*y-b*x*y],[x=0..12,y=0..45],normalize,xstep=0.5,ystep=2.5);
plotode([-c*x+d*x*y,a*y-b*x*y],[t=0..200,x,y],[0,0.1,10],tstep=0.05,plan);
- pour faire de même mais en permettant de cliquer sur le dessin et que ça trace la courbe correspondante:

Code : Tout sélectionner

interactive_plotode([-c*x+d*x*y,a*y-b*x*y],[x=0..12,y=0..45],normalize);
MERCI (tu) :-)

Répondre