• Aucun résultat trouvé

td scilab sourdun2

N/A
N/A
Protected

Academic year: 2021

Partager "td scilab sourdun2"

Copied!
6
0
0

Texte intégral

(1)

Systèmes dynamiques, modélisation et simulation

Résolution avec Scilab

Claude Gomez1 et Christine Gomez2 Université d’été de Sourdun, 27—30 août 2012

Table des matières

Table des matières ... 1 1 Équation différentielle du premier ordre en dimension 1 ... 2

Équation différentielle linéaire ... 2 1.1

Solution ... 2 1.2

2 Équation différentielle du second ordre en dimension 1... 2 Le pendule amorti ... 2 2.1

Solution ... 3 2.2

3 Équation différentielle du premier ordre en dimension 2 ... 3 Système de Lotka-Volterra ... 3 3.1

3.1.1 Énoncé ... 3 3.1.2 Solution ... 4 Système de Lotka-Volterra avec prise en compte de la surpopulation ... 5 3.2

3.2.1 Énoncé ... 5 3.2.2 Solution ... 5 Système non autonome ... 6 3.3

3.3.1 Énoncé ... 6 3.3.2 Solution ... 6

1 Directeur général de Scilab Enterprises.

(2)

1 Équation différentielle du premier ordre en dimension 1

Équation différentielle linéaire

1.1

On reprend l’équation différentielle étudiée en terminale : y'ay b, où a et b sont des constantes réelles, avec ici a0.

1. Résoudre l’équation pour a1 et b6, avec y(0) 1 .

2. Vérifier que la courbe intégrale correspond à la solution théorique bien connue.

3. Faire une boucle pour tracer les courbes intégrales obtenues avec y(0)

variant de 1 à 5. Solution 1.2 a=1; b=6; function yprim=f(t,y) yprim=a*y+b; endfunction

// Une courbe intégrale

t0=0; y0=1; t=t0:0.1:t0+2; y=ode(y0,t0,t,f); clf; plot(t,y)

// Comparaison avec la solution connue

function y=s(t)

y=((a+b)/a)*exp(a*t)-b/a; endfunction

plot(t,s,"r")

// Tracé de plusieurs courbes intégrales en faisant // varier la condition initiale

for y0=0:5

y=ode(y0,t0,t,f); plot(t,y)

end

2 Équation différentielle du second ordre en dimension 1

Le pendule amorti

2.1

On considère le mouvement d’un pendule amorti de longueur l et de masse m.

 est l’angle que fait le pendule avec la verticale. La force de friction à laquelle est soumis le pendule est opposée au mouvement et égale à kt'( ) avec 0k  .

Pour obtenir le système d’équations différentielles correspondant, on écrit la loi de Newton projetée sur la tangente au cercle parcouru par le pendule et on obtient :

(3)

g est l’accélération de la pesanteur.

Si l’on pose( )tt  '( ), on obtient le système du premier ordre et de dimension 2 suivant : '( ) ( ) '( ) ( ) sin( ( )) tt kg t t t ml l           On prendra l1m, m1kg etg9,81m/s2.

1. Résoudre le système et tracer la courbe de ()t en fonction de t pour 3

k , avec une vitesse initiale nulle et un angle initial de 2

.

2. Faire une boucle sur k entre 0 et 10 et tracer sur une même figure les

courbes de ()t en fonction de t. Solution 2.2 function yprim=f(t,y) yprim(1)=y(2); yprim(2)=-(k/(m*l))*y(2)-(g/l)*sin(y(1)); endfunction

// Courbe intégrale pour k=3

l=1; m=1; g=9.81; k=3; t0=0; tmax=5; t=t0:0.05:tmax; teta0=%pi/2; omega0=0; y=ode([teta0;omega0],t0,t,f); clf; plot(t,y(1,:))

// Plusieurs courbes intégrales en faisant varier la // constante k

for k=0:10

y=ode([teta0;omega0],t0,t,f); plot(t,y(1,:))

end

3 Équation différentielle du premier ordre en dimension 2

Système de Lotka-Volterra

3.1

3.1.1Énoncé

Les équations de Lotka-Volterra décrivent le comportement du système de proies xt( ) 0 (sardines) et de prédateurs yt( ) 0 (requins) :

'( ) ( ) ( ) ( ) '( ) ( ) ( ) ( ) x t a x t b x t y t y t c x t y t d y t    

(4)

avec des conditions initiales xx(0) 0, yy(0) 0, et a , b , c , et d strictement positifs.

1. Tracer des trajectoires dans le plan de phase en partant du point cliqué par la souris. On prendra a3, b1, c1 et d 2.

2. On augmente la fréquence de pêche, c'est-à-dire aa et

dd . Sur la même figure tracer les nouvelles trajectoires en partant du point cliqué par la souris. On prendra 2et 2.

3.1.2Solution function yprim=f(t,y) yprim(1)=a*y(1)-b*y(1)*y(2); yprim(2)=c*y(1)*y(2) -d*y(2); endfunction // Une trajectoire a=3; b=1; c=1; d=2; t0=0; tmax=5; t=t0:0.05:tmax; x0=3; y0=1.5; y=ode([x0;y0],t0,t,f); clf; plot(y(1,:),y(2,:))

// Tracés de différentes trajectoires en cliquant pour // imposer la condition initiale

while(%t)

[c_i,x0,y0]=xclick(); if c_i==5 then break end; y=ode([x0;y0],t0,t,f); plot(y(1,:),y(2,:)) end

Ci-dessus on utilise la fonction xclick qui va retourner le numéro du bouton

de la souris cliqué ainsi que les coordonnées du point correspondant. Lorsque l'on clique sur le bouton droit de la souris, qui correspond à un retour de

xclick égal à 5, on sort de la boucle et le programme s'arrête. Sinon, on

intègre l'équation différentielle en prenant comme condition initiale les coordonnées du point cliqué.

// Plus de pêcheurs

alpha=2; delta=2; a=a-alpha; d=d+delta; while(%t)

[c_i,x0,y0]=xclick(); if c_i==5 then break end; y=ode([x0;y0],t0,t,f); plot(y(1,:),y(2,:),"r") end

(5)

Système de Lotka-Volterra avec prise en compte de la 3.2

surpopulation 3.2.1Énoncé

Les équations de Lotka-Volterra qui décrivent le comportement du système de proies xt( ) 0 (sardines) et de prédateurs yt( ) 0 (requins) sont un peu

simplistes. En particulier, elles ne tiennent pas compte de la surpopulation des espèces. Pour en tenir compte, on introduit un terme carré. Le système

d'équations s'écrit alors :

2 2 '( ) ( ) ( ) ( ) ( ) '( ) ( ) ( ) ( ) ( ) x t a x t b x t y t x t y t c x t y t d y t y t            

avec des conditions initiales xx(0) 0, yy(0) 0, et a , b , c , d , et strictement positifs. On prendra 4a , 1 2 b , c1, d 2, 3 2  et 1 2  .

1. En prenant le cadre x[0, 4] et y[0, 4], tracer des trajectoires dans le plan de phase en partant du point cliqué par la souris.

2. Quelle sont les différences de comportement de ce système proies prédateurs par rapport au système classique de Lotka-Volterra ?

3.2.2Solution

function yprim=f(t,y)

yprim(1)=a*y(1)-b*y(1)*y(2)-lambda*y(1)*y(1); yprim(2)=c*y(1)*y(2)-d*y(2)-mu*y(2)*y(2); endfunction

// Tracé d’une trajectoire

a=4; b=0.5; c=1; d=2; lambda=1.5; mu=0.5; t0=0; tmax=5; t=t0:0.05:tmax; x0=1; y0=1; y=ode([x0;y0],t0,t,f); clf; axes=gca(); axes.data_bounds=[0,0;4,4]; plot(y(1,:),y(2,:))

Ci-dessus on a défini le cadre correspondant à x[0, 4] et y[0, 4]danslequel on veut faire le tracé. Pour cela, grâce à la fonction gca (« Get Current Axes »),

on donne à la variable axes une valeur qui pointe vers la structure graphique des axes et dont on pourra modifier les propriétés. Il suffit ensuite de donner la bonne valeur à la propriété data_bounds pour avoir le cadre désiré.

(6)

// Tracés en cliquant

while(%t)

[c_i,x0,y0]=xclick(); if c_i==5 then break end; y=ode([x0;y0],t0,t,f); plot(y(1,:),y(2,:)) end

Système non autonome 3.3

3.3.1Énoncé

On veut résoudre le système non autonome, c’est-à-dire où le temps t apparaît explicitement dans l’équation, suivant :

2 '( ) sin( ( )) '( ) ( ) x t y t y t x t t    

En prenant le cadre x[ 6, 6] et y[ 6, 6], tracer des trajectoires dans le plan de phase en partant du point cliqué par la souris.

3.3.2Solution function yprim=f(t,y) yprim(1)=sin(y(2)); yprim(2)=y(1)^2-t; endfunction // Une trajectoire t0=0; tmax=30; t=t0:0.1:tmax; x0=4; y0=0; y=ode([x0;y0],t0,t,f); clf; axes=gca(); axes.data_bounds=[-6,-6;6,6]; axes.auto_scale="off";

Ci-dessus on a défini le cadre correspondant à x[ 6, 6] et y[ 6, 6]comme en 3.2.2, mais en plus il est nécessaire de positionner la propriété auto_scale à

"off" afin que le cadre ne s’adapte pas automatiquement aux tracés suivants,

ce qui est le comportement par défaut.

plot(y(1,:),y(2,:))

// tracés en cliquant

while(%t)

[c_i,x0,y0]=xclick(); if c_i==5 then break end; y=ode([x0;y0],t0,t,f); plot(y(1,:),y(2,:)) end

Références

Documents relatifs

Un projet d'« urbanisme» né dans une quatrième a donné lieu à une recherche de groupe de 16 adolescents pour réaliser une maquette comprenant : - un terrain de football ou

dessus de la matière vivante, au niveau des subtiles émanations qu'ils appellent .âme, intelligence, mémoire, volonté; leur sollici- tude n'est digne que de ces

Objectif à atteindre: Partant des activités précédentes sur les traits, l’enfant doit être capable de tracer correctement les rayons du soleil et les pattes des

La longueur de l’arc intercepté par un angle au centre du cercle trigonométrique est proportionnelle à la mesure de l’angle

Remarque : un mauvais groupe partant peut parfois se laisser faire si la partie électrophile devient HYPER stable ( voir

Ketnpe (* ), bientôt après la publication de la relation (7), daiii les termes suivants : Loi'squ'un plan qui glisse sur un autre plan jure se meut à partir d'une position

Si une courbe funiculaire affecte la forme d'une ellipse sous l'action de forces émanant du centre, la force F est en chaque point proportionnelle a —-,—. Si elle affecte la même

L'angle de la normale P,Ü, avec \IP, étant constant, on a le point H, où JMP/ louche son enveloppe en abaissant sur cette droite, du point Q o la perpendiculaire Ü,H,... quelconque