Utilisation de XPPAUT Table des mati`eres

Transcription

Utilisation de XPPAUT Table des mati`eres
TD Master 1 ENS
Utilisation de XPPAUT
Jean-Olivier Irisson
[email protected]
Table des matières
1 Écriture du modèle
1.1 Le fichier de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Amélioration des performances de XPPAUT . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2
2
2 Première approche de
2.1 Démarrage . . . .
2.2 Les fenêtres . . .
2.3 Les menus . . . .
3
3
3
3
XPPAUT
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Intégrer une équation et tracer une chronique
4 Étudier un système dans l’espace des phases
4.1 Intégrer dans l’espace des phases . . . . . .
4.2 Examen des données . . . . . . . . . . . . .
4.3 Modification du code XPPAUT . . . . . . .
4.4 Étude des isoclines et des points fixes . . .
3
.
.
.
.
4
5
5
5
6
5 Le comportement du système varie en fonction des valeurs des paramètres
5.1 Changer les paramètres à la main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Étudier un ensemble de valeurs de paramètre pour une même condition initiale . . . . . . . .
5.3 Réaliser un diagramme de bifurcations “à la main” . . . . . . . . . . . . . . . . . . . . . . .
6
6
7
7
6 L’analyse de bifurcations avec AUTO
6.1 Comment démarrer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Les menus de AUTO . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Continuer un équilibre . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Réaliser une continuation en deux dimensions : commencer un diagramme
6.5 Compléter le diagramme de bifurcations . . . . . . . . . . . . . . . . . .
7
7
7
8
8
8
7 Figures
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
Utilisation de XPPAUT
Introduction
XPPAUT est un logiciel permettant l’étude de systèmes dynamiques, notamment ceux représentés
par des équations différentielles. Ce TD a pour objectif d’utiliser ce logiciel pour analyser un système
d’équations modélisant l’évolution d’un système biologique. Nous verrons successivement comment :
– intégrer numériquement une équation ;
– analyser le comportement asymptotique du système dans l’espace des phases ;
– étudier les changements de comportement asymptotique lorsque les valeurs de certains paramètres
changent (analyse de bifuration)
1
1.1
Écriture du modèle
Le fichier de base
Pour utiliser XPPAUT il faut lui fournir un fichier codant pour le système d’équation différentielles.
Ce fichier porte l’extension .ode et doit contenir au minimum :
– l’équation ou les équations, sous la forme dX
dt = · · ·
– les définitions des fonctions éventuellement utilisées dans les équations
– les conditions initiales de l’intégration pour les variables
– les valeurs des paramètres, en différenciant ceux qui pourront être variables de ceux qui resteront
fixes
Par exemple, construisons un fichier pour un modèle de flux d’ions à travers une membrane passive.
Ce modèle peut s’écrire :
dV
= gL (VL − V ) + I
(1)
dt
Où gL est la conductance limite de la membrane, V le courant électrique en Volts, VL le courant limite
et I un flux de fuite.
Le fichier .ode de XPPAUT devra donc s’écrire ainsi :
# Modele de membrane simple
#
# Equation
dv/dt=gl*(vl-v)+i
# Rem: PAS D’ESPACE entre le nom, le signe égal et la valeur des variables
# Rem: Décimales marquées par un point (1.5) et pas une virgule (1,5)
# Conditions initiales
init v=0
# Parametres variables
param gl=0.1,vl=60
# Parametres fixes
number i=0.1
#
done
1.2
Amélioration des performances de XPPAUT
Avec un tel fichier, lors de l’intégration, seule la variable V sera stockée et pourra être visualisée.
Pourtant, il serait également intéressant de stocker la valeur du flux indépendamment du flux de fuite,
à savoir gL (VL − V ).
2
Utilisation de XPPAUT
Pour être stockée, ce flux doit défini comme quantité auxiliaire. Néanmoins, les quantités auxiliaires ne
peuvent être utilisées qu’une fois et ne peuvent donc pas être combinées pour définir une autre quantité.
Il est donc plus judicieux définir des fonctions réutilisables (des quantités fixes) et de stocker/combiner
ensuite ces fonctions dans des quantités auxiliaires ou dans la définition du système. De plus, de cette
façon, ces fonctions ne sont calculées qu’une seule fois. Ici, cela ne change pas grand chose vu la simplicité
du système étudié, néanmoins pour des modèles plus complexes où une même fonction est appelée
plusieurs fois dans le fichier il est intéressant de ne réaliser le calcul qu’une fois.
Modifions le fichier en conséquence :
# Modele de membrane simple
#
# Equation
dv/dt=fluxfix+i
# Quantite fixe définissant le flux indépendamment des fuites
fluxfix=gl*(vl-v)
# Quantite auxiliaire
aux fluxaux=fluxfix
# Conditions initiales
init v=0
# Parametres variables
param gl=0.1,vl=60
# Parametres fixes
number i=0.1
#
done
2
2.1
Première approche de XPPAUT
Démarrage
Il faut lancer XPPAUT avec comme argument le nom de fichier .ode. Pour cela :
xppaut /path/to/the/model.ode
Intéressons nous à la fenêtre par défaut de XPPAUT, Figure 1
2.2
Les fenêtres
Les fenêtres iconifiées permettent d’avoir accès aux valeurs des variables (conditions initiales : ICs),
des paramètres (Param), de visualiser les équations (Eqns) et les valeurs des variables et des quantités
auxiliaires au cours de l’intégration (Data). Figure 2.
2.3
Les menus
L’accès aux menus peut se faire au moyen de la souris ou au clavier en utilisant les raccourcis. La
touche correspondant au raccourci pour un menu est la lettre en majuscule dans le mot : F pour File,
U pour nUmerics etc. Figures 3, 4, 5, 6, 7 et 8
3
Intégrer une équation et tracer une chronique
Pour intégrer, allons dans le menu Initialconds puis Go. L’intégration se fait à partir des conditions
initiales par défaut, spécifiées dans le fichier .ode, pour le temps et avec la précision définis par défaut
3
Utilisation de XPPAUT
dans les paramètres de XPPAUT (menu nUmerics).
L’objectif est de faire une sortie graphique propre d’une chronique (variable en fonction du temps) de
cette intégration. Pour l’instant, la courbe est petite et peu visible. Pour adapter la fenêtre aux données :
Window/zoom puis Fit. Ensuite nous voulons colorer la courbe et lui mettre une légende. Pour cela :
Graphic stuff > Freeze > Freeze. Dans le menu qui apparaı̂t, sélectionner une couleur différente de
0 et mettre une légende dans la case Key. Imprimons cette légende sur le graphique : Graphic stuff
> Freeze > Key > Key, puis positionner la légende avec la souris. Il ne nous reste plus qu’à faire une
sortie postscript de ce graphique : Graphic stuff > Postscript. Et voilà ! Si vous avez fini, modifiez
la valeur de gl à 0.05 dans la fenêtre Param, tracez une nouvelle courbe, colorez la différemment et faite
une sortie postscript des deux courbes.
4
Étudier un système dans l’espace des phases
Considérons maintenant le système qui nous intéresse. Le modèle s’écrit :
∂α(x1 )
∂β(x1 , x2
n1 −
n2
ẋ1 = M1 .n1 (x1 , x2 ) −
∂x1
∂x1
∂β(x1 , x2 )
ẋ2 = 1.n2 (x1 , x2 ) e
n1
∂x2
(2a)
(2b)
Dans lequel on injecte les valeurs de densité à l’équilibre :
n¯2 (x1 , x2 )
=
n¯1 (x1 , x2 )
=
r1 − α(x1 )n¯1
β(x1 , x2 )
r2
eβ(x1 , x2 )
(3a)
(3b)
et les fonctions α(x1 ) et β(x1 , x2 ) :
α(x1 )
β(x1 , x2 )
= α0 + α2 (x1 − x10 )2
" 2 #
2
x2
x2
x1
x1
= β0 exp −
+ 2β3
−
β1
β1
β2
β2
(4)
(5)
Il faut traduire cela en langage XPPAUT. De plus, nous voulons suivre les valeurs de n¯2 . Le fichier
est donc celui ci
# Body size evolution
# Lotka-Voltera based adaptive dynamics
# Equations
dx1/dt= M1 * n1bar(x1,x2) * (-da(x1)*n1bar(x1,x2) - d1b(x1,x2)*n2bar(x1,x2))
dx2/dt= 1 * n2bar(x1,x2) * (e*d2b(x1,x2)*n2bar(x1,x2) )
# Functions
a(x1)= a0 + a2 * (x1 - x10)^2
b(x1,x2)= b0 * exp(-(x1/b1)^2 + 2*b3*(x1/b1)*(x2/b2) - (x2/b2)^2)
da(x1)= 2*a2*(x1 - x10)
d1b(x1,x2)= b(x1,x2) * (-2*x1/(b1^2) + 2*b3*(1/b1)*(x2/b2))
d2b(x1,x2)= b(x1,x2) * (-2*x2/(b2^2) + 2*b3*(x1/b1)*(1/b2))
n1bar(x1,x2)= r2/(e * b(x1,x2))
n2bar(x1,x2)= (r1 - a(x1) * n1bar(x1,x2))/b(x1,x2)
4
Utilisation de XPPAUT
aux n2barAux= n2bar(x1,x2)
# Initial conditions
init x1=0,x2=0
# Varying parameters
param e=0.075,M1=1,x10=0
# Fixed parameters
number r1=0.5,r2=0.05
number a0=0.5,a2=10
number b0=1,b1=0.22,b2=0.25,b3=0.6
done
4.1
Intégrer dans l’espace des phases
L’espace des phase d’un système est l’espace de ses variables. C’est donc ici le plan (x1 , x2 ) dans
lequel on pourra étudier l’évolution de la taille corporelle de la proie et du prédateur. Cette taille est une
mesure relative et s’étend, pour chaque variable, sur ] − ∞, +∞[. Nous allons l’étudier autour de (0,0).
Pour cela, créez une nouvelle fenêtre où l’on représentera x1 et x2 dans [−0.5, 0.5] : Viewaxes > 2D
et remplir les champs demandés. Ensuite faire de nombreuses intégrations à partir de conditions initiales
définies par la souris : Initialconds > mIce et observer le comportement des solutions.
On s’aperçoit que les phénomènes intéressants se produisent proches de (0,0). Zoomer pour les voir :
Window/zoom > Zoom In.
Pour réaliser plusieurs intégrations à partir d’un gradient de conditions initiales nous pouvons utiliser
la fonction Initialconds > Range et colorer différemment les courbes. Le faire pour x1 et pour x2 .
4.2
Examen des données
La fenêtre Data permet de visualiser les valeurs que prennent x1 et x2 (qui sont tracées) mais aussi
les valeurs des quantités auxiliaires que nous avons définies, ici n¯2 .
Prenons le cas d’une simulation qui converge. Nous pouvons verifier que x1 et x2 convergent vers zéro
en intégrant plusieurs fois à partir du dernier point (Initialconds > Last) et en observant les données.
Prenons ensuite une simulation qui diverge. Dans ce cas, la condition initiale résulte en n¯2 < 0 et en
conséquence, les pas suivants aboutissent à des erreurs : nan = not a number. Au vu de la signification
du modèle, cela est logique. En effet, n¯2 est une taille de population à l’équilibre, elle ne peut être
négative. Il nous faut donc modifier la représentation du modèle dans XPPAUT pour tenir compte de
cette contrainte.
4.3
Modification du code XPPAUT
Il nous faut donc introduire une fonction de test qui empêche n¯2 de passer en dessous de zéro. Le
fichier .ode correspondant est celui-ci :
# Body size evolution
# Lotka-Voltera based adaptive dynamics
[...]
n1bar(x1,x2)= r2/(e * b(x1,x2))
5
Utilisation de XPPAUT
n2barTemp(x1,x2)= (r1 - a(x1) * n1bar(x1,x2))/b(x1,x2)
n2bar(x1,x2)= if(n2barTemp(x1,x2)>0)then(n2barTemp(x1,x2))else(0)
aux n2barAux= n2bar(x1,x2)
[...]
4.4
Étude des isoclines et des points fixes
De nouvelles intégrations peuvent être lancées avec cette version plus correcte du modèle. Son comportement peut être étudié plus précisément. Les intégrations, quand elles ne divergent pas, semblent
converger vers 3 points. XPPAUT peut nous permettre de les identifier plus précisément.
Pour cela, nous pouvons commencer par lancer plusieurs simulations afin de localiser globalement les
points fixes (vers lesquels les variables convergent). Ensuite, le menu Sing pts permet de les identifier :
à partir des dernières conditions initiales (Go), à partir d’un essai avec la souris (Mouse), ou en lançant
un nombre donné de simulations à des endroits aléatoires dans un espace donné (monte cAr). Essayer
les trois méthodes. XPPAUT donne les valeurs et la stabilité de ces points. La précision du logiciel dans
la recherche de ces points est réglée dans le menu nUmerics (Figure 5).
Une autre façon de visualiser les points de convergence du système est l’analyse de ses isoclines nulles
(les courbes sur lesquelles x˙1 = 0 ou x˙2 = 0). En effet, à l’intersection de ces courbes, x˙1 = 0, x˙2 = 0
et le système n’évolue plus. Ces intersections sont des points fixes. XPPAUT peut tracer pour nous ces
isoclines : Nullclines > New. Là encore, la précision du logiciel dans le tracé des isoclines est réglée
dans le menu nUmerics (Figure 5).
5
Le comportement du système varie en fonction des valeurs des
paramètres
Ce qui nous intéresse plus particulièrement dans le cas des systèmes biologiques c’est de tester la
robustesse d’un type de solution à une variation des paramètres. Cela revient à se demander si, quand
les conditions changent, le système s’adapte ou change totalement de comportement. Dans les conditions
utilisées précédemment, les tailles de la proie et du prédateur convergent vers un point où le prédateur
exploite le mieux sa proie mais ou celle ci exploite également au mieux son milieu : (0,0). Est-ce toujours
le cas ?
5.1
Changer les paramètres à la main
Une première solution consiste à explorer pas à pas le système en changeant les valeurs des paramètres une par une. Nous changerons les valeurs de e et de x10 . Pour cela, trois solutions méthodes
sont disponibles :
1. menu Parameters
2. fenêtre Param
3. curseur Par/Var ? : cliquez sur Par/Var ?, réglez le paramètre d’intérêt, sa valeur actuelle, ses
valeurs max et min puis lancez des simulations. La valeur de e peut être changée en deplaçant
le curseur, une nouvelle simulation est lancée à partir des dernières conditions initiales et avec la
nouvelle valeur de e.
Lancez des simulations avec des valeurs de e entre 0.05 et 0.2.
6
Utilisation de XPPAUT
5.2
Étudier un ensemble de valeurs de paramètre pour une même condition initiale
Ceci est possible en utilisant la fonction Initial conds > Range et en faisant un gradient de paramètre et non de variables. Faites un gradient de 20 valeurs de e entre les même bornes que ci-dessus.
5.3
Réaliser un diagramme de bifurcations “à la main”
Les bifurcations sont des changements de type de comportement asymptotique du système. Par
exemple, pour notre modèle nous avons pu constater le passage d’un équilibre stable à un cycle stable.
Un diagramme de bifurcation représente les zones dans lesquelles le comportement est identiques sur
l’espace des paramètres. À l’aide des méthodes précédentes, essayez de tracer un tel diagramme dans
l’espace (e, M1 ) et dans l’espace (e, x10 ). Etudiez le comportement et les isoclines du système dans chaque
zone.
6
L’analyse de bifurcations avec AUTO
Nous avons pu remarquer lors des simulations que le comportement asymptotique du système changeait selon la valeur de e notamment. Nous allons ici tenter d’identifier toutes les combinaisons de
valeurs de paramètres pour lesquelles le comportement du système change. L’ensemble de ces valeurs de
bifurcations nous permettra de tracer une diagramme de bifurcation, dans différents plans.
6.1
Comment démarrer ?
Pour démarrer il faut partir d’un système à l’équilibre donc soit d’un point fixe soit d’un cycle.
Démarrer d’un cycle suppose en connaı̂tre la période (qu’il faut fournir à XPPAUT) et complique donc
les choses. Nous allons démarrer d’un point fixe.
Plaçons nous au point défini par les paramètres par défaut. Il faut se rendre à l’équilibre. Pour cela
intégrez le système depuis une condition initiale telle que (0.1,0.1). Ensuite Initialconds > Go. Puis
pour être sûr d’être à l’équilibre, réintégrez le système plusieurs fois en repartant toujours du dernier
point calculé : Initialconds > Last. Vous pouvez vérifier au fur et à mesure que les valeurs de x1 et
x2 varient de moins en moins dans la fenêtre Data. Quand ces valeurs ne varient plus sensiblement, nous
sommes à l’équilibre et pouvons passer à l’analyse de bifurcation.
Pour commencer l’analyse, il faut appeler un autre logiciel contenu dans XPPAUT et nommé AUTO.
Pour cela File > Auto.
6.2
Les menus de AUTO
La fenêtre d’AUTO est présentée dans la Figure 9. Pour lancer la continuation de notre équilibre, il
faut paramétrer AUTO en passant successivement dans plusieurs menus.
Dans la fenêtre Parameter (Figure 10) sont indiqués les paramètres disponibles pour l’analyse de
bifurcation. Ce sont ceux que nous avons laissé variables et donc définis comme param dans le fichier
.ode.
Ensuite, dans la fenêtre Axes se présentent plusieurs options de type de plot. Ceux qui vont nous
intéresser sont détaillés dans la Figure 11.
Enfin, la fenêtre Numerics (Figure 13) permet de régler les paramètres de la continuation (sens,
précision etc.). Les paramètres qui y sont réglables sont :
– Ntst : précision dans le suivi des orbites (cycles limites etc.). Plus le nombre est élevé, plus la
précision est grande.
– Nmax : nombre maximum de pas réalisés lors de la continuation
7
Utilisation de XPPAUT
– Npr : sauvegarder les infos complètes sur le point tous les Npr pas
– Ds : Taille de pas initiale pour la continuation. La taille de pas est ici adaptative, donc elle change à
chaque pas. Ce nombre est une indication donnée au logiciel et une définition du sens de continuation
(Ds peut être négatif ou positif)
– Dsmin : valeur absolue du minimum de la taille de pas
– Dsmax : valeur absolue du maximum de la taille de pas
– Par Min : valeur minimum du paramètre selon lequel est faite la continuation
– Par Max : valeur maximum du paramètre selon lequel est faite la continuation
Le reste correspond à des réglages de précision que nous ne toucherons pas.
6.3
Continuer un équilibre
Nous allons continuer l’équilibre selon e croissant et nous intéresser à ce qui se passe entre les valeurs
0,05 et 0,2. Ceci est à régler dans Numerics, en adaptant les valeurs de pas à ce petit intervalle de
paramètre (diminuer les valeurs).
Nous tracerons dans un premier temps le max et min de x1 en fonction de e. Il faut donc choisir
le type de plot Hi-Lo et adapter la taille des axes du graphe à ce problème (x1 varie de -0.2 à 0.2 et
nous étudions e de 0.05 à 0.2). Nous pouvons au passage vérifier que e est bien le paramètre principal
de continuation.
Ensuite appuyer sur Run. Un menu adaptatif apparaı̂t à cet endroit, en fonction de ce qu’il est possible
de continuer. Ici nous continuons un point fixe et nous choisissons donc Steady state.
Les courbes qui s’affichent donnent la valeur de cet équilibre et sa stabilité en fonction des valeurs
de e comme le montre la Figure 14. AUTO remarque des points particuliers qui sont ici les points de
bifurcation. Ces points sont identifiés grâces aux méthodes numériques présentées en cours.
6.4
Réaliser une continuation en deux dimensions : commencer un diagramme
Maintenant que les points de bifurcation sont identifiés, il faut continuer ces bifurcations dans un
espace à deux dimensions. Nous allons nous intéresser à ce qui se passe quand le taux relatif d’évolution
(M1 ) varie. Nous pouvons commencer par continuer la première bifurcation de Hopf rencontrée.
Pour cela, il faut se placer en ce point en utilisant la fonction Grab. Vous pouvez vous déplacer sur
la courbe avec les flèches ou de point particulier en point particulier avec la touche Tab. Faites Enter
quand vous êtes au bon endroit.
Il faut ensuite adapter les données dans le menu Axes : sélectionnez Two Param et modifiez les bornes
des valeurs de Y qui est maintenant M1 . Nous allons nous intéresser à ce qui se passe entre 0 et 2. Lancez
la continuation avec Run > Two Par et adaptez ensuite les valeurs de Numerics en fonction de ce que
vous voyez. à partir du même point, faites la continuation dans l’autre sens.
6.5
Compléter le diagramme de bifurcations
Il faut maintenant continuer les deux autres bifurcations identifiées sur l’espace (e, M1 ) ainsi qu’en
chercher de nouvelles en fonction de vos connaissances sur le type de transition induit par chaque bifurcation. En résumé : est ce que vous montrent les simulations de chaque côté des courbes de bifurcation
est en accord avec le type de bifurcation identifié ?
À vous de jouer, le but est d’arriver au diagramme de bifurcation de Dercole et al. présenté par la
Figure 15.
PS : si vous avez fini et que ne savez vraiment plus quoi faire, vous pouvez aussi chercher les bifurcations dans le plan (e, x10 ) et chercher à obtenir le diagramme de la Figure 16.
8
Utilisation de XPPAUT
7
Figures
Fig. 1 – Fenêtre par défaut de XPPAUT
9
Utilisation de XPPAUT
Fig. 2 – Les fenêtres iconifiées de XPPAUT
10
Utilisation de XPPAUT
Fig. 3 – Menu d’intégration (Initialconds)
Fig. 4 – Le menu Window/zoom
11
Utilisation de XPPAUT
Fig. 5 – Le menu nUmerics
Fig. 6 – Le menu Graphic stuff
12
Utilisation de XPPAUT
Fig. 7 – Le menu File
Fig. 8 – le menu Viewaxes
13
Utilisation de XPPAUT
Fig. 9 – La fenêtre d’AUTO
14
Utilisation de XPPAUT
Fig. 10 – La fenêtre de paramètres d’AUTO
Fig. 11 – Le menu Axes d’AUTO
15
Utilisation de XPPAUT
Fig. 12 – La fenêtre de paramètres du plot d’AUTO (après le menu Axes)
16
Utilisation de XPPAUT
Fig. 13 – Le menu Numerics d’AUTO
Fig. 14 – Continuation d’un équilibre selon e.
17
Utilisation de XPPAUT
1386
FABIO DERCOLE, JEAN-OLIVIER IRISSON, SERGIO RINALDI
2
0.8
1
1.5
8
1
0.6
4
2
7
1
6
0.4
5
3
9
0.5
3
2
7
9
0.2
3
12
5
6
5
1
0
0.2
0.25
0.3
0
0.2
0.25
Fig. 15 – Diagramme de bifurcation complet du système dans le plan (e, M1 )
Fig. 4. Bifurcation diagram of evolutionary model (5) with respect to predator efficiency e and
mutation frequency ratio k1 /k2 (A) and handling time θ (B). See Figure 3 for coevolutionary state
portraits and parameter values.
18
points out that there are fourteen subregions in the parameter space characterized by
different coevolutionary portraits. In each one of them, for simplicity, the boundary of
the stationary coexistence region, where the predator population becomes extinct, is
PREY-PREDATOR COEVOLUTION
1385
not shown.
This, however, fails to point out, graphically, that
evolutionary extinction
of the predator population occurs in all cases, as shown in Figure 1, which is actually
1
2
4
the6 coevolutionary portrait
corresponding
to 3subregion 11.
It is worth noticing that
11
1
13
3
this
form
of
evolutionary
extinction
is
always
an
evolutionary
murder. In fact, on the
5
10
14
0.2
boundary
of
the
stationary
coexistence
region
ẋ
=
0,
because
n̄2 = 0 in (5); i.e., the
12
2
7
9
8
predator trait is locally constant while the prey trait varies.
5
6
7
8
Coevolutionary attractors can be equilibria or limit cycles, and the existence of
0.1
5
3
alternative attractors is rather common. When they exist, attracting cycles surround
4
all
equilibria.
Actually, there can be up to three alternative attractors (two equilibria
7
6
2
1
and one cycle), as shown9 by the coevolutionary
portraits
10, 11, 13, and 14. There
0
10
11
12
are
ten
codimension-2
bifurcation
points,
namely
a
cusp
(C),
two generalized Hopf
9
5
(GH1 and GH2 ), two Bogdanov–Takens (BT1 and BT2 ), four noncentral saddle-node
11
8
-0.1
6
homoclinic loops (S1 , S2 , B1 , and B2 ), and a double homoclinic loop (D) (see [17]).
10
4
14 codimension-2 bifurcation points are present in
No other bifurcation13curves and
the two extra bifurcation diagrams presented in Figure 4, where the coevolutionary
-0.2
portraits are intentionally not shown to stress that they are exactly as in Figure 3.
The
parameter on0.4the horizontal axis of these two bifurcation diagrams is still the
0.2
0.3
efficiency of the predator, while the parameter on the vertical axis is related to two
important characteristics of the mutation and predation processes, namely, the ratio
Fig. 3. Bifurcationkdiagram
of evolutionary
model (5) with
respect
to predator
predator efficiency
the complet
frequencies
of prey
and
and the predator
1 /kde
2 between
Fig. 16 – Diagramme
bifurcation
du système
dans
le
plan (e,mutations,
x10 ) a,e
and optimum prey trait γ and corresponding sketches of coevolutionary state portraits. Panels
handling
time
θ
corresponding
to
the
maximum
attack
rate
(see
the
appendix).
b, and c are magnified views of the bifurcation diagram. Parameter values are r = 0.5, d = 0.05,
diagrams
areα1very
forα3deriving
biological propk1 = k2 = 1, γ0 = 0.01, γ1 =The
0.5, bifurcation
γ2 = 1, α = 1,
α0 = 0.01,
= 1,useful
α2 = 1,
= 0.6, θ interesting
= 0.9,
θ1 = θ2 = 0.5, θ3 = θ4 = erties
1.
concerning the impact of various factors on coevolution. For example, one could
be interested in identifying the factors favoring the so-called Red Queen dynamics,
namely, the possibility of cyclic coevolution of the traits. For this, one should extract
The functional forms specifying the parameters’ dependence upon the traits are reported in the appendix and are such that the left-hand inequality of condition (11)
(i.e., (rah − c)/(2ahc) ≤ d/(a(e − dh))) is always satisfied. (This excludes the possibility of population cycles.) Thus, the boundary of the stationary coexistence region
is simply the set of pairs (x1 , x2 ) for which d/(a(e − dh)) = r/c (see (11)). This means
that on that boundary n̄2 (x1 , x2 ) = 0; i.e., the predator population becomes extinct
if the traits reach the boundary of the stationary coexistence region.
At this point, (6) can be used to derive the evolutionary model (2), since the

Documents pareils