1、首先定义一个误差函数,t为需要拟合的参数

def residual(t, x, y):
    return y - (t[0] * x ** 2 + t[1] * x + t[2])

2、接着设定真实值

x = np.linspace(-2, 2, 50)
A, B, C = 2, 3, -1           #为真实值
y = (A * x ** 2 + B * x + C) + np.random.rand(len(x))*0.75  
#np.random.rand(len(x))*0.75 加入噪声,len(x)为50,

3、使 用python里scipy.optimize.leastsq()函数

p = leastsq(residual, [0, 0, 0], args=(x, y))
#leastsq(func, x0, args=())  func 是我们自己定义的一个计算误差的函数即residual,args 是指定func的其他参数,调用leastsq进行数据拟合, residual为计算误差的函数,
x0为拟合参数的初始值,# args为需要拟合的实验数据这里将 (x,y)传递给args参数。Leastsq()会将这两个额外的参数传递给residual()因此residual()有三个参数,t是拟合函数的参数,yx是表示实验数据的数组
theta = p[0] #将拟合出来的参数赋值给theta
print('真实值:', A, B, C)
print('预测值:', theta)
y_hat = theta[0] * x ** 2 + theta[1] * x + theta[2]
plt.plot(x, y, 'r-', linewidth=2, label=u'Actual')
plt.plot(x, y_hat, 'g-', linewidth=2, label=u'Predict')
plt.legend(loc='upper left')
plt.grid()
plt.show()

最后生成结果

真实值: 2 3 -1
预测值: [ 1.99181411  2.97673496 -0.60163036]


关于theta = p[0] #将拟合出来的参数赋值给theta

本人开始有一个小疑问,就是p[0]不应该输出的是第一个参数吗,为什么是同时输出了三个参数,因此

输出了具体形式

print(p)
结果为(array([ 1.98688109,  2.99088257, -0.64934811]), 3),3代表有三个参数
print(theta),调用了第一个数组,即三个参数的列表
结果为[ 1.98688109  2.99088257 -0.64934811]

图像为

一元二次曲线拟合的最小二乘python实现相关推荐

  1. python 物理实验_基于Python和梯度下降算法的物理实验数据一元线性拟合方法

    基于 Python 和梯度下降算法的物理实验数据一元线性拟 合方法 关毅铬 ; 程敏熙 [期刊名称] < <物理通报> > [年 ( 卷 ), 期] 2019(000)010 ...

  2. 使用权值衰减算法解决神经网络过拟合问题、python实现

    使用权值衰减算法解决神经网络过拟合问题.python实现 一.what is 过拟合 二.过拟合原因 三.权值衰减 四.实验验证 4.1制造过拟合现象 4.2使用权值衰减抑制过拟合 一.what is ...

  3. 将Excel数据导入Matlab+Matlab二次曲线拟合

    将Excel数据导入MATLAB 文件类型是.xls,对应命令: xlsread('文件路径\文件名.xls') 文件类型是.xlsx,对应命令: xlsread('文件路径\文件名.xlsx') d ...

  4. 图像处理中二次曲线拟合

    2016/7/16 在一次提取发光管的中心线程序中,由于我们只拍到了断续而弯曲的发光管,所以无法使用光带中心线提取的方法进行提取. 在此背景下,我想到了拟合.之前有学过直线拟合的方法,名为最小二乘法. ...

  5. 在同一个二维坐标系绘制出一元二次曲线, sin正弦、cos余弦曲线 (numpy,matplotlib.pyplot )

    一元二次曲线, sin正弦.cos余弦曲线 (numpy,matplotlib.pyplot ) import numpy import matplotlib.pyplot as plt#范围0~2π ...

  6. Python:二次曲线拟合(节约生命法拟合)

    有一组离散点,可以直接使用plot画出来 肉眼观察大致是个二次的曲线,但是假如想拟合出曲线参数,比如 y=ax^2+bx+c,想求出abc,就有点繁琐.人生苦短,python一行. import ma ...

  7. python 一元回归拟合(含幂函数,对数,S函数,指数函数,一次、二次、三次,逆函数,生长、复合函数)

    提示 目录 因为工作最近需要对数据进行拟合生成指标 一.最后的成果 二.导入数据 三.将数据中的自变量因变量都抽出来,进行九种回归拟合 1.代码如下: 2.这里补充下变换知识 三 对数据进行绘图,画出 ...

  8. 【python】tensorflow和pytorch神经网络一元二次函数拟合

    目录 一.在TensorFlow中,首先定义 二.统一的任务,pytorch来实现一下 先看下要做的内容,创建一元二次函数y=x平方-0.5,其中为了更符合散点图模拟需要,在方程加噪点,以标准方差0. ...

  9. python一元三次方程拟合_一元三次方程的求根公式

    一元二次方程的回顾和启示 学过初中数学都知道对于任何一个实系数一元二次方程 ,通过配方可以得到 ,根据判别式 的符号,可以判断方程实根的个数,并且可以得到求根公式 要么是 个不同的实根 ,要么是 个二 ...

最新文章

  1. Laravel5.4 使用Carbon人性化显示发表评论中文时间
  2. soapui工具_python接口自动化(四)--接口测试工具介绍(详解)
  3. python自学笔记(三)python基本数据类型之列表list
  4. Android绘制自定义控件,Android自定义控件绘制基本图形基础入门
  5. java 求交集 算法_Java计算交集,差集,并集的方法示例
  6. DebootstrapChroot
  7. Scalability Tradeoffs: Why “The Ethereum
  8. GDCM:VRDS的测试程序
  9. KMP(字符串匹配)算法 O(m+n)
  10. 从情报分析的高度来看APT***
  11. 裁员消息满天飞,我们整理了一份真实名单
  12. Idea springboot应用,启动报错:org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputExcept
  13. loadrunner ftp linux,loadrunner ftp协议使用详细步骤
  14. Mariadb----字符类型 (五)
  15. 114 Python程序中的进程操作-进程间通信(multiprocess.Queue)
  16. gnome桌面kali linux状态栏显示网速
  17. 我所理解的生活(韩寒)
  18. msvcr100.dll丢失的解决方法,哪种解决方法值得推荐?
  19. 一款免费在线文字识别(OCR)工具
  20. mysql数据库设计教材_mySQL教程 第1章 数据库设计

热门文章

  1. echarts地图api series_百度地图2.0离线版与echarts结合
  2. 机器学习:逻辑回归(OvR 与 OvO)
  3. 【正点原子FPGA连载】第十九章IP核之双端口RAM实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
  4. 虚拟机CentOS7启动报错:Entering emergency mode
  5. 云服务器BBC销售渠道,云服务器bbc
  6. java maptodouble_Lambda表达式mapToDouble.sum精度问题
  7. GuessingGame
  8. 基于HTML和HTML5
  9. HTTP常见返回码(如:301,400,503)
  10. 拆长虹iho3000_(CA版)四川长虹iho-3000t晶晨s905l-b刷全网通系统教程可救砖头