У меня есть возможность добавить границы к sio.curve_fit. Есть ли способ расширить эту функцию границ, которая включает функцию параметров? Другими словами, скажем, у меня есть произвольная функция с двумя или более неизвестными константами. И затем давайте также скажем, что я знаю, что сумма всех этих констант меньше 10. Есть ли способ реализовать это последнее ограничение?
import numpy as np
import scipy.optimize as sio
def f(x, a, b, c):
return a*x**2 + b*x + c
x = np.linspace(0, 100, 101)
y = 2*x**2 + 3*x + 4
popt, pcov = sio.curve_fit(f, x, y, \
bounds = [(0, 0, 0), (10 - b - c, 10 - a - c, 10 - a - b)]) # a + b + c < 10
Очевидно, это было бы ошибкой, но я думаю, что это помогает понять суть. Есть ли способ включить функцию ограничения, включающую параметры для подгонки кривой?
Спасибо!