Bonjour,

je suis débutant en scilab, je n'ai pas réussi à trouver de solution à mon problème et étant pressé par le temps je n'ai plus le temps de me documenter.
J'ai besoin d'étudier le modèle SIR qui permet de faire une analyse de la transmission d'une maladie.

Mais je n'arrive pas à bien l'implementer.
Le système est le suivant :

  • dS/dt = -alpha*S*I
  • dI/dt = alpha*S*I-beta*I
  • dR/dt = beta*I



voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//Modèle SIR
 
clear;clc;
 
//constantes
alpha=0.7/11744998;
betaa=1/10;
N=11744998;
I=2;
S=N-I;
R=0;
 
function dS=dS(S,I);
    dS= - alpha*S*I;
endfunction
 
function dI=dI(S,I);
    dI=alpha*S*I - betaa*I;
endfunction
 
function dR=dR(I);
    dR=betaa*I
endfunction
 
pasx=0.05;xmoins=0;xplus=2+pasx;
pasy=0.05;ymoins=pasy/5;yplus=0.3+pasy/5;
xx=xmoins:pasx:xplus;
yy=ymoins:pasy:yplus;
tmax=120;
tt=0:0.05:tmax; //axe des x en fonction du temps avec un pas de 0.05
xset("window",1); fchamp(dS,0,xx,yy)
 
plot(tt,dS);
plot(tt,dI);
je souhaite faire varier les 3 équations au cours du temps sur une durée de 120 jours, avec un pas de 1 jour.
Lorsque je plot mes fonctions j'obtiens des droites horizontales à l'axe des abscisses ce qui me parait logique puisqu'elles ne varient pas...
Je ne sais pas comment les faires varier.

Désolé il doit surement y avoir de grosses erreurs dans mon code...

Merci à vous