Ограничение значений для curve_fit (scipy.optimize)

) Я пытаюсь подобрать кривую логистического роста к моим данным с помощью curve_fit, используя следующую функцию в качестве входных данных.

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

Как вы можете видеть, функция, которую я использую, имеет некоторые ограничения на значения, которые она может принимать для параметров a и b.Есть предположения о том, как обрабатывать неправильные значения? Должна ли функция ввода вызывать исключение или возвращать фиктивное значение? Заранее спасибо.

7
задан mgalardini 1 March 2012 в 14:48
поделиться