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

标签 python scipy curve-fitting

我在 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/

相关文章:

python - "Easing"Matplotlib 中的转换

python - 在有和没有SciPy的情况下计算k组合的数量

python scipy fsolve 递归函数

具有积分函数的python拟合曲线

r - 在R中使用lm和nls进行正弦曲线拟合

python - 如何等待鼠标点击?

python - 用户输入值用作十进制值python

python - 使用 scipy 在 semilogy 图中进行曲线拟合或插值

javascript - Python中使用Selenium模拟鼠标ScrollUp

python - 在 Flask 响应头中设置 Unicode 文件名