Slides Simecol

21
Introduction Modèle Programmation Généralisation Librairie simecol pour R Timothée POISOT 3 février 2009 1 / 20 Librairie simecol pour R

Transcript of Slides Simecol

Page 1: Slides Simecol

Introduction Modèle Programmation Généralisation

Librairie simecol pour R

Timothée POISOT

3 février 2009

1 / 20Librairie simecol pour R

Page 2: Slides Simecol

Introduction Modèle Programmation Généralisation

Plan

1 Introduction

2 Modèle

3 Programmation

4 Aller plus loinPlusieurs espècesStochasticité

2 / 20Librairie simecol pour R

Page 3: Slides Simecol

Introduction Modèle Programmation Généralisation

Objectifs

1 Écrire un modèle simple. . .

Écrire les équations en langage SÉcrire le vecteur de paramètesIntégrer dans les structures de simecol

2 . . . et aller plus loin

Plusieurs espècesStochasticité

3 / 20Librairie simecol pour R

Page 4: Slides Simecol

Introduction Modèle Programmation Généralisation

Objectifs

1 Écrire un modèle simple. . .

Écrire les équations en langage SÉcrire le vecteur de paramètesIntégrer dans les structures de simecol

2 . . . et aller plus loin

Plusieurs espècesStochasticité

3 / 20Librairie simecol pour R

Page 5: Slides Simecol

Introduction Modèle Programmation Généralisation

Pré-requis

R http://cran.r-project.org2.7 au moins. . .

simecol Dans R : install.packages(’simecol’)Avec les dépendances !

les fichiers http://homepage.mac.com/tim.poisot/RFichier intro-simecol.rPour le code source commenté !

4 / 20Librairie simecol pour R

Page 6: Slides Simecol

Introduction Modèle Programmation Généralisation

Le modèle

proie Prédateur

k1

k3

k2

5 / 20Librairie simecol pour R

Page 7: Slides Simecol

Introduction Modèle Programmation Généralisation

Les équations

dp

dt= p · (k1 − k2P ) (1)

dP

dt= −P · (k3 − k2p) (2)

6 / 20Librairie simecol pour R

Page 8: Slides Simecol

Introduction Modèle Programmation Généralisation

Écriture du modèle

Vecteur nommé de paramètres

p <- c(’k1’=0.2,’k2’=0.2,’k3’=0.2)

Équations

dx1 <- p["k1"]*x[1] -p["k2"]*x[1]*x[2]dx2 <- - p["k3"]*x[2] +p["k2"]*x[1]*x[2]

Note : x[1] et x[2] contiennent p et P !

7 / 20Librairie simecol pour R

Page 9: Slides Simecol

Modèle fonction main

arguments time

parmsinit

solver

Page 10: Slides Simecol

Introduction Modèle Programmation Généralisation

Intégrer dans simecol

LVsim <- new("odeModel",main = function(time,init,parms) {# MODELE !list(c(dp,dP))

},parms = c(’alpha’=0.2,

’beta’=0.2,’gamma’=0.2,’sigma’=0.2),

times = c(from=0, to=60, by=1e-1),init = c(0.5,0.5),solver = "lsodar")

9 / 20Librairie simecol pour R

Page 11: Slides Simecol

Introduction Modèle Programmation Généralisation

Intégrer dans simecol

# MODELEpars <- parmsp <- init[1]P <- init[2]dp <- p*(pars[’alpha’]-pars[’beta’] *P)dP <- -P*(pars[’gamma’]-pars[’sigma’]*p)

10 / 20Librairie simecol pour R

Page 12: Slides Simecol

Introduction Modèle Programmation Généralisation

Go !

Pour lancer la simulation (sim) :

out(sim(LVsim))

Renvoie (out) le résultat :

time 1 21 0.0 0.5000000 1.00000002 0.5 0.4986641 0.95358093 1.0 0.4981401 0.91077964 1.5 0.4968445 0.87269155 2.0 0.4952770 0.83834056 2.5 0.4939464 0.80688717 3.0 0.4932749 0.77769968 etc...

