我一直试图使此功能无效。有人可能会透露一些信息吗?
这是一个Sigmoid,具有一些已应用的边界/变形。Here's the link to the function in desmos。那很好。看起来像这样:
这就是公式:
但是,当我试图将其“翻译”成我的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,但是不是!我知道那里可能有太多的括号,对于对此有更好理解的人,解决方案将非常明显,所以,请您帮我一下?
谢谢!
您不小心将最后一个+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
的值,并且每次都正常工作(不是科学的,而是实用的证明^^)
我希望这会有所帮助!如果可行,您可以通过单击复选标记^^
接受此答案。