最小二乘拟合(scipy实现)
Scipy库在numpy库基础上增加了众多数学,科学及工程计算中常用库函数。如线性代数,常微分方程数值求解,信号处理,图像处理,稀疏矩阵等。
如下理解通过Scipy进行最小二乘法拟合运算
最小二乘拟合(optimize子函数)
from scipy.optimize import leastsq
optimize函数含有实现最小二乘法的函数 leastsq,
如下通过对正弦函数的拟合,求得最小二乘拟合参数。func三参数A,k,theta分别表示对应振幅,频率,相角。
import numpy as np
from scipy.optimize import leastsq
import pylab as pl
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['KaiTi'] # 解决中文乱码
mpl.rcParams['axes.unicode_minus'] = False # 解决负号显示为方框的问题 def func(x,p): # 数据拟合所用函数: A*sin(2*pi*k*x + theta) A,k,theta = p
return A*np.sin(2*np.pi*k*x + theta) def residuals(p,y,x): # 实验数据x,y和拟合函数之间的差,p为拟合需要找到的系数 return y - func(x,p) x = np.linspace(0, -2*np.pi, 100) # 创建等差数列,100表示数据点个数
A,k,theta = 10, 0.34 , np.pi/6 # 真实数据的函数参数
y0 = func(x, [A,k,theta]) # 真实数据
y1 = y0 + 2* np.random.randn(len(x)) # 加入噪声后的实验数据 p0 = [7,0.2,0] # 第一次猜测的函数拟合参数 """
1、调用leastsq进行数据拟合
2、residuals为计算误差的函数
3、p0为拟合参数的初始值
4、args为需要拟合的实验数据
"""
plsq = leastsq(residuals,p0,args = (y1,x)) print(u"真实参数:", [A,k,theta])
print(u"拟合参数:", plsq[0]) #实验数据拟合后的参数 # 作图
pl.plot(x, y0, label = u'真实数据')
pl.plot(x, y1, label = u'带噪声的实验数据')
pl.plot(x, func(x,plsq[0]) , label = u"拟合数据")
pl.legend()
pl.show()
图形展示:
以上可以看出由于正弦函数的周期性,拟合参数规律走势和和真实数据实际上是一致的。
最小二乘拟合(scipy实现)的更多相关文章
- python 最小二乘拟合,反卷积,卡方检验
import numpy as np # from enthought.mayavi import mlab ''' ogrid[-1:5:6j,-1:5:6j] [array([[-1. ], [ ...
- 最小二乘拟合(转)good
在物理实验中经常要观测两个有函数关系的物理量.根据两个量的许多组观测数据来确定它们的函数曲线,这就是实验数据处理中的曲线拟合问题.这类问题通常有两种情况:一种是两个观测量x与y之间的函数形式已知,但一 ...
- OpenCV 最小二乘拟合方法求取直线倾角
工业相机拍摄的图像中,由于摄像质量的限制,图像中的直线经过处理后,会表现出比较严重的锯齿.在这种情况下求取直线的倾角(其实就是直线的斜率),如果是直接选取直线的开始点和结束点来计算,或是用opencv ...
- halcon之最小二乘拟合直线
如果不了解最小二乘算法 请先阅读: Least squares的算法细节原理https://en.wikipedia.org/wiki/Least_squares 通常在halcon中拟合直线会用ho ...
- 非线性函数的最小二乘拟合及在Jupyter notebook中输入公式 [原创]
突然有个想法,能否通过学习一阶RC电路的阶跃响应得到RC电路的结构特征——时间常数τ(即R*C).回答无疑是肯定的,但问题是怎样通过最小二乘法.正规方程,以更多的采样点数来降低信号采集噪声对τ估计值的 ...
- 数值分析实验之曲线最小二乘拟合含有噪声扰动(python实现)
一.实验目的 掌握最小二乘法拟合离散数据,多项式函数形式拟合曲线以及可以其他可以通过变量变换转化为多项式的拟合曲线目前待实现功能: 1. 最小二乘法的基本实现. 2. 用不同数据量,不同参数,不同的多 ...
- 用正交多项式作最小二乘拟合的java实现(转)
import java.util.Scanner; public class Least_square_fit { public static double Least_square_method(i ...
- Scipy教程 - 优化和拟合库scipy.optimize
http://blog.csdn.net/pipisorry/article/details/51106570 最优化函数库Optimization 优化是找到最小值或等式的数值解的问题.scipy. ...
- scipy插值与拟合
原文链接:https://zhuanlan.zhihu.com/p/28149195 1.最小二乘拟合 实例1 import numpy as np import matplotlib.pyplot ...
随机推荐
- Spring容器的创建原理
1.new ioc容器(AnnotationConfigApplicationContext 注解ioc) 2.refresh()方法调用 2.1 prepareRefresh()刷新前的预处理 a: ...
- 51nod 1515:明辨是非 并查集合并
1515 明辨是非 题目来源: 原创 基准时间限制:1 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 收藏 关注 给n组操作,每组操作形式为x y p. 当p为1时,如果第x ...
- zoj1002
Suppose that we have a square city with straight streets. A map of a city is a square board with n r ...
- linux下nginx的安装和配置
准备目录 [root@sqh ~]# mkdir /usr/local/nginx [root@sqh ~]# cd /usr/local/nginx 添加一些支持和依赖 1.安装gcc 安装redi ...
- 九十六、SAP中ALV事件之九,显示功能按钮栏中显示ALV加强工具栏
一.排查了很久,终于找到问题所在.把问题解决了,代码如下: 二.运行效果如下 三.试一试,标准功能都可以用 完美
- mysql第六篇 : MySQL索引原理与慢查询优化
浏览目录 一.索引介绍 二.索引方法 三.索引类型 四.聚合索引和辅助索引 五.测试索引 六.正确使用索引 七.组合索引 八.注意事项 九.查询计划 十.慢日志查询 十一.大数据量分页优化 一.索引介 ...
- K8S Kubernetes 简单介绍 转自 http://time-track.cn/kubernetes-trial.html Kubernetes初体验
这段时间学习了一下 git jenkins docker 最近也在看 Kubernetes 感觉写得很赞 也是对自己对于K8S 有了进一步得理解 感谢 倪 大神得Blog 也希望看到这篇Bl ...
- Docker 网络详解及 pipework 源码解读与实践
转载自:https://www.infoq.cn/article/docker-network-and-pipework-open-source-explanation-practice/ Docke ...
- VMware Workstation 不可恢复错误: (vcpu-0) vcpu-0:VERIFY vmcore/vmm/main/physMem_monitor.c:1123
在新机器上,启动虚拟机报了个错: 使用VMware® Workstation 11.1.2 build-2780323安装MacOS系统时出现以下错误: VMware Workstation 不可恢复 ...
- EUI库 - 快速入口之项目配置
egretProperties.json exmlRoot 指定exml文件存放根目录,该路径必须为相对路径,目录内只能有exml文件 themes 主题文件数组,配置所有主题文件路径,该 ...