标签: curve-fitting

高斯曲线拟合算法

伙计们,我一直试图获得高斯拟合某些数据集,这些数据集看起来像是一个扭曲的正态分布.我一直在使用软件来做到这一点.我想知道我是否可以应用迭代算法将这些数据集转换为高斯拟合曲线,原始曲线的标准偏差和平均值是输入.有任何想法吗?

algorithm statistics gaussian curve-fitting

2
推荐指数
1
解决办法
8216
查看次数

如何在R或gnuplot中应用幂拟合趋势线?

对于一个简单的xy散点图,我可以用R或gnuplot以什么方式应用幂拟合曲线?我有一个包含两列的文件.

r gnuplot curve-fitting

2
推荐指数
1
解决办法
8515
查看次数

我怎样才能适应余弦函数?

我写了一个python函数来获取以下余弦函数的参数: 在此输入图像描述

param = Parameters()    
param.add( 'amp', value = amp_guess, min = 0.1 * amp_guess, max = amp_guess )

param.add( 'off', value = off_guess, min = -10, max = 10 )

param.add( 'shift', value = shift_guess[0], min = 0, max = 2 * np.pi, )

fit_values = minimize( self.residual, param, args = ( azi_unique, los_unique ) )

def residual( self, param, azi, data ):
        """
        Parameters
        ----------

        Returns
        -------
        """
        amp = param['amp'].value
        off = param['off'].value
        shift = param['shift'].value
        model = …
Run Code Online (Sandbox Code Playgroud)

optimization matlab numpy curve-fitting

2
推荐指数
1
解决办法
4721
查看次数

高斯拟合python中的直方图数据:Trust Region v/s Levenberg Marquardt

我的直方图清晰地显示了两个峰.但是,当用双高斯曲线拟合它时,它只显示一个峰值.几乎跟随stackoverflow中显示的每个答案.但未能得到正确的结果.它以前是由我在Fortran的老师完成的,他有两个高峰.我在一次试验中使用leastsq了python scipy.optimize.我也应该提供我的数据吗?这是我的代码.

binss = (max(x) - min(x))/0.05 #0.05 is my bin width
n, bins, patches = plt.hist(x, binss, color = 'grey') #gives the histogram

x_a = []
for item in range(len(bins)-1):
    b = (bins[item]+bins[item+1])/2
    x_a.append(b)

x_avg = np.array(x_a)
y_real = n

def gauss(x, A, mu, sigma):
    gaus = []
    for item in range(len(x)):
        gaus.append(A*e**(-(x[item]-mu)**2./(2.*sigma**2)))
    return np.array(gaus)
A1, A2, m1, m2, sd1, sd2 = [25, 30, 0.3, 0.6, -0.9, -0.9]

#Initial guesses for leastsq
p = [A1, A2, …
Run Code Online (Sandbox Code Playgroud)

python gaussian curve-fitting python-2.7

2
推荐指数
1
解决办法
1806
查看次数

平滑离散数据集

我试图平滑此数据集并生成带有误差条的单个代表性曲线.获取数据点的方法是通过相当粗略的步骤离散化的.我没有太多的编程经验,但我正在努力学习.我读到高斯滤波器可能是一个不错的选择.任何帮助,将不胜感激.用于陶瓷颗粒收缩的光学膨胀计数据

这是一个示例数据集:

Time (min)  Non-Normalized Shrinkage    Normalized Shrinkage
200 93  1.021978022
202 92  1.010989011
204 92  1.010989011
206 92  1.010989011
208 92  1.010989011
210 92  1.010989011
212 91  1
214 90  0.989010989
216 90  0.989010989
218 90  0.989010989
220 88  0.967032967
222 88  0.967032967
224 87  0.956043956
226 86  0.945054945
228 86  0.945054945
230 86  0.945054945
232 86  0.945054945
234 86  0.945054945
236 85  0.934065934
238 84  0.923076923
240 83  0.912087912
242 83  0.912087912
244 83  0.912087912
246 82  0.901098901 …
Run Code Online (Sandbox Code Playgroud)

python curve-fitting

2
推荐指数
1
解决办法
2635
查看次数

如何定量测量SciPy的适合度?

我想找出最合适的数据.我做的是循环遍历各种n值并使用公式((y_fit - y_actual)/ y_actual)x 100计算每个p的残差.然后我计算每个n的平均值,然后找出最小残差均值和相应的n值并使用此值拟合.可重现的代码包括:

import numpy as np
import matplotlib.pyplot as plt
from scipy import optimize   

x = np.array([12.4, 18.2, 20.3, 22.9, 27.7, 35.5, 53.9])
y = np.array([1, 50, 60, 70, 80, 90, 100])
y_residual = np.empty(shape=(1, len(y)))
residual_mean = []

n = np.arange(0.01, 10, 0.01)

def fit(x, a, b):
    return a * x + b
for i in range (len(n)):
    x_fit = 1 / np.log(x) ** n[i]
    y_fit = y
    fit_a, fit_b = optimize.curve_fit(fit, x_fit, y_fit)[0]
    y_fit = …
Run Code Online (Sandbox Code Playgroud)

python numpy mathematical-optimization curve-fitting scipy

2
推荐指数
1
解决办法
5549
查看次数

没有线性R(我出错的地方?)

espfio<- c( 0.05,   0.06,   0.07,   0.08,   0.09,   0.10,   0.11,   0.12,   0.13,   0.14,   0.15,   0.16,   0.17,   0.18,   0.19,   0.20)

sensibilidade <-c(  1.51,   1.49,   1.47,   1.43,   1.35,   1.19,   0.96,   0.85,   0.65,   0.64,   0.58,   0.56,   0.52,   0.52,   0.49,   0.50)

plot(espfio,sensibilidade)

B1 = 1
B2 = 1
B3 = 1

fit1 <- nls(sensibilidade ~ B1*(exp(-exp(-B1-B2*espfio))), start=list(B1=B1,B2=B2,B3=B3))
summary(fit1)
Run Code Online (Sandbox Code Playgroud)

nlsModel中的错误(公式,mf,start,wts):初始参数估计时的奇异梯度矩阵

r curve-fitting

2
推荐指数
1
解决办法
136
查看次数

拟合后lmfit提取拟合统计参数

这是关于从lmfit fit_report()1)对象提取拟合统计信息的问题

