Sigmoid函数的语法-Javascript

问题描述 投票:1回答:1

我一直试图使此功能无效。有人可能会透露一些信息吗?

这是一个Sigmoid,具有一些已应用的边界/变形。Here's the link to the function in desmos。那很好。看起来像这样:

sigmoid image

这就是公式:

the function

但是,当我试图将其“翻译”成我的Javascript代码时,我无法使其按预期执行。这是我尝试过的:

y = m*((0.5/(1/(1+(Math.pow(Math.E,((-1)*d))))-0.5))*((1/((1+(Math.pow(Math.E, (((-1)*d)*(1/h)*x-1))))))-0.5))+0.5;

该函数未如预期那样受到限制,并且应该像Desmos示例中那样经过0,0,但是不是!我知道那里可能有太多的括号,对于对此有更好理解的人,解决方案将非常明显,所以,请您帮我一下?

谢谢!

javascript function graph syntax sigmoid
1个回答
1
投票

您不小心将最后一个+0.5放在了方括号之外。

注意:您不需要使用(-1)*d,因为它等于-d

这是我的改进版本:

y = m*((0.5/(1/(1+(Math.pow(Math.E, -d)))-0.5))*((1/((1+(Math.pow(Math.E, -d*((1/h)*x-1))))))-0.5)+0.5);

我尝试了desmos上指定的变量:

m = 2;
d = 1;
h = 0.5;

// you wanted to check for this point
x = 0;

/* [The code above] */

我测试了它在0, 1 and 42的值,并且每次都正常工作(不是科学的,而是实用的证明^^)


我希望这会有所帮助!如果可行,您可以通过单击复选标记^^

接受此答案。
© www.soinside.com 2019 - 2024. All rights reserved.