Python基于最小二乘法实现曲线拟合示例


Posted in Python onJune 14, 2018

本文实例讲述了Python基于最小二乘法实现曲线拟合。分享给大家供大家参考,具体如下:

这里不手动实现最小二乘,调用scipy库中实现好的相关优化函数。

考虑如下的含有4个参数的函数式:

Python基于最小二乘法实现曲线拟合示例

构造数据

import numpy as np
from scipy import optimize
import matplotlib.pyplot as plt
def logistic4(x, A, B, C, D):
  return (A-D)/(1+(x/C)**B)+D
def residuals(p, y, x):
  A, B, C, D = p
  return y - logisctic4(x, A, B, C, D)
def peval(x, p):
  A, B, C, D = p
  return logistic4(x, A, B, C, D)
A, B, C, D = .5, 2.5, 8, 7.3
x = np.linspace(0, 20, 20)
y_true = logistic4(x, A, B, C, D)
y_meas = y_true + 0.2 * np.random.randn(len(y_true))

调用工具箱函数,进行优化

p0 = [1/2]*4
plesq = optimize.leastsq(residuals, p0, args=(y_meas, x))
            # leastsq函数的功能其实是根据误差(y_meas-y_true)
            # 估计模型(也即函数)的参数

绘图

plt.figure(figsize=(6, 4.5))
plt.plot(x, peval(x, plesq[0]), x, y_meas, 'o', x, y_true)
plt.legend(['Fit', 'Noisy', 'True'], loc='upper left')
plt.title('least square for the noisy data (measurements)')
for i, (param, true, est) in enumerate(zip('ABCD', [A, B, C, D], plesq[0])):
  plt.text(11, 2-i*.5, '{} = {:.2f}, est({:.2f}) = {:.2f}'.format(param, true, param, est))
plt.savefig('./logisitic.png')
plt.show()

Python基于最小二乘法实现曲线拟合示例

Python 相关文章推荐
Python数组条件过滤filter函数使用示例
Jul 22 Python
Python fileinput模块使用介绍
Nov 30 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
Jan 20 Python
从头学Python之编写可执行的.py文件
Nov 28 Python
python实现机器人行走效果
Jan 29 Python
Python对象转换为json的方法步骤
Apr 25 Python
Python Django 实现简单注册功能过程详解
Jul 29 Python
python超时重新请求解决方案
Oct 21 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
基于python检查矩阵计算结果
May 21 Python
python字典key不能是可以是啥类型
Aug 04 Python
Python结合Window计划任务监测邮件的示例代码
Aug 05 Python
详解python之协程gevent模块
Jun 14 #Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 #Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
Jun 13 #Python
tensorflow: 查看 tensor详细数值方法
Jun 13 #Python
终端命令查看TensorFlow版本号及路径的方法
Jun 13 #Python
解决Tensorflow使用pip安装后没有model目录的问题
Jun 13 #Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
Jun 13 #Python
You might like
PHP初学者头疼问题总结
2006/07/08 PHP
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
php _autoload自动加载类与机制分析
2012/02/10 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
php获得url参数中具有&的值的方法
2014/03/05 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
js导出格式化的excel 实例方法
2013/07/17 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
jquery图片放大镜效果
2017/06/23 jQuery
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
Js和VUE实现跑马灯效果
2020/05/25 Javascript
JavaScript实现答题评分功能页面
2020/06/24 Javascript
vuex Module将 store 分割成模块的操作
2020/12/07 Vue.js
Python简明入门教程
2015/08/04 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
2020/12/11 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
财产公证书格式
2014/04/10 职场文书
新生入学欢迎词
2015/01/26 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
python 实现的截屏工具
2021/05/08 Python
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