首页 > 解决方案 > 如何用python拟合指数函数

问题描述

我是 python 新手,我正在尝试学习如何绘制和拟合数据。我有一个用于描述函数 y(x) 的经验公式,我想将其拟合为以下形式的指数:y = a* x ^ b

我正在使用 numpy.arrays 但我不确定 numpy.polyfit 在这里是否有用,因为我不想拟合高阶多项式,也不是以下形式的指数:y = a * e ^ (b*x)。

你能建议一种方法吗?

我的函数就是这个,这里写为 y (E_n):

E_n = np.linspace(1, 10**6, 10**6)
y= 0.018*(E_n**(-2.7)) * (1/(1+(2.77*cos(45)*E_n/115)) + 0.367/(1+(1.18*cos(45)*E_n/850)))

谢谢

标签: pythonnumpycurve-fitting

解决方案


考虑使用scipy.optimize.curve_fit. 定义您想要的形式的函数,将其传递给函数。仔细阅读链接的文档。在许多情况下,您可能需要为参数传递选定的初始值。curve_fit默认情况下将它们全部设为1默认值,这可能不会产生理想的结果。


推荐阅读