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 strip lstrip rstrip使用方法
Sep 06 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
Jun 27 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
Mar 12 Python
Python创建对称矩阵的方法示例【基于numpy模块】
Oct 12 Python
使用Python对微信好友进行数据分析
Jun 27 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 Python
python使用response.read()接收json数据的实例
Dec 19 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
python matplotlib库绘制散点图例题解析
Aug 10 Python
python爬虫中多线程的使用详解
Sep 23 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
Oct 09 Python
python中time.ctime()实例用法
Feb 03 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
php cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
php判断变量类型常用方法
2012/04/24 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
一个php短网址的生成代码(仿微博短网址)
2014/05/07 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
js电信网通双线自动选择技巧
2008/11/18 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
react 创建单例组件的方法
2018/04/26 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
vue开发拖拽进度条滑动组件
2019/09/21 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
2020/04/01 Python
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
美国在线购物频道:Shop LC
2019/04/21 全球购物
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
科颜氏印度官网:Kiehl’s印度
2021/02/20 全球购物
函授教育个人学习的自我评价
2013/12/31 职场文书
25岁生日感言
2014/01/13 职场文书
秋季红领巾广播稿
2014/01/27 职场文书
2014年元旦促销活动方案
2014/02/22 职场文书
公务员保密承诺书
2014/03/27 职场文书
旅游与酒店管理专业求职信
2014/07/21 职场文书
民族学专业职业生涯规划范文:积跬步以至千里
2014/09/11 职场文书
毕业生就业推荐表自我评价
2015/03/02 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android