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实现爬取知乎神回复简单爬虫代码分享
Jan 04 Python
Python绘制3d螺旋曲线图实例代码
Dec 20 Python
python队列Queue的详解
May 10 Python
Python+opencv 实现图片文字的分割的方法示例
Jul 04 Python
在Django的View中使用asyncio的方法
Jul 12 Python
Python中函数的返回值示例浅析
Aug 28 Python
Django之模板层的实现代码
Sep 09 Python
在win64上使用bypy进行百度网盘文件上传功能
Jan 02 Python
关于tensorflow softmax函数用法解析
Jun 30 Python
Python创建自己的加密货币的示例
Mar 01 Python
numpy数据类型dtype转换实现
Apr 24 Python
Python各协议下socket黏包问题原理
Apr 12 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(8) php 数组
2010/03/05 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
2016/10/08 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
jquery $("#variable") 循环改变variable的值示例
2014/02/23 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
微信小程序动态的加载数据实例代码
2017/04/14 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
python冒泡排序算法的实现代码
2013/11/21 Python
Python黑帽编程 3.4 跨越VLAN详解
2016/09/28 Python
python学习必备知识汇总
2017/09/08 Python
python机器学习之神经网络(一)
2017/12/20 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
python数据化运营的重要意义
2019/11/25 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
python中如何写类
2020/06/29 Python
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
如何高效率的查找一个月以内的数据
2012/04/15 面试题
外贸实习生自荐信范文
2013/11/24 职场文书
工作态度怎么写
2015/06/25 职场文书
Oracle创建只读账号的详细步骤
2021/06/07 Oracle
Javascript设计模式之原型模式详细
2021/10/05 Javascript