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 相关文章推荐
在Django的form中使用CSS进行设计的方法
Jul 18 Python
Android应用开发中Action bar编写的入门教程
Feb 26 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
Python实现简单的语音识别系统
Dec 13 Python
Python使用progressbar模块实现的显示进度条功能
May 31 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
Python 读写文件的操作代码
Sep 20 Python
使用Python监视指定目录下文件变更的方法
Oct 15 Python
详解Python3注释知识点
Feb 19 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
Jun 20 Python
使用Python做垃圾分类的原理及实例代码附源码
Jul 02 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 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
用文本作数据处理
2006/10/09 PHP
使用PHP 5.0创建图形的巧妙方法
2010/10/12 PHP
php中in_array函数用法分析
2014/11/15 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
javascript之bind使用介绍
2011/10/09 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
jQuery与JavaScript节点创建方法的对比
2016/11/18 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
python利用beautifulSoup实现爬虫
2014/09/29 Python
详解Python函数作用域的LEGB顺序
2016/05/14 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
使用keras实现非线性回归(两种加激活函数的方式)
2020/07/05 Python
Python 创建TCP服务器的方法
2020/07/28 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
2020/11/24 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
程序员岗位职责
2013/11/11 职场文书
现金会计岗位职责
2013/12/05 职场文书
暑期社会实践学生的自我评价
2014/01/09 职场文书
社区工作者先进事迹
2014/01/18 职场文书
效能监察建议书
2014/05/19 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
大二学年个人总结
2015/03/03 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技