- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用Python lmfit
对 2005-2016 年的月平均数据进行最小二乘拟合。我构建了如下所示的函数: equation原始代码如下:
# t is in fractional years, e.g. 2017+122./365.
def fun(t, a, b, c, A1, A2, A3, A4, B1, B2, B3, B4):
An=[A1,A2,A3,A4]
Bn=[B1,B2,B3,B4]
sum=np.sum([An[i] * np.sin(2 * np.pi * (i + 1) * t+Bn[i]) for i in range(len(An))])
return a+b*t+c*t*t+sum
mod = Model(fun)
pars = mod.make_params(a=-10, b=0.003, c=0.01, A1=-1., A2=1., A3=1., A4=1., B1=-1., B2=1., B3=1., B4=1.)
result = mod.fit(y, pars, t=t)
print(result.fit_report())
plt.plot(t, y, 'bo')
plt.plot(t, result.best_fit, 'r-')
plt.show()
fitted line and the original data dots看来傅里叶项不起作用。因此,我很好奇如何对A1
、A2
、A3
...等函数参数给出合适的初始估计?
最佳答案
np.sum
没有执行您希望它执行的操作。它将把您的表达式求和为单个标量值,而不是与 t
长度相同的数组。然后,该标量值会将您的参数 A1
、... B4
折叠为单个值,并且拟合将无法确定这些值。
我认为您想要创建一个形状为 (4, len(t)
) 的二维数组,然后仅对第一个维度求和,留下一个 len(t)< 数组
这是 4 个傅立叶分量的总和。
尝试更换您的
sum=np.sum([An[i]*np.sin(2*np.pi*(i+1)*t+Bn[i]) for i in range(len(An))])
与
sum=np.array([An[i]*np.sin(2*np.pi*(i+1)*t+Bn[i]) for i in range(len(An))]).sum(axis=0)
关于python - 使用 Python lmfit 进行曲线拟合的参数估计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47752210/
我是 python 的新手,并尝试使用 lmfit 包来检查我自己的计算,但是我不确定 (1) 如何为以下测试(和 2)包含数据(sig)的错误我在 conf_interval2d 中遇到的错误如下所
我正在尝试使用 lmfit 使用 Model 和 Parameters 类查找某些随机数据的函数的最佳拟合参数。然而,它似乎并没有太多地探索参数空间。它进行了约 10 次函数评估,然后返回了糟糕的拟合
我正在尝试使用 lmfit 拟合部分数据(应该看起来像高斯),但我得到了一条线。请参见下图。 数据绘图: 我尝试过的代码如下: import matplotlib.pyplot as plt from
这是一个关于从 lmfit fit_report()( 1) 对象中提取拟合统计信息的问题 在this lmfit 示例,返回如下部分输出: [[Model]] Model(gaussian)
import matplotlib.pyplot as plt import numpy as np from lmfit.model import load_model def mysine(x,
我试图弄清楚如何使用 lmfit 进行截距估计包会产生不同的结果,具体取决于起始值。我使用 statsmodels 将估计结果与标准 OLS 估计结果进行比较。有人可以帮忙吗? 代码: from lm
我正在尝试使用 LMFIT 库进行多洛伦兹拟合,但它不起作用,我什至理解我的语法made 是完全错误的,但我没有任何新的想法。 我的问题是这样的:我有一个很长的光谱,其中包含多组峰,但这些组中峰的数量
在逼近(负)指数函数时,lmfit 的指数模型如何工作? 以下尝试关注https://lmfit.github.io/lmfit-py/model.html ,但未能提供正确的结果: mod = lm
我正在使用 lmfit python 包进行非线性优化 (url: http://lmfit.github.io/lmfit-py/)。我想知道在使用最小二乘拟合方法时是否可以传递雅可比函数?如果是,
尝试从 lmfit 拟合 ExponentialGaussianModel() 但收到以下错误消息:The input contains nan values 我在 Windows 上使用 Jupyt
我正在尝试使用 lmfit 拟合一些数据。最初,我使用了 Model 类,它基于此示例/教程运行良好: https://lmfit.github.io/lmfit-py/model.html但后来我想
我正在使用 lmfit 在 python 中进行拟合,在定义模型(即我想要用于拟合的函数)之后,我执行 out = model.fit(...)为了可视化结果,我这样做 plt.plot(x, out
我正在尝试将曲线拟合到一些数据(模型将是 3 个高斯加背景)。数据位于这篇文章的底部(不知道如何附加它),列是(x,y,err_y),err_y是y的平方根。这是我的代码: import numpy
我正在尝试使用 lmfit 包拟合一组数据。作为最小化例程,我选择了 Differential_evolution ( https://docs.scipy.org/doc/scipy-0.17.0/
有没有办法基于具有任意数量因变量的函数构建 lmfit 模型?例如: from lmfit import Model def my_poly(x, *params): func = 0 for
我在 Python 中使用 lmfit 来拟合一些数据,其中包括拟合变量 a、b 和 c。我需要确保 a 0 和 b - a > 0(或者 a - b y 的不等式约束应转换为 x = y + s
我想使用最小二乘法 (Levenberg-Marquardt) 最小化函数 f 中的 x 和 y。在 Python 中,我可以像下面这样使用 lmfit params = lmfit.Paramete
输出错误是: 最小化异常:如果没有合理的不确定性估计,则无法确定置信区间 为什么我收到这个错误?我如何计算不确定性估计并解决这个问题? for dosya1 in glob.glob("mean*")
我正在使用Python lmfit对 2005-2016 年的月平均数据进行最小二乘拟合。我构建了如下所示的函数: equation原始代码如下: # t is in fractional years
我正在尝试将模型拟合到某些数据。自变量称为 A 和 B,它们是 Pandas DataFrame 中的列。我正在尝试根据数据框中的 y 调整两个参数。 以前,使用 Scipy 的 curve_fit,
我是一名优秀的程序员,十分优秀!