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 匹配任意字符(包括换行符)的正则表达式写法
Oct 29 Python
python 中split 和 strip的实例详解
Jul 12 Python
解决python3爬虫无法显示中文的问题
Apr 12 Python
python实现简单的文字识别
Nov 27 Python
python3 字符串知识点学习笔记
Feb 08 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
Apr 17 Python
python缩进长度是否统一
Aug 02 Python
Python通过类的组合模拟街道红绿灯
Sep 16 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
Nov 13 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
Dec 10 Python
Pycharm在指定目录下生成文件和删除文件的实现
Dec 28 Python
总结Python变量的相关知识
Jun 28 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
用mysql内存表来代替php session的类
2009/02/01 PHP
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
详解Vue使用 vue-cli 搭建项目
2017/04/20 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python模块restful使用方法实例
2013/12/10 Python
python常见排序算法基础教程
2017/04/13 Python
Python Requests模拟登录实现图书馆座位自动预约
2018/04/27 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
python验证身份证信息实例代码
2019/05/06 Python
python递归法解决棋盘分割问题
2019/07/17 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
python pyg2plot的原理知识点总结
2021/02/28 Python
CSS3的颜色渐变效果的示例代码
2017/09/29 HTML / CSS
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
入党积极分子思想汇报范文
2014/01/05 职场文书
给护士表扬信
2014/01/19 职场文书
七一党日活动总结
2014/07/08 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
个人收入证明格式
2015/06/24 职场文书