我在 Python 中使用 ODRPACK 库来拟合一些一维数据。它工作得很好,但我有一个问题:是否有可能对拟合参数进行限制?例如,如果我有一个模型 y = a * x + b,并且由于物理原因,参数 a 只能在 (-1, 1) 范围内。我发现此类约束可以在 ODRPACK95 库的原始 Fortran 实现中完成,但我找不到如何在 Python 中执行此操作。
当然,我可以实现我的函数,这样它们将返回非常大的值,如果拟合参数超出范围并且卡方也会很大,但我想知道是否有正确的方法来做到这一点。
最佳答案
恐怕 scipy.odr
包装的旧 FORTRAN-77 版本的 ODRPACK 没有包含约束。 ODRPACK95 是原始 ODRPACK 库的后来扩展,它早于 scipy.odr
包装器,目前尚不清楚我们是否可以合法地将它包含在 scipy 中。 ODRPACK95 没有明确的许可信息,只有一般的 ACM TOMS 非商业许可。
关于python - 使用 Python 和 ODRPACK 拟合参数的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17783481/