Les courbes logistiques sont des courbes dont léquation y=y(x) sont
solutions d’une équation différentielle de la forme :
y′/y=a*y+b et y0=y(x0) avec a<0 et b>0.
Les solutions sont de la forme : y(x)=C/(1+exp(−α (x−x0−k)
avec C=−b/a, α=−b et y0=(−b/a)/(1+exp(−b*k) soit
k=−1/b*(ln(−((a*y0+b)/(a*y0))))
Pour vérifier, on peut taper :
On obtient :
Puis on peut taper :
On obtient :
On a donc :
c0=x0−ln(y0/(a*y0+b))/b
Donc, en multipliant le numérateur et dénominateur de y(x) par
exp(b*c_0−b*x) on a :
y(x)=(−b/(exp(b*c_0−b*x)*a*exp(−(b*c_0−b*x))−1)
soit y(x)=−b/(a−exp(b*(x−c0)))=(−b/(a*(1−exp(b*(x−c0))/a))
On a 1/a=−exp(−ln(−a)) car a<0
donc y(x)=(−b/a)*(1/(1+exp(b*(x−c0)−ln(−a)))
qui est bien la forme annoncée.
Lorsque on connait les valeurs de f′ en x=x0,x0+1....x0+n, on cherche une fonction logistique y(x) tel que y′(x) approche au mieux les différentes valeurs de f′(x).
logistic_regression a comme paramètres :
logistic_regression(L,x0,y0 renvoie les fonctions y(x) et
y’(x), la constante C, y1M et xM avec y1M
est la valeur y’(xM) qui est le maximum de y′ obtenu en x=xM, et
enfin le coefficient de correlation linéaire R de Y=y′/y en fonction
de y avec la droite Y=a*y+b.
À partir de la liste L, Xcas calcule la liste Ly en
utilisant la formule y(t+1)−y(t)=y′(t), donc, on a
Ly=[y0,y0+y0’,y0+y0’+y1’,....]. Puis Xcas fait une régression
linéaire de L/Ly en fonction de Ly pour avoir les valeurs de
a et b (y′/y=a*y+b et y0=y(x0)) puis touve la solution de cette
équation différentielle
On tape :
On obtient avec écrit en bleu la signification des valeurs renvoyées :
On tape :
Ou on tape :
On obtient :
Pour retouver la valeur -0.81176431297 du coefficient de corrélation,
on tape :
L:=[1,2,4,6,8,7,5];
y0:=2.0;
Ly:=makelist(y0,1,size(L))+cumSum(L)
On obtient :
[3,5,9,15,23,30,35]
puis
correlation(L/Ly,Ly) qui renvoie
-0.81176431297