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采用getopt解析命令行输入参数实例
Sep 30 Python
python使用wxpython开发简单记事本的方法
May 20 Python
Python图像处理之识别图像中的文字(实例讲解)
May 10 Python
Python使用matplotlib绘制随机漫步图
Aug 27 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
Window10下python3.7 安装与卸载教程图解
Sep 30 Python
Python 脚本的三种执行方式小结
Dec 21 Python
python如何绘制疫情图
Sep 16 Python
详解tensorflow之过拟合问题实战
Nov 01 Python
Python 文本滚动播放器的实现代码
Apr 25 Python
python通过opencv调用摄像头操作实例分析
Jun 07 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
?繁体转换的class
2006/10/09 PHP
phplock(php进程锁) v1.0 beta1
2009/11/24 PHP
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
php+mysql+jquery实现日历签到功能
2017/02/27 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
2017/07/27 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
jQuery 解析xml文件
2009/08/09 Javascript
javascript 函数调用规则
2009/08/26 Javascript
Javascript 日期处理之时区问题
2009/10/08 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
Python正则抓取网易新闻的方法示例
2017/04/21 Python
使用python判断你是青少年还是老年人
2018/11/29 Python
python+pygame实现坦克大战
2019/09/10 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
python 实现两个npy档案合并
2020/07/01 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
英国汽车零件购物网站:GSF Car Parts
2019/05/23 全球购物
自1926年以来就为冰岛保持温暖:66°North
2020/11/27 全球购物
设置器与访问器的定义以及各自特点
2016/01/08 面试题
揭牌仪式主持词
2014/03/19 职场文书
卖房协议书
2014/04/11 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
Python使用pyecharts控件绘制图表
2022/06/05 Python