lmfit示例中,返回以下部分输出:

[[Model]]
    Model(gaussian)
[[Fit Statistics]]
    # function evals   = 31
    # data points      = 101
    # variables        = 3
    chi-square         = 3.409
    reduced chi-square = 0.035
    Akaike info crit   = -336.264
    Bayesian info crit = -328.418
.
.
.
.
.
.
Run Code Online (Sandbox Code Playgroud)

我试图提取该Fit Statistics部分中的所有数量作为单独的变量。

例如。提取模型参数,我们可以使用(每12):

for key in fit.params:
    print(key, "=", fit.params[key].value, "+/-", fit.params[key].stderr)
Run Code Online (Sandbox Code Playgroud)

但是,这仅给出了模型参数。它没有提供拟合统计参数,这也很有用。我似乎在文档中找不到此内容。

有没有类似的方式来提取拟合统计参数(chi-squarereduced chi-square, …

python curve-fitting lmfit

2
推荐指数
1
解决办法
3506
查看次数

NA填充使用正弦曲线拟合

我有一个如下所示的数据..有一个时间和2个数据列

time = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)  
data1 = c(10, 8, NA, 3, 2, NA, 6, 8, 9, 7, NA, 3, 1, NA, 5, 7, 11, 10, NA, 5, 3, 5, NA, 8)
data2 = c(25, 20, NA, 7.5, NA,10, 15, NA, 22.5, NA, 15, 7.5, NA, 10, 12.5, 17.5, NA, 25, 17.5,NA, 7.5, 12.5, NA, 20)
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码为data1拟合了正弦曲线.

Data <- data.frame(time,data1,data2) …
Run Code Online (Sandbox Code Playgroud)

r curve-fitting na

2
推荐指数
1
解决办法
125
查看次数

复杂数据的曲线拟合

我想用两个共享相同参数的函数来拟合复杂的数据集.为此我用过

def funcReal(x,a,b,c,d):
    return np.real((a + 1j*b)*(np.exp(1j*k*x - kappa1*x) - np.exp(kappa2*x)) + (c + 1j*d)*(np.exp(-1j*k*x - kappa1*x) - np.exp(-kappa2*x)))

def funcImag(x,a,b,c,d):
    return np.imag((a + 1j*b)*(np.exp(1j*k*x - kappa1*x) - np.exp(kappa2*x)) + (c + 1j*d)*(np.exp(-1j*k*x - kappa1*x) - np.exp(-kappa2*x)))`

poptReal, pcovReal = curve_fit(funcReal, x, yReal)
poptImag, pcovImag = curve_fit(funcImag, x, yImag)
Run Code Online (Sandbox Code Playgroud)

funcReal是我的模型的真实部分,funcImag虚部,yReal数据的真实部分和数据yImag的虚部.

但是,两个拟合并没有给出与实部和虚部相同的参数.

我的问题是有一个包或一个方法,以便我可以实现多个数据集和多个函数与共享参数的多配合?

python numpy curve-fitting scipy

2
推荐指数
1
解决办法
568
查看次数