Синтаксис сигмоидной функции - Javascript - PullRequest
1 голос
/ 27 мая 2020

Я безуспешно пытался заставить эту функцию работать. Может ли кто-нибудь пролить свет?

Это сигмоид с некоторыми примененными границами / трансформациями. Вот ссылка на функцию в 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;

Функция не ограничена, как ожидалось, и она должна проходить через 0,0, как в примере Desmos ... но это не так! Я знаю, что, вероятно, там слишком много скобок, и решение будет очевидно очевидным для тех, кто лучше понимает это, поэтому не могли бы вы мне помочь?

Спасибо !!

1 Ответ

1 голос
/ 27 мая 2020

Вы случайно поместили последний +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 и каждого раз это работает (не научное c, а практическое доказательство ^^)


Надеюсь, это будет полезно! Если это работает, вы можете принять этот ответ, нажав на галочку ^^

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...