3

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

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

4

1 回答 1

3

恐怕旧的 FORTRAN-77 版本的 ODRPACK 包装scipy.odr不包含约束。ODRPACK95 是原始 ODRPACK 库的后续扩展,该库早于scipy.odr包装器,目前尚不清楚我们是否可以合法地将其包含在 scipy.xml 中。ODRPACK95 没有明确的许可信息,只有一般的 ACM TOMS 非商业许可。

于 2013-07-22T11:29:05.777 回答