python - 如何用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)))
谢谢
解决方案
考虑使用scipy.optimize.curve_fit
. 定义您想要的形式的函数,将其传递给函数。仔细阅读链接的文档。在许多情况下,您可能需要为参数传递选定的初始值。curve_fit
默认情况下将它们全部设为1
默认值,这可能不会产生理想的结果。
推荐阅读
- batch-file - 如何重命名文件夹内的所有文件,变量内有空格
- wordpress - rails 但在 WordPress 中 sleep() 方法的功能
- excel - 如何始终在同一列中引用单元格,但紧邻可以垂直移动的边框上方?
- jbpm - 在 Tomcat 9 上运行 jBPM 7.23.0 项目
- android - 如何使用 AnimatedImageDrawable 显示以 ByteBuffer 作为源的动画 GIF
- android - 如何在 Retrofit 上发送 multipart/form-data?
- javascript - 可以正式的表单输入和标签交换吗?
- php - 单选按钮未通过 codeigniter 中的 ajax 在数据库中更新
- javascript - 如何在按钮单击时切换所有单选框?
- php - 在php中选择答案时如何显示“正确”或“错误”?