Bonjour à toutes et à tous,

Avant d'expliquer mon problème je tiens à préciser que je ne suis pas mathématicien, donc si mes propos peuvent vous sembler obscurs, n'hésitez pas à me demande de l'éclaircissement.
Je suis à la recherche d'une fonction discrete définie par récurrence dont le diagramme de bifurcation donnerait quelque chose ressemblant à une sigmoide plafonnée.
Je me suis basé pour commencer sur la fonction logistique, qui me convient très bien dans sa forme et son comportement, et plus exactement sur un modèle de croissance limité avec capacité porteuse:

xn+1 = xn + beta/M * xn * (M - xn)

ou beta est le taux de croissance et M la capacité.
Dans mon problème, j'aimerais que cette fonction soit liée à 2 autres variables, appellons les E et F (qui varient entre [0 et maxE, maxF avec maxE = maxF], et que la capacité soit atteinte pour E = MaxE / alpha et F = MaxF / alpha, ou alpha est une variable que je pourrais préciser par la suite.
Je suis également soumis aux contraintes suivantes:
si E = 0, F > 0 : la convergence de la fonction devrait s’effectuer entre [0, minLE], dépendant de la valeur de F (et minLE sera précisée également par la suite)
si E >= 0, F = 0 : alors la fonction converge vers 0
si E > 0, F > 0 : la convergence de la fonction devrait s’effectuer entre [0, M], dépendant des valeurs de E et F.

Pour l'instant mon idée a été de faire dépendre beta, le taux de croissance, par E et F sous la forme suivante:
beta = (E + F) / (2*maxE) - 0.5

Mes problèmes sont les suivants:
-Lorsque je trace le diagramme de bifurcation, on converge soit vers 0 soit vers M, et la transition est brutale.
Que me suggéreriez vous pour adoucir cette transition (par exemple en y incorporant une relation carré ou autre?) et converger vers minLE?
J'ai essayé la relation suivante: beta = (E + F).^2 / ((2*maxE).^2) - 0.5 mais le résultat reste identique, dois-je l'inclure au niveau de l'équation elle-même?
-Enfin, comment paramétrer ma fonction pour que je respecte grosso modo les contraintes exposées ci dessus et que je colle à cette figure (ou MaxLE = M):

A noter que la représentation par une ligne est fausse (il aurait fallut représenter des points pour les convergences aux différentes valeurs en X).

Je fournit également le Diagramme en 2D en fonction de E et F sous Matlab:

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
function conv = L3()
%2D - Bifurcation function:
n = 1000; %nb of iterations
ni = 120;
startL = 30;
maxL = 120;
maxCrate = 100;
E = linspace(1,maxCrate,ni);
F = linspace(1,maxCrate,ni);
 
for i=1:size(E,2)
    for k=1:size(F,2)
        y(1) = startL;
        for j=1:n-1
            %converge la fonction:
            y(j+1) = getLE(y(j), F(k), E(i), maxCrate, maxL);
        end
        conv(i,k) = y(end);
    end
end
 
figure; 
subplot(121);
hold on;
plot(F, 'b');
plot(E, 'r');
legend('F','E')
subplot(122);
hold on;
surf(E,F,conv);
xlabel('E');
ylabel('F');
zlabel('bif');
 
 
function LE = getLE(LE,F,E,maxCrate,maxLE)
%Natural growth rate:
beta = (E + F) / (2*maxCrate);
LE = LE + (beta / maxLE) * LE * (maxLE-LE);
Merci par avance pour vos suggestions et pour la lecture de ce topic relativement long... pour une question qui doit être finalement assez simple?

Gian