微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python曲线拟合库,允许我为参数分配边界

如何解决Python曲线拟合库,允许我为参数分配边界

注意:SciPy的0.17版中的新功能

假设您想对数据拟合模型,如下所示:

y=a*t**alpha+b

并限制了alpha

0<alpha<2

而其他参数a和b保持空闲。然后,我们应按以下方式使用curve_fit的bounds选项:

import numpy as np
from scipy.optimize import curve_fit
def func(t, a,alpha,b):
     return a*t**alpha+b
param_bounds=([-np.inf,0,-np.inf],[np.inf,2,np.inf])
popt, pcov = curve_fit(func, xdata, ydata,bounds=param_bounds)

来源在这里

解决方法

我希望能够执行拟合,使我可以将任意曲线函数拟合到数据,并允许我在参数上设置任意界限,例如,我想拟合函数:

f(x) = a1(x-a2)^a3\cdot\exp(-\a4*x^a5)

说:

  • a2 在以下范围内: (-1,1)
  • a3并且a5是积极的

有一个很好的scipy
curve_fit

函数,但是它不允许指定参数范围。还有一个不错的http://code.google.com/p/pyminuit/库,该库可以进行泛型最小化,并且可以设置参数的范围,但在我的情况下,它没有涵盖范围。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。