Eine typische sigmoide Kurve ist die tanh(x)-Kurve.
Per Definition,
tanh(x) = sinh(x) / cosh(x) =
= [(1/2) (e^x - e^-x)] / [(1/2) (e^x + e^-x)] =
= (e^x - e^-x) / (e^x + e^-x) =
= (e^(2x) - 1) / (e^(2x) + 1)
(Hochauflösend)
Beachten Sie, dass die Symmetrielinien in Bezug auf Ihr Beispielbild verschoben sind. Damit ein tanh-Diagramm Ihrem Beispiel ähnlicher wird, verschieben Sie es einfach nach oben und nach rechts:
y = 1 + (e^(2x - 6) - 1) / (e^(2x - 6) + 1)
(Hochauflösend)
In JavaScript implementieren Sie diesen Ausdruck am effizientesten als
exp2x = Math.exp(2*x)
y = (exp2x - 1) / (exp2x + 1)
Update (wieder)
OK, wenn Sie möchten, dass y von 0 bis 100 und x von 0 bis 100 reicht, dann sollten Sie versuchen
y = 50 + 50*tanh((x50)/10)
die wie folgt aussieht
(Hochauflösend)
Ahora
y = 50 + 50 * tanh((x50)/10)
= 50 + 50 * (e^((x50)/5) - 1) / (e^((x50)/5) + 1)
Die Fehlerfunktion erf sieht ganz ähnlich aus, ist aber viel schwieriger zu berechnen (es sei denn, JavaScript hat eine eingebaute erf-Funktion).
Ryan (OP) fügt hinzu: umgesetzt!
var y = 50 + 50 * tanh((n-50)/10);
function tanh (arg) {
return (Math.exp(arg) - Math.exp(-arg)) / (Math.exp(arg) + Math.exp(-arg));
}