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 查找文件夹下所有文件 实现代码
Jul 01 Python
Python标准库之Sys模块使用详解
May 23 Python
python和bash统计CPU利用率的方法
Jul 10 Python
Python利用前序和中序遍历结果重建二叉树的方法
Apr 27 Python
Python 实现引用其他.py文件中的类和类的方法
Apr 29 Python
Python实现的个人所得税计算器示例
Jun 01 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
Nov 29 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
pytorch SENet实现案例
Jun 24 Python
用pandas划分数据集实现训练集和测试集
Jul 20 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 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
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
深入php内核之php in array
2015/11/10 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
vue 2.0路由之路由嵌套示例详解
2017/05/08 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
使用Python对Csv文件操作实例代码
2017/05/12 Python
浅析PEP572: 海象运算符
2019/10/15 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
python 类之间的参数传递方式
2019/12/20 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
python 实现数据库中数据添加、查询与更新的示例代码
2020/12/07 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
化学相关工作求职信
2013/10/02 职场文书
中专三年学习的个人自我评价
2013/12/12 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
民主生活会对照检查材料(统计局)
2014/09/21 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
值班管理制度范本
2015/08/06 职场文书
Mysql数据库命令大全
2021/05/26 MySQL
试了下Golang实现try catch的方法
2021/07/01 Golang