Python应用实现双指数函数及拟合代码实例


Posted in Python onJune 19, 2020

双指数函数

待拟合曲线为 y(x) = bepx + ceqx

import matplotlib.pyplot as plt

x = ([0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5,
   0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0])
y = ([0.33, 0.26, 0.18, 0.16, 0.12, 0.09, 0.08, 0.07, 0.06, 0.06,
   0.06, 0.07, 0.09, 0.1, 0.15, 0.19, 0.25, 0.36, 0.47, 0.68])

plt.scatter(x, y)
plt.show()

Python应用实现双指数函数及拟合代码实例

拟合

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit


def double_exp(x, b, c, p, q):
  x = np.array(x)
  return b*np.exp(p*x) + c*np.exp(q*x)


x = ([0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5,
   0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0])
y = ([0.33, 0.26, 0.18, 0.16, 0.12, 0.09, 0.08, 0.07, 0.06, 0.06,
   0.06, 0.07, 0.09, 0.1, 0.15, 0.19, 0.25, 0.36, 0.47, 0.68])

popt, pcov = curve_fit(double_exp, x, y, [1, 1, 1, 1])
print(popt)

b = popt[0]
c = popt[1]
p = popt[2]
q = popt[3]

y_fit = double_exp(x, b, c, p, q)

plt.scatter(x, y)
plt.plot(x, y_fit, color='red', linewidth=1.0)

plt.show()

Python应用实现双指数函数及拟合代码实例

numpy 库,实现列表转矩阵,得以进行数学运算。matplotlib.pyplot 库,绘制图像。scipy.optimize 库,curve_fit() 函数,使用非线性最小二乘法拟合曲线。curve_fit()popt,拟合结果,在这里指b, c, p, q 的值。povc,该拟合结果对应的协方差。

拟合结果参数原函数拟合结果误差b0.00110.00110c0.42000.42420.42%p6.39986.49881.55%q-5.1551-5.21641.19%

误差可以满意。

经过测试,如果将初始参数设置为原函数参数(保留 4 位小数),拟合得到的结果并未发生变化。

经过测试,拟合使用的三种方法,"trf","lm" 和 "dogbox" 对该函数拟合结果影响微乎其微。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python网络编程实例简析
Sep 26 Python
Python编程中对文件和存储器的读写示例
Jan 25 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
Python中XlsxWriter模块简介与用法分析
Apr 24 Python
利用Python实现在同一网络中的本地文件共享方法
Jun 04 Python
Python中按值来获取指定的键
Mar 04 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
Oct 14 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
解决阿里云邮件发送不能使用25端口问题
Aug 07 Python
Python实现敏感词过滤的4种方法
Sep 12 Python
python网络爬虫实现发送短信验证码的方法
Feb 25 Python
Python使用海龟绘图实现贪吃蛇游戏
Jun 18 Python
PyQT5 实现快捷键复制表格数据的方法示例
Jun 19 #Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 #Python
详解pyinstaller生成exe的闪退问题解决方案
Jun 19 #Python
Python实现爬取并分析电商评论
Jun 19 #Python
keras 实现轻量级网络ShuffleNet教程
Jun 19 #Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 #Python
Keras设置以及获取权重的实现
Jun 19 #Python
You might like
PHP5 安装方法
2006/10/09 PHP
php学习笔记之 函数声明
2011/06/09 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
深入浅析用PHP实现MVC
2016/03/02 PHP
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
javascript与有限状态机详解
2014/05/08 Javascript
浅谈javascript实现八大排序
2015/04/27 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
ionic3 懒加载
2017/08/16 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
详解vue中移动端自适应方案
2019/05/05 Javascript
python虚拟环境 virtualenv的简单使用
2020/01/21 Javascript
Vue项目中使用flow做类型检测的方法
2020/03/18 Javascript
python实现用户登录系统
2016/05/21 Python
详解Python文本操作相关模块
2017/06/22 Python
python实现雪花飘落效果实例讲解
2019/06/18 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
Python响应对象text属性乱码解决方案
2020/03/31 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
使用CSS3配合IE滤镜实现渐变和投影的效果
2015/09/06 HTML / CSS
优秀班集体获奖感言
2014/02/03 职场文书
企业节能减排实施方案
2014/03/19 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
2015最新婚礼主持词
2015/06/30 职场文书
js实现模拟购物商城案例
2021/05/18 Javascript