scipy 我需要一个可以在参数空间内拟合曲线的Python函数

qmelpv7a  于 7个月前  发布在  Python
关注(0)|答案(1)|浏览(56)

我一直在做一个项目,它使用SciPy的**optimize.curve_fit()函数通过改变3个参数来拟合曲线到一些数据,这一直工作得很好。
但是,我现在需要修改程序,使其中一个参数的边界是另一个参数的函数(例如,当x = 10 ybounds = 1 +/- 0.2,但当x = 11 ybounds = 1.1 +/- 0.2)。到目前为止,我唯一的想法是在第一个函数中放入另一个
optimize.curve_fit()**函数,但事实证明这是非常低效的(程序现在需要4小时而不是5分钟)。
有没有其他Python函数可以用来实现这一点?

pbpqsu0x

pbpqsu0x1#

您可能会发现lmfit(https://lmfit.github.io/lmfit-py)可以满足您的需求。除其他功能外,lmfit允许使用数学表达式约束参数,而无需更改用于对数据建模的函数的细节。
举一个简单的例子,可以让一个名为a的参数自由变化,而另一个参数b定义为1-sqrt(a)

相关问题