如何在Python中将数学函数拟合到数据集中

时间:2016-03-03 18:14:54

标签: python python-2.7 math curve-fitting scatter-plot

我有三组数据,如下所示: enter image description here

我想知道他们遵循的功能是什么以及如何在Python中拟合这些曲线?

我猜第一个函数是这样的:

  

y = ax b + cx + d

我尝试了一些任意参数:

x = numpy.arange(1,10000,2.)
a = 100.
b = -0.003 
c = 50.
d = 0.1
y = -a/x**d+b*x+c
scatter(x,y)

该图显示如下:

enter image description here

任何人都可以帮助其他两个人吗?

2 个答案:

答案 0 :(得分:0)

scipy中有一个函数可用于使函数适合数据:scipy.optimize.curve_fit

答案 1 :(得分:0)

感谢您的帮助。我从朋友那里得到了一个解决方案。

y = -a / x ** d + b * x + c

由于d使拟合变得复杂,因此将d设置为0.1到1.0会更容易,然后使用curve_fit来拟合模型。最后找到最佳参数集。

赞赏!