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使用内存zipfile对象在内存中打包文件示例
Apr 30 Python
Python基于pygame实现的弹力球效果(附源码)
Nov 11 Python
基于python的Tkinter实现一个简易计算器
Dec 31 Python
Python Django使用forms来实现评论功能
Aug 17 Python
python中reduce()函数的使用方法示例
Sep 29 Python
Flask 让jsonify返回的json串支持中文显示的方法
Mar 26 Python
Python从单元素字典中获取key和value的实例
Dec 31 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
Jul 04 Python
django 实现手动存储文件到model的FileField
Mar 30 Python
Python气泡提示与标签的实现
Apr 01 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
Python 如何查找特定类型文件
Aug 17 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 进度条实现代码
2009/03/10 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
2014/07/04 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
两种简单实现菜单高亮显示的JS类代码
2010/06/27 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
Js,alert出现乱码问题的解决方法
2013/06/19 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
Python复制目录结构脚本代码分享
2015/03/06 Python
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
python中os.remove()用法及注意事项
2021/01/31 Python
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
小区门卫值班制度
2014/01/24 职场文书
通信工程求职信
2014/07/16 职场文书
2014公安机关纪律作风整顿思想汇报
2014/09/13 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
2014年圣诞节寄语
2014/12/08 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python