我使用optimize.leastsq来拟合数据.我想将拟合参数约束到一定范围.使用optimize.leastsq时是否可以定义边界?Bounds在optimize.fmin_slsqp中实现,但我更喜欢使用optimize.leastsq.
我认为处理边界的标准方法是在参数超出边界时使函数最小化(残差)非常大.
import scipy.optimize as optimize
def residuals(p,x,y):
if within_bounds(p):
return y - model(p,x)
else:
return 1e6
p,cov,infodict,mesg,ier = optimize.leastsq(
residuals,p_guess,args=(x,y),full_output=True,warning=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8134 次 |
| 最近记录: |