使用Python和ODRPACK对拟合参数的约束

时间:2013-07-22 09:01:27

标签: python scipy curve-fitting

我在Python中使用ODRPACK库来容纳一些1d数据。它工作得很好,但我有一个问题:是否有可能对拟合参数进行约束?例如,如果我有一个模型y = a * x + b,并且由于物理原因,参数a只能在范围(-1,1)中。我发现这些约束可以在ODRPACK95库的原始Fortran实现中完成,但我无法在Python中找到如何做到这一点。

当然,我可以实现我的函数,使得它们将返回非常大的值,如果拟合参数超出界限并且chi平方也会很大,但我想知道是否有正确的方法来做到这一点。 / p>

1 个答案:

答案 0 :(得分:2)

我担心由scipy.odr包装的旧版FORDRAN-77版本的ODRPACK不包含约束。 ODRPACK95是原始ODRPACK库的后续扩展,它早于scipy.odr包装器,并且不清楚我们是否可以合法地将其包含在scipy中。 ODRPACK95没有明确的许可信息,只有一般的ACM TOMS非商业许可证。