IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Système d'équation vérifiant une condition


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 12
    Par défaut Système d'équation vérifiant une condition
    Bonjour,
    Je cherche un moyen de créer une petite fonction qui décrit une dynamique de 2 populations "co-évoluant".
    Voilà le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    pop<-function(n1,n2,r1,r2){
    d1<-n1*r1+m
    d2<-n2*r2+m
    m<-n1+n2=1
    plot(d1,d2)
    }
    pop(n1=1,n2=2,r1=2,r2=3)
    J'aimerais dire que la valeur de "m" vérifie que "n1+n2=1". Evidemment, le script ne marche pas !
    Merci beaucoup de votre aide.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 100
    Par défaut
    Salut,

    Si tu veux faire des dynamiques de pop, il vaut mieux regarder le package simecol et deSolve

    Pour ton script…

    Tu utilises la valeur de m sans la définir. Si tu veux juste tester m = (n2+n1==1), quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m <- ifelse((n2+n1)==1,1,0)
    le fera.

    Mais je ne vois pas ce que tu veux faire avec ta fonction. Si c'est avoir la dynamique de pop, il faut une boucle qui te donne le nombre d'itérations…

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 12
    Par défaut
    Merci,
    alors oui, je me suis aperçu qu'il faut créer une itération pour que le graphe ce fasse.
    Alors voilà mon nouveau script :
    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
    pop<-function(n1=0.5,n2=0.5,r1=0.1,r2=2,times=100,m){
    pop1<-rep(0,times)
    pop2<-rep(0,times)
    for (i in 1:times){
    d1<-n1*r1+m
    d2<-n2*r2+m
    m<-ifelse((n1+n2)==1,1,0)
    pop1[i]<-n1<-n1+d1
    pop2[i]<-n2<-n2+d2 
    }
    plot(c(1,times),range(c(pop1,pop2)),types="n")
    lines(1:times,pop1,col="blue")
    lines(1:times,pop2,col="red")
    }
    pop()
    je suis arrivé à le faire fonctionner sans ce "m". L'idée est que x1 et x2 soit des fréquences. Donc m devrait vérifier que x1+x2=1. m serait (d'après le bouquin) la fitness moyenne du système.
    Alors bien sûr, ici je pourrais faire m = r1*x1 + r2*x2. Mais par la suite, si je fais une fonction avec beaucoup plus de population ou avec une équation de dynamique plus complexe, ce sera long (et difficile) de résoudre l'équation.
    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 28
    Dernier message: 23/01/2014, 19h23
  2. [XL-2007] somme des cellules d'une colonne vérifiant 2 conditions
    Par laurentSc dans le forum Excel
    Réponses: 4
    Dernier message: 28/11/2013, 19h33
  3. Remplacement d'une image par un système d'équations.
    Par zguywood dans le forum Beamer
    Réponses: 0
    Dernier message: 30/11/2010, 16h49
  4. Réponses: 4
    Dernier message: 15/02/2010, 10h38
  5. [Système] Probleme d'execution d'une condition
    Par Flushovsky dans le forum Langage
    Réponses: 4
    Dernier message: 30/12/2005, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo