Slides Simecol

639 vues

Publié le

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
639
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
2
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Slides Simecol

  1. 1. Introduction Modèle Programmation Généralisation Librairie simecol pour R Timothée POISOT 3 février 2009 Librairie simecol pour R 1 / 20
  2. 2. Introduction Modèle Programmation Généralisation Plan Introduction 1 Modèle 2 Programmation 3 Aller plus loin 4 Plusieurs espèces Stochasticité Librairie simecol pour R 2 / 20
  3. 3. Introduction Modèle Programmation Généralisation Objectifs Écrire un modèle simple. . . 1 Écrire les équations en langage S Écrire le vecteur de paramètes Intégrer dans les structures de simecol Librairie simecol pour R 3 / 20
  4. 4. Introduction Modèle Programmation Généralisation Objectifs Écrire un modèle simple. . . 1 Écrire les équations en langage S Écrire le vecteur de paramètes Intégrer dans les structures de simecol . . . et aller plus loin 2 Plusieurs espèces Stochasticité Librairie simecol pour R 3 / 20
  5. 5. Introduction Modèle Programmation Généralisation Pré-requis R http://cran.r-project.org 2.7 au moins. . . simecol Dans R : install.packages(’simecol’) Avec les dépendances ! les fichiers http://homepage.mac.com/tim.poisot/R Fichier intro-simecol.r Pour le code source commenté ! Librairie simecol pour R 4 / 20
  6. 6. Introduction Modèle Programmation Généralisation Le modèle k1 k2 proie Prédateur k3 Librairie simecol pour R 5 / 20
  7. 7. Introduction Modèle Programmation Généralisation Les équations dp = p · (k1 − k2 P ) (1) dt dP = −P · (k3 − k2 p) (2) dt Librairie simecol pour R 6 / 20
  8. 8. 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[quot;k1quot;]*x[1] -p[quot;k2quot;]*x[1]*x[2] dx2 <- - p[quot;k3quot;]*x[2] +p[quot;k2quot;]*x[1]*x[2] Note : x[1] et x[2] contiennent p et P ! Librairie simecol pour R 7 / 20
  9. 9. Modèle fonction main arguments solver time parms init
  10. 10. Introduction Modèle Programmation Généralisation Intégrer dans simecol LVsim <- new(quot;odeModelquot;, 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 = quot;lsodarquot; ) Librairie simecol pour R 9 / 20
  11. 11. Introduction Modèle Programmation Généralisation Intégrer dans simecol # MODELE pars <- parms p <- init[1] P <- init[2] dp <- p*(pars[’alpha’]-pars[’beta’] *P) dP <- -P*(pars[’gamma’]-pars[’sigma’]*p) Librairie simecol pour R 10 / 20
  12. 12. Introduction Modèle Programmation Généralisation Go ! Pour lancer la simulation (sim) : out(sim(LVsim)) Renvoie (out) le résultat : time 1 2 1 0.0 0.5000000 1.0000000 2 0.5 0.4986641 0.9535809 3 1.0 0.4981401 0.9107796 4 1.5 0.4968445 0.8726915 5 2.0 0.4952770 0.8383405 6 2.5 0.4939464 0.8068871 7 3.0 0.4932749 0.7776996 8 etc... Librairie simecol pour R 11 / 20
  13. 13. Introduction Modèle Programmation Généralisation Résultat 1.8 1.6 1.4 1.2 Effectif 1.0 0.8 0.6 0 20 40 60 80 100 Temps Librairie simecol pour R Prédateurs et proies 12 / 20
  14. 14. 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 = {U1 V1 , U2 V2 , . . . , Un Vn } Et autres n sum(V)= i=1 Vi n prod(V)= i=1 Vi length(V)= n V[i]= Vi V[1:4]= {V1 , V2 , V3 , V4 } Librairie simecol pour R 13 / 20
  15. 15. Introduction Modèle Programmation Généralisation Les équations du “nouveau” modèle dpi = pi · (k1i − k2i P ) (3) dt n dP = −P · k3 − k2i pi (4) dt i=1 n = 2, (k1 )1 > (k1 )2 , et (k2 )1 > (k2 )2 Librairie simecol pour R 14 / 20
  16. 16. 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)) Librairie simecol pour R 15 / 20
  17. 17. Introduction Modèle Programmation Généralisation Résultat 3.0 2.5 2.0 Effectif 1.5 1.0 0.5 0.0 0 50 100 150 200 Temps Librairie simecol pour R 16 / 20
  18. 18. 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)) Librairie simecol pour R 17 / 20
  19. 19. Résultat 2.5 2.0 Effectif 1.5 1.0 0.5 0.0 0 50 100 150 200 Temps 8 6 Effectif 4 2 0 0 50 100 150 200 Temps
  20. 20. 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 Librairie simecol pour R 19 / 20
  21. 21. Distribution normale Distribution log−normale Distribution uniforme 100 800 150 80 600 100 60 400 40 50 200 20 0 0 0 −4 −3 −2 −1 0 1 2 3 0 10 20 30 40 0.0 0.2 0.4 0.6 0.8 1.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=”) Librairie simecol pour R 20 / 20

×