我一直在研究一个项目,该项目使用SciPy的 optimize.curve_fit()函数,通过改变3个参数来拟合某些数据的曲线,这些参数运行良好。
然而,我现在需要改变程序,以便其中一个参数具有另一个参数的函数的边界(例如,当x = 10 ybounds = 1 +/- 0.2但是当x = 11 ybounds = 1.1 + / - 0.2)。我到目前为止唯一的想法就是在第一个中添加另一个 optimize.curve_fit()函数,但事实证明这非常低效(程序现在需要大约4个小时而不是5分钟) )。
我可以使用其他任何Python函数来完成此任务吗?
答案 0 :(得分:0)
提供您正在尝试做的更多详细信息会很有帮助。您可能会发现lmfit(https://lmfit.github.io/lmfit-py)正在尝试执行此操作。除其他功能外,lmfit
允许根据其他参数使用数学表达式约束参数,而无需更改用于建模数据的函数的详细信息。
举个简单示例,您可以让名为a
的参数自由变化,将另一个参数b
定义为1-sqrt(a)
。