Я пытаюсь подогнать кривую по нескольким x
и y
точкам, основываясь на моей функции logisti c.
import scipy.optimize as opt
popt, pcov = opt.curve_fit(logistic, x, y, maxfev=50000)
y_fitted = logistic(x_future, *popt
, являющейся y
:
array([2.000e+00, 4.000e+00, 6.000e+00, 9.000e+00, 1.300e+01, 2.100e+01,
3.000e+01, 3.900e+01, 4.100e+01, 5.900e+01, 7.800e+01, 1.120e+02,
1.690e+02, 2.450e+02, 3.310e+02, 4.480e+02, 6.420e+02, 7.850e+02,
1.020e+03, 1.280e+03, 1.600e+03, 2.060e+03, 2.362e+03, 2.995e+03,
3.544e+03])
x
:
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12.,
13., 14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24.])
и моя функция logisti c:
def logistic(x):
return 1/(a+b*np.exp(-k*x))
a
, b
и k
предварительно вычислены, единственная ценность ввод x
и должен быть рассчитан на основе этой функции.
Чего мне не хватает?