Systèmes dynamiques, modélisation et simulation. Résolution avec Scilab. 
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








 !"

#
 !"$%
%
%





&'(
)*+&,-.
Systèmes dynamiques, modélisation et simulation. Résolution avec Scilab. 
1 Équation diérentielle du premier ordre en dimension 1
Équation diérentielle linéaire 
/01
'y ay b

,2a b
,$0a
 30
1a
 6b,$
(0) 1y

 "4'5+


6'$
(0)y
$5%
Solution 
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 diérentielle du second ordre en dimension 1
Le pendule amorti 
/$0'
l

m

0'*$$**5
$'5
'( )kt
$ 0k
)0,
789'
1
sin( ( )) '( ) ''( )mg t k t ml t
 
 
Systèmes dynamiques, modélisation et simulation. Résolution avec Scilab. 
2
g
0
0
( ) '( )tt

,
$1
'( ) ( )
'( ) ( ) sin( ( ))
tt
kg
t t t
ml l

 
 
/
1ml
,
1kgm

2
9,81m/sg

 3
()t
*
t

3k,$$'
2

 6
k
::;4'

()t
*
t

Solution 
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 diérentielle du premier ordre en dimension 2
Système de Lotka-Volterra 
3.1.1 Énoncé
 !"$

( ) 0xt
<=
( ) 0yt
<=1
'( ) ( ) ( ) ( )
'( ) ( ) ( ) ( )
x t a x t b x t y t
y t c x t y t d y t


Systèmes dynamiques, modélisation et simulation. Résolution avec Scilab. #
$
0
(0)xx
,
0
(0)yy
,
a
,
b
,
c
,
d

*
 9+
/
3a, 1b, 1c
2d

 / ' * ;+,>!5!
aa

 
dd

 ;4'$9
/
2

2

3.1.2
Solution
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
?!*
xclick$

>,5
xclick'5%,'>;,
'> 

// 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
Systèmes dynamiques, modélisation et simulation. Résolution avec Scilab. %
Système de Lotka-Volterra avec prise en compte de la 
surpopulation
3.2.1 Énoncé
 !"$

( ) 0xt
 <=
( ) 0yt
 <=
(,
),
>>1
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
 
 
$
0
(0)xx
,
0
(0)yy
,
a
,
b
,
c
,
d
,

*
/ 4a,
1
2
b
, 1c,
2d
, 3
2

1
2

 (
[0, 4]x

[0, 4]y
,9
+
 @
 !"A
3.2.2 Solution
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,:))
?!45
[0, 4]x

[0, 4]y


$*),'B5*gca<CD?.EF=,
5$axes$$'+
E4GH
$5
data_bounds$
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !