首页 > TAG信息列表 > curve-fitting

numpy拟合的傅立叶级数:fft与编码

假设我有一些要拟合傅立叶级数的数据y.在此post上,Mermoz使用该系列的复杂格式发布了一个解决方案,并“用riemann和计算系数”.在另一个post上,通过FFT获得序列,并写下一个示例. 我尝试实现两种方法(下面的图像和代码-注意每次运行代码时,由于使用numpy.random.normal会生成不同的

scipy.polyfit(x,y,100)将是100阶polynome,但是matplotlib.pyplot.legend显示53吗?

我很难弄清楚为什么我的plt.legend显示错误的多项式学位.它说53而不是100.我的代码将如下所示: import scipy as sp import numpy as np import urllib2 import matplotlib.pyplot as plt url = 'https://raw.github.com/luispedro/BuildingMachineLearningSystemsWithPython/mast

适用于对随机噪声不太敏感的数据点的Python圆拟合

我有一组等距间隔的测得半径(t epsilon误差).该模型是半径为(R)的圆,中心为(r,Alpha),并添加了较小的噪声和一些比噪声大得多的随机误差值. 问题是找到圆模型的中心(r,Alpha)和圆的半径(R).但是它对随机误差应该不太敏感(在下面的数据点7和14). 某些半径可能会丢失,因此简单均值在

python中的有理函数曲线拟合

我正在尝试使用有理函数将曲线拟合到X和Y数据点.可以使用cftool(http://de.mathworks.com/help/curvefit/rational.html)在Matlab中完成.但是,我希望在Python中做同样的事情.我尝试使用scipy.optimize.curve_fit,但最初需要一个功能,而我没有.解决方法:您具有功能,它是理性功能.因

用Python拟合总和

假设拟合函数的类型为: 我打算将这种函数适合我拥有的实验数据(x,y = f(x)).但是后来我有些怀疑: >当涉及总和时,如何定义拟合函数? >一旦定义了函数,即def func(..)return …仍然可以使用scipy.optimize中的curve_fit吗?因为现在与通常的拟合情况相比,其中涉及一组参数s_i和r_i,其中单

如何在2D数组上加速python curve_fit?

我必须在大量数据(5 000 000)上使用curve_fit numpy函数. 所以基本上我已经创建了一个2D数组.第一维是要执行的配件数量,第二维是用于配件的点数. t = np.array([0 1 2 3 4]) for d in np.ndindex(data.shape[0]): try: popt, pcov = curve_fit(func, t, np.squeeze(data[d

python-curve_fit似乎无法拟合高斯和

在这里,我定义了一个函数,用于返回任意数量的高斯分布之和: import numpy from numpy import * import matplotlib.pyplot as plt from scipy.optimize import curve_fit def GaussSum(x,*p): n=len(p)/3 A=p[:n] w=p[n:2*n] c=p[2*n:3*n] return sum([ A[i]*

正确地为scipy的curve_fit定义矢量函数

我在尝试曲线拟合时有一个问题,python如何评估x数组的形式为(f1(x),f2(x))的向量函数. import numpy as np from scipy.optimize import curve_fit def func(x,a,b,c): return np.array([a*x**b+c,a*x**b+c+1]) ydata = np.array([[1,2],[3,4],[5,6],[7,8]],dtype=float) xd

曲线拟合拟合高度相关的数据的问题

对于我的学士学位论文,我正在一个项目中进行数据拟合.问题有点复杂,但是我尝试在此处将问题最小化: 我们有三个数据点(几乎没有理论数据可用),但是这些点是高度相关的. 如上图所示,使用curve_fit拟合这些点,我们得到了可怕的拟合结果. (可以通过手动更改拟合参数来轻松提高拟合度).

Python中的非线性曲线拟合程序

我想找到并绘制一个函数f,该函数表示拟合在我已经知道的一些设定点x和y上的曲线. 经过一番研究后,我开始尝试scipy.optimize和curve_fit,但在参考指南上我发现该程序改用函数来拟合数据,并且假设ydata = f(xdata,* params)eps. 所以我的问题是:我必须在代码中进行哪些更改才能使用cu

scipy curve_fit不喜欢数学模块

在尝试使用scipy.optimize curve_fit创建示例时,我发现scipy似乎与Python的math模块不兼容.虽然函数f1正常运行,但f2会引发错误消息. from scipy.optimize import curve_fit from math import sin, pi, log, exp, floor, fabs, pow x_axis = np.asarray([pi * i / 6 for i in ran

Python上的LMFIT:TypeError:只能将size-1数组转换为Python标量

我正在尝试在python(Anaconda)上使用LMFIT创建曲线拟合程序,但是我一直收到相同的错误消息:TypeError:只有大小为1的数组可以转换为Python标量.我只能使用一个函数来执行优化,但是当我尝试优化调用其他用户定义函数的函数时,出现此错误. import numpy as np from matplotlib import

我如何使用“ scipy.optimize.curve_fit”使数据点平滑拟合?

我想使用scipy.optimize.curve_fit拟合一些数据点.不幸的是,我身体不稳定,我也不知道为什么. import numpy as np import matplotlib.pyplot as plt from scipy.optimize import curve_fit M = np.array([730,910,1066,1088,1150], dtype=float) V = np.array([95.71581923, 146.

拟合步函数

我正在尝试使用scipy.optimize.leastsq安装步进功能.考虑以下示例: import numpy as np from scipy.optimize import leastsq def fitfunc(p, x): y = np.zeros(x.shape) y[x < p[0]] = p[1] y[p[0] < x] = p[2] return y errfunc = lambda p, x, y: fitfunc(p,

泊松分布拟合

我需要将泊松分布拟合到一组数据: fitfunc = lambda p, x: p[0]*pow(p[1],x)*pow(e,-p[1])/math.gamma(x+1) # Target function errfunc = lambda p, x, y: fitfunc(p, x) - y # Distance to the target function p0 = [1., 2.] # Initial guess for the parameters p1, success =

scipy.optimize.curve_fit错误的图(类似于移动平均值)

我正在尝试将指数定律纳入我的数据.我的(x,y)样本解释起来相当复杂,因此对于一般的理解和可重复性,我会说:两个变量都是浮点型和连续型,0 <= x <= 100,而0 <= y <= 1. from scipy.optimize import curve_fit import numpy import matplotlib.pyplot as plt #ydata=[...] is my li

曲线拟合与python错误

我正在尝试将数据拟合为(cos(x))^ n.理论上n的值为2,但我的数据应为1.7.当我定义拟合函数并尝试curve_fit时,出现错误 def f(x,a,b,c): return a+b*np.power(np.cos(x),c) param, extras = curve_fit(f, x, y) 这是我的资料 x y error 90 3.3888756187

高斯拟合返回负西格玛

我的一种算法基于高斯函数执行自动峰值检测,然后根据sigma的乘数(用户设置)或“半峰全宽”确定边缘.在用户指定他/她希望将峰值限制在2 Sigma的情况下,该算法从峰值中心(mu)取-/ 2 * sigma.但是,我注意到curve_fit返回的sigma可以为负,这是之前已经注意到的,如here所示.但是,当我通

傅立叶级数适合Python

我有一些我想使用2、3或4度的傅立叶级数拟合的数据. 尽管this堆栈溢出的问题和答案已经接近我要使用scipy进行的操作,但它们已经将其系数预先定义为tau = 0.045.我希望我的拟合找到具有95%置信区间的可能系数(a0,w1,w2,w3等),就像傅立叶级数的MATLAB curve fit等效.我看到的另一个选

在Python中拟合分箱的对数正态数据

我有一系列粒度分布数据按百分比体积分数排列,如下: size % 6.68 0.05 9.92 1.15 etc. 我需要将这些数据拟合到对数正态分布,我计划使用python的stats.lognorm.fit函数,但这似乎期望输入作为变量数组而不是分箱数据,从我的read判断. 我计划使用for循环遍历数据并将每个大小

python – 曲线拟合失败,指数但zunzun正确

我正在尝试计算两种形式的指数对某些x,y数据的最佳拟合(数据文件可以从here下载) 这是代码: from scipy.optimize import curve_fit import numpy as np # Get x,y data data = np.loadtxt('data.txt', unpack=True) xdata, ydata = data[0], data[1] # Define first exponential

python – 使用curve_fit来拟合数据

我是scipy和matplotlib的新手,我一直在尝试将函数与数据相匹配. Scipy Cookbook中的第一个例子非常有效,但是当我尝试从文件中读取点时,我给出的初始系数(下面的p0)似乎从未真正改变,协方差矩阵总是INF. 我试图在一条线后拟合数据,但无济于事.我导入数据的方式有问题吗?如果是这样,

python – 曲线拟合为’datetime’格式的时间序列?

这是我的问题:polyfit没有采用日期时间值,所以我用mktime转换日期时间产生多项式拟合工作 z4 = polyfit(d, y, 3) p4 = poly1d(z4) 然而,对于情节,我想在轴上的日期时间描述,并没有#弄清楚如何做到这一点.你能帮助我吗? fig = plt.figure(1) cx= fig.add_subplot(111) xx = lin

Python曲线拟合库,允许我为参数分配边界

我希望能够执行允许我将任意曲线函数拟合到数据的拟合,并允许我在参数上设置任意边界,例如我想拟合函数: f(x) = a1(x-a2)^a3\cdot\exp(-\a4*x^a5) 并说: > a2在以下范围内:( – 1,1) > a3和a5是正面的 有很好的scipy curve_fit功能,但它不允许指定参数边界.还有一个很好的http://c

python – Scipy的curve_fit没有给出合理的结果

我有一个简单的x,y数据集,至少乍一看.问题是scipy.optimize.curve_fit为其中一个参数提供了一个非常大的值,我不知道这是否在数学上是正确的,或者我是如何拟合数据的. 下图显示了以蓝色获得的数据点和最佳拟合.使用的曲线(下面的MWE中的函数)有四个参数a,b,c,d拟合: > a给出大约x值,