La lecture à portée de main
Découvre YouScribe en t'inscrivant gratuitement
Je m'inscrisDécouvre YouScribe en t'inscrivant gratuitement
Je m'inscrisDescription
Informations
Publié par | pefav |
Nombre de lectures | 15 |
Langue | Français |
Extrait
Universit´e de Nice L3MASS, ann´ee 2011-2012
D´epartement de Math´ematiques
NOM : Date : .
PRENOM : Salle et heure : .
Feuille-question du TP 5
Syst`eme de Lotka-Voltera, son lin´earis´e, sa perturb´ee
1 Le syst`eme de Lotka-Voltera
Consid´erons le syst`eme d’´equations diff´erentielles
0x = x(1−2y)
(1)0y = −y(1−2x)
Le code Scilab suivant permet d’en esquisser le champ et en tracer des trajectoires.
clear;
//////////////// Lotka-Voltera
xset("window",0);
function xprim=f(x,y); xprim=x*(1-2*y); endfunction; yprim=g(x,y); yprim=-y*(1-2*x);;
function vprim=www(t,v);
vprim=[f(v(1),v(2)),g(v(1),v(2))]’;
endfunction;
xMin=0;xMax=+1;yMin=0;yMax=+1;
fchamp(www,0,xMin :0.1 :xMax,yMin :0.1 :yMax);
a=gca(); a.data bounds=[xMin,yMin;xMax,yMax];
Tmax=10;M0=[1.1,1.1];
N=100;petitpas=Tmax/N;
t=0 :petitpas :Tmax;
for numerotraj=1 :10
M0=[rand(),rand()]’;
M=ode(M0,0,t,www);
x=M(1, :);y=M(2, :);
plot(x,y);
end;
1. Esquissez des solutions. Quel est le comportement des solutions?
2. Ou` et comment ont ´et´e choisies les conditions initiales?
13. Le code suivant permet d’obtenir d’autres trajectoires :
// autres conditions initiales
xset("window",1);
fchamp(www,0,xMin :0.1 :xMax,yMin :0.1 :yMax);
for x0=0.5 :0.1 :xMax
M0=[x0,0.5]’;
M=ode(M0,0,t,www);
x=M(1, :);y=M(2, :);
plot(x,y);
end;
Combien a-t-onchoisi de conditions initiale, et ou` se trouvent-elles? Combien de trajectoiresvoyez-
vous? Expliquez
4. On consid`ere a` pr´esent le lin´earis´e du syst`eme au voisinage du point d’´equilibre non-nul M .0
///////////////////////// lin´eaire (Centre)
M0=[1/2;1/2];
eps=0.0000001;
JAC=[www(0,M0+eps*[1;0])-www(0,M0),www(0,M0+eps*[0;1])-www(0,M0)]/eps;
function www=WWW(t,V); www=JAC*V; endfunction;
xset("window",2);
xMinL=-1;xMaxL=+1;yMinL=-1;yMaxL=+1;
fchamp(WWW,0,xMinL :0.1 :xMaxL,yMinL :0.1 :yMaxL);
a=gca(); a.data bounds=[xMinL,yMinL;xMaxL,yMaxL];
Rappelercomment est d´efinile lin´earis´ed’un syt`emeen un point stationnaireet expliquercomment
on a form´e ici ce syst`eme , caract´eris´e par la fonction WWW.
5. Nous avons vu que si λ est une valeur propre de la matrice du syst`eme lin´eaire et V un vecteur
λtpropre associ´e, t7→ e V est une solution du syst`eme. Calculez valeurs propres et veteurs propres
au moyen des instruction suivantes
[R,diagevals]=spec(JAC);
disp(R,"vecteurs propres",diagevals,"valeur propres");
Quelles valeurs et vecteurs propres obtenez-vous et qu’observez-vous?
26. On note lambda et Z1 la premi`ere valeur propre et vecteur propre donn´es pas Scilab.
// base de solutions
lambda=diagevals(1,1);
Z1=R( :,1);
function M=M1(t);
M=real(exp(lambda*t)*Z1);
endfunction;
function M=M2(t);
M=imag(exp(lambda*t)*Z1);
endfunction;
Comment sont d´efinies les fonctions M1 et M2 (expression math´ematique)?
7. Le code suivant trace la courbe repr´esentative d’une combinaison lin´eaire aM (t)+bM (t), choisie1 2
al´eatoirement, des fonctions M et M .1 2
//traces
N=100;T=2*%pi;delta t=T/N;
x=zeros(1,N+1);
y=zeros(1,N+1);
a=rand();b=rand();
for i=0 :N
M=a*M1(i*delta t)+b*M2(i*delta t);
x(i+1)=M(1);
y(i+1)=M(2);
end;
plot(x,y,’r-’);
Qu’observez-vous?
8. Le code suivant permet de tracer les graphes des deux composantes de M := aM +bM .1 2
xset("window",3);
plot(t,x,’r-’);
plot(t,y,’b--’);
Calculer l’expression math´ematique des solutions t7→ x(t)ett7→ y(t)
32 Une perturbation du syst`eme de Lotka-Voltera
On consid`ere `a pr´esent le syst`eme suivant; le syst`eme de Lotka-Voltera correspond au cas α=0.
0x = x(1−2y−αx)
(2)0y = −y(1−2x+αy)
Le code suivant donne une esquisse du champ et de trajectoires pour α=0.5
clear;
xset("window",4);
alpha=0.5;
function xprim=fa(x,y); xprim=x*(1-2*y-alpha*x); endfunction; yprim=ga(x,y); yprim=-y*(1-2*x+alpha*y);;
function vprim=wwwa(t,v);
vprim=[fa(v(1),v(2)),ga(v(1),v(2))]’;
endfunction;
xMin=-0;xMax=+1;yMin=0;yMax=+1;
fchamp(wwwa,0,xMin :0.1 :xMax,yMin :0.1 :yMax);
a=gca();//a=get("current axes");//get the handle of the newly created axes
a.data bounds=[xMin,yMin;xMax,yMax];
Tmax=100;M0=[1.1,1.1];
N=1000;petitpas=Tmax/N;
t=0 :petitpas :Tmax;
for numerotraj=1 :10
M0=[rand(),rand()]’;
M=ode(M0,0,t,wwwa);
x=M(1, :);y=M(2, :);
plot(x,y);
end;
1. Esquissez les trajectoires. Qu’observez-vous?
2. Trouver le point stationnaire sans coordonn´ee nulle Mα
3. Quelles valeurs propres et vecteurs propres vous donne Scilab pour le lin´earis´e en ce point?
4. Donnez l’expression math´ematique de deux solutions ind´ependantes du lin´earis´e
5. Recommencez avec α =−0.5. Quelle diff´erence de comportement constatez-vous?
4