r(S)=rmax
rmax <- 0.85
Ks <- 2
par(mar = c(4, 5, 0.2, 0.2))
curve(rmax*x/(Ks+x), from=0, to=10, ylim=c(0,rmax), xlab="S", ylab=expression(r(S)), las=1)
abline(h=rmax, lty=2)
segments(-1,rmax/2,Ks,rmax/2, lty=2)
segments(Ks,-1,Ks,rmax/2, lty=2)
text(Ks,rmax, labels=expression(r[max]), pos=1)
text(Ks,0, labels=expression(K[s]), pos=4)
r_\max correspond au taux de croissance bactérien lorsque la concentration en substrat est infinie, c’est-à-dire non limitante :
\mathop {\lim }\limits_{S \to + \infty } r\left( S \right) = {r_{\max }}
Par ailleurs, si la quantité de nutriment est illimitée et si on néglige le flux sortant, alors on peut considérer que \frac{dN}{dt} \sim r_\max N. Ainsi N(t) = N_0 e^{r_\max t}.
De plus, si on se rappelle que \tau_d = \frac{\ln 2}{r_\max}, alors on dira que la quantité 1/r_\max est proportionnelle au temps de doublement \tau_d de la population bactérienne lorsque l’apport en substrat est illimité.
K_s est la constante de “demie-saturation” :
r\left( {{K_s}} \right) = \frac{{{r_{\max }}}}{2}
Le paramètre \tau=\frac{V}{F} est homogène à un temps. On peut l’interpréter de trois manières différentes. Il s’agit du temps nécessaire pour :
remplacer la totalité du volume de la chambre de culture par du milieu propre ;
vidanger complètement la chambre de culture si on arrète de l’approvisionner en substrat ;
éliminer (on dit “lessiver”) la population bactérienne de la chambre de culture.
\alpha_2 = \frac{S_0}{K_s}
Si on considère le modèle du chémostat en l’absence de bactéries (N(t) = 0), alors il se réduit à la seule deuxième équation qui devient :
\frac{{d{S}}}{{d{t}}} = - {S} + {\alpha _2}
Cette équation admet S_{eq} = \alpha_2 comme point d’équilibre. Ainsi, on peut interpréter le paramètre \alpha_2 comme la concentration en substrat à l’intérieur de la chambre de culture lorsqu’il n’y a pas de bactéries.
On rappelle que le modèle du chémostat reparamétré s’écrit : \left\{ {\begin{array}{*{20}{l}} {\frac{{d{N}}}{{d{t}}} = {\alpha _1}\left( {\frac{{{S}}}{{1 + {S}}}} \right){N} - {N}}\\ {\frac{{d{S}}}{{d{t}}} = - \left( {\frac{{{S}}}{{1 + {S}}}} \right){N} - {S} + {\alpha _2}} \end{array}} \right.
Ce point d’équilibre correspond à une situation dans laquelle on n’aurait pas de bactéries, N_{eq} = 0, et la concentration en substrat à l’équilibre S_{eq} = \alpha_2.
L’existence mathématique de ce point d’équilibre nécessite que \alpha_1 \neq 1.
Si on avait \alpha_1 = 1, on aurait \tau = \frac{1}{r_\max}, soit \tau < \tau_d, c’est-à-dire que la cuve se viderait de son contenu plus vite que la population bactérienne n’aurait le temps de doubler sa population. A terme, la population bactérienne serait entièrement lessivée.
On rappelle que \tau_d = \frac{\ln 2}{r_{max}}.
Biologiquement, ce deuxième point d’équilibre a du sens si N_{eq} > 0 et S_{eq} > 0, ce qui impose :
\left\{ \begin{array}{l} {\alpha _1} > 1\\ {\alpha _2}\left( {{\alpha _1} - 1} \right) > 1 \end{array} \right.
Cet équilibre correspond à une situation dans laquelle on a à la fois des bactéries et une concentration en substrat inférieure à \alpha_2 (car S_2 = \frac{1}{\alpha_1 - 1} < \alpha_2), c’est-à-dire inférieure à celle qu’on aurait en l’absence de bactéries.
Le fait que le point d’équilibre \left(\alpha_1\left( \alpha_2-\frac{1}{\alpha_1-1}\right), \frac{1}{\alpha_1-1}\right) soit asymptotiquement stable, indique que, pour une condition initiale non nulle et différente de l’autre point d’équilibre, le modèle prédit ce qu’on attend de lui : permettre un état d’équilibre avec à la fois des bactéries et du sustrat.
library(phaseR)
m <- function(t,y,parameters){
dy <- numeric(2)
dy[1] <- parameters[1]*(y[2]/(1+y[2]))*y[1] - y[1]
dy[2] <- -(y[2]/(1+y[2]))*y[1] - y[2] + parameters[2]
list(dy)
}
# Paramètres
a1 <- 2
a2 <- 2
# Point d'équilibre (N2,S2)
N2 <- a1*(a2-1/(a1-1))
S2 <- 1/(a1-1)
par(mar=c(4,4,0.5,0.5))
VectField <- flowField(m, xlim=c(0,4), ylim=c(0,2.5),
parameters=c(a1,a2), points=20, add=FALSE,
xlab=expression(N(t)), ylab=expression(S(t)),
las=1, col="gray")
grid()
isocline <- nullclines(m, xlim=c(-0.1,4), ylim=c(-0.1,3),
parameters=c(a1,a2), points=300,
col=c("darkgreen","blue"), add=TRUE, lwd=2)
points(c(0,a2), c(N2,S2), pch=19)
init <- matrix(c(0.5,1,1.5,2,2.5,3,3.5,0.5,1,1.5,2,2.5,3,3.5,
0.1,0.1,0.1,0.1,0.1,0.1,0.1,2.25,2.25,2.25,
2.25,2.25,2.25,2.25), nrow=14,ncol=2)
trajectoire <- trajectory(m, y=init, tlim=c(0,30),
parameters=c(a1,a2), add=TRUE,
col=rep(1, nrow(init)))
par(mar=c(4,4,0.5,0.5))
myinit=c(3,2)
chronique <- numericalSolution(m, y=myinit, tlim=c(0,30),
parameters=c(a1,a2), type="one",
col=c("orange","gray"), las=1,
lwd=2, ylim=c(0,4),
ylab="Chroniques", xlab="Temps (t)",
add.legend = FALSE)
legend("topright", legend=c(expression(N(t)), expression(S(t))),
col=c("orange","gray"), lwd=2, bty="n")
\left\{ \begin{array}{l} \frac{{dN\left( t \right)}}{{dt}} = \left( {\frac{{{r_{\max }}S\left( t \right)}}{{{K_s} + S\left( t \right)}}} \right)N\left( t \right) - \frac{F}{V}N\left( t \right)\\ \frac{{dS\left( t \right)}}{{dt}} = - \alpha \left( {\frac{{{r_{\max }}S\left( t \right)}}{{{K_s} + S\left( t \right)}}} \right)N\left( t \right) - \frac{F}{V}S\left( t \right) + \frac{F}{V}{S_0} \end{array} \right.
library(phaseR)
m <- function(t,y,parameters){
dy <- numeric(2)
dy[1] <- parameters[1]*y[1]*y[2]/(parameters[2]+y[2]) - parameters[3]*y[1]/parameters[4]
dy[2] <- -parameters[5]*parameters[1]*y[1]*y[2]/(parameters[2]+y[2]) - parameters[3]*y[2]/parameters[4] + parameters[3]*parameters[6]/parameters[4]
list(dy)
}
# Paramètres initiaux
rmax <- 0.85;Ks <- 5;F <- 0.425;V <- 1;alpha <- 0.1;S0 <- 10;
# Nouveaux paramètres
alpha1 <- rmax*V/F
alpha2 <- S0/Ks
# Points d'équilibre sans dimension
N2 <- alpha1*(alpha2-(1/(alpha1-1)))
S2 <- 1/(alpha1-1)
# Paramètres d'échelle
Nc <- Ks/(alpha*alpha1)
Sc <- Ks
# Points d'équilibre dans leur dimension initiale
N2star <- N2*Nc
S2star <- S2*Sc
par(mar=c(4,4,0.5,0.5))
VectField <- flowField(m, xlim=c(0,100), ylim=c(0,10),
parameters=c(rmax,Ks,F,V,alpha,S0), points=20,
add=FALSE, xlab=expression(N(t)),
ylab=expression(S(t)), las=1, col="gray")
isocline <- nullclines(m, xlim=c(-0.1,100), ylim=c(-0.1,10),
parameters=c(rmax,Ks,F,V,alpha,S0),
points=300, col=c("darkgreen","blue"),
add=TRUE, lwd=2)
points(c(0,N2star), c(S0,S2star), pch=19)
init <- c(10,1)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(30,1)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(60,1)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(80,1)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(10,10)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(30,10)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(60,10)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(80,10)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
Les points d’équilibre dans la paramétrisation initiale ont pour coordonnées :
(N_1,S_1) = \left( {0,{S_0}} \right)
d’une part, et \left( {{N_2},{S_2}} \right) d’autre part, avec :
{S_2} = \frac{{{K_s}}}{{V{r_{\max }}/F - 1}} et {N_2} = \frac{1}{\alpha }\left( {{S_0} - {S_2}} \right)
Si on augmente r_\max, la concentration en substrat à l’équilibre S_2 diminue tandis que la concentration bactérienne N_2 augmente ;
Si r_\max est trop petit et conduit à \tau_d > \tau, alors les bactéries seront lessivées ; il faut respecter la condition r_\max V/F > 1 ;
Si K_s augmente (resp. diminue), le taux de croissance r(S) sera plus petit (resp. grand) pour une même quantité de substrat, ce qui entraînera une diminution (resp. augmentation) de N_2 et donc une augmentation (resp. diminution) de S_2 ;
Si le flux F augmente, le temps \tau = V/F diminue ce qui risque d’entraîner le lessivage des bactéries ; par ailleurs, S_2 augmente et N_2 diminue. Les conclusions sont inversées si F diminue ;
Si S_0 augmente, alors N_2 augmente ;
Concernant le volume V, les conclusions sont inverses de celles avec F puisque c’est le rapport V/F qui intervient dans le modèle ;
Le rendement \alpha n’influence que le rapport entre S_2 et N_2.