我一直在尝试拟合双极 sigmoid 曲线 - 我想要以下曲线:

python - 适合双极 sigmoid python-LMLPHP

但我需要它移动和拉伸(stretch)。我有以下输入:

x[0] = 8, x[48] = 2

所以在 48 个周期内,我需要使用双极 sigmoid 函数从 8 下降到 2,以近似一个很好的平滑下降。任何想法如何得出适合这些参数的曲线?

到目前为止,这是我所拥有的,但我需要更改 sigmoid 函数:
import math

def sigmoid(x):
  return 1 / (1 + math.exp(-x))


plt.plot([sigmoid(float(z)) for z in range(1,48)])

最佳答案

从通用双极 sigmoid 函数:

f(x,m,b)= 2/(1+exp(-b*(x-m))) - 1

有两个参数和两个未知数 - shift m 和 scale b
你有两个条件:f(0) = 8, f(48) = 2

取第一个条件,表达 b vs m ,连同第二个条件写非线性函数求解,然后用 SciPy 的 fsolve 数值求解,并恢复 bm

这里通过类似方法问答相关:How to random sample lognormal data in Python using the inverse CDF and specify target percentiles?

关于python - 适合双极 sigmoid python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43213069/

10-12 23:36