Python,scipy,curve_fit,bounds:我如何通过两个间隔来约束param?

时间:2016-10-18 13:56:33

标签: python scipy curve-fitting

我使用scipy.optimize.curve_fit来为数据拟合S形曲线。我需要绑定[-3,0.5]和[0.5,3.0]

中的一个参数

我尝试了没有边界的拟合曲线,接下来如果参数低于零,我再次使用边界[-3,0.5]并且与[0.5,3.0]相反

是否可以将函数curve_fit与两个区间绑定?

2 个答案:

答案 0 :(得分:0)

不,least_squares(因此curve_fit)仅支持框约束。

答案 1 :(得分:0)

有一种粗略的方法可以做到这一点,那就是如果参数超出多个边界,你的函数会返回非常大的值。例如:

Service

如果参数超出多个边界,则会产生非常大的错误。如果你有[upper,lower]的单一范围,那么tou不应该使用这种方法,因为最新版本的scipy已经支持更常见的单边界范围类型的问题。