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