我一直试图让这个功能发挥作用,但没有成功。有人能透露一些线索吗?
它是一个具有一些应用边界/变换的 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 和 42
处的值,并且每次它都能工作
(不是科学的,而是实际的证明^^)
关于javascript - SIgmoid 函数的语法 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62048393/