11 / 20Librairie simecol pour R

Page 13: Slides Simecol

Introduction Modèle Programmation Généralisation

Résultat

0 20 40 60 80 100

0.6

0.8

1.0

1.2

1.4

1.6

1.8

Temps

Effe

ctif

Prédateurs et proies 12 / 20Librairie simecol pour R

Page 14: Slides Simecol

Introduction Modèle Programmation Généralisation

Quelques infos sur les vecteurs

Additivité

c + ~V = {c + V1, c + V2, . . . , c + Vn}~U + ~V = {U1 + V1, U2 + V2, . . . , Un + Vn}

Multiplication

c · ~V = {cV1, cV2, . . . , cVn}~U · ~V = {U1V1, U2V2, . . . , UnVn}

Et autres

sum(V)=∑n

i=1 Vi

prod(V)=∏n

i=1 Vi

length(V)= nV[i]= Vi

V[1:4]= {V1, V2, V3, V4}

13 / 20Librairie simecol pour R

Page 15: Slides Simecol

Introduction Modèle Programmation Généralisation

Les équations du “nouveau” modèle

dpi

dt= pi · (k1i − k2iP ) (3)

dP

dt= −P ·

(k3 −

n∑i=1

k2ipi

)(4)

n = 2, (k1)1 > (k1)2, et (k2)1 > (k2)2

14 / 20Librairie simecol pour R

Page 16: Slides Simecol

Introduction Modèle Programmation Généralisation

pars <- parms

p <- init[1:2]P <- init[3]

K1 <- c(pars[’k1a’],pars[’k1b’])K2 <- c(pars[’k2a’],pars[’k2b’])

dp <- p*(K1 - K2*P)dP <- -P*(pars[’k3’] - sum(K2*p))

list(c(dp,dP))

15 / 20Librairie simecol pour R

Page 17: Slides Simecol

Introduction Modèle Programmation Généralisation

Résultat

0 50 100 150 200

0.0

0.5

1.0

1.5

2.0

2.5

3.0

Temps

Effe

ctif

16 / 20Librairie simecol pour R

Page 18: Slides Simecol

Introduction Modèle Programmation Généralisation

Stochasticité

pars <- parms

p <- init[1:2]P <- init[3]

K1 <- c(pars[’k1a’],pars[’k1b’])K2 <- c(pars[’k2a’],pars[’k2b’])

+ runif(length(p),-0.0002,0.0002)

dp <- p*(K1 - K2*P)dP <- -P*(pars[’k3’] - sum(K2*p))

list(c(dp,dP))

17 / 20Librairie simecol pour R

Page 19: Slides Simecol

Résultat

0 50 100 150 200

0.0

0.5

1.0

1.5

2.0

2.5

Temps

Effe

ctif

0 50 100 150 200

02

46

8

Temps

Effe

ctif

Page 20: Slides Simecol

Introduction Modèle Programmation Généralisation

Merci de votre attention !

R http://cran.r-project.org

simecol http://simecol.sourceforge.net

exemples http://homepage.mac.com/tim.poisot/R/Fichiers : intro-simecol.r, slides-simecol.pdf

19 / 20Librairie simecol pour R

Page 21: Slides Simecol

Distribution normale

−4 −3 −2 −1 0 1 2 3

050

100

150

Distribution log−normale

0 10 20 30 40

020

040

060

080

0

Distribution uniforme

0.0 0.2 0.4 0.6 0.8 1.0

020

4060

8010

0

hist(rnorm(1000),col=’lightgrey’,main=’Distribution normale’,xlab=”,ylab=”)

hist(rlnorm(1000),col=’lightgrey’,main=’Distribution log-normale’,xlab=”,ylab=”)

hist(runif(1000),col=’lightgrey’,main=’Distribution uniforme’,xlab=”,ylab=”)

20 / 20Librairie simecol pour R