注意:SciPy的0.17版中的新功能
假设您想对数据拟合模型,如下所示:
y=a*t**alpha+b
并限制了alpha
0<alpha<2
而其他参数a和b保持空闲。然后,我们应按以下方式使用curve_fit的bounds选项:
import numpy as np
from scipy.optimize import curve_fit
def func(t, a,alpha,b):
return a*t**alpha+b
param_bounds=([-np.inf,0,-np.inf],[np.inf,2,np.inf])
popt, pcov = curve_fit(func, xdata, ydata,bounds=param_bounds)
来源在这里。