Próbuję dopasować logistyczną krzywą wzrostu do moich danych za pomocą curve_fit, używając następującej funkcji jako danych wejściowych.Ograniczanie wartości dla curve_fit (scipy.optimize)
def logistic(x, y0, k, d, a, b):
if b > 0 and a > 0:
y = (k * pow(1 + np.exp(d - (a * b * x)), (-1/b))) + y0
elif b >= -1 or b < 0 or a < 0:
y = (k * pow(1 - np.exp(d - (a * b * x)), (-1/b))) + y0
return y
Jak widać funkcja, której używam, ma pewne ograniczenia dotyczące wartości, które może zaakceptować dla parametrów aib. Czy wiesz, jak radzić sobie z niepoprawnymi wartościami? Czy funkcja wejściowa powinna wywołać wyjątek, czy zwrócić fałszywą wartość? Z góry dzięki.
wydaje się działać nieco lepiej, dziękuję! Jeszcze trochę się z tym pobawię ... – mgalardini