【发布时间】:2021-12-15 06:11:21
【问题描述】:
我有一些时间序列数据,对应于图像中的黑线(它是滚动平均值)。我试图拟合正弦曲线但没有成功;浅蓝色,几乎是直线是当前结果。 (深蓝色的是多项式拟合,暂时忽略它)。
我尝试的是这个。我从here.得到了这个函数的想法
def objective(x, a, b, c, d):
return a * np.sin(b - x) + c * x**2 + d
[..]
from scipy import optimize
X = X.ravel() # 1D array of ordinal dates
y = y.ravel() # 1D array of temperature values
# Curvefit with the objective function.
params, _ = optimize.curve_fit(objective, X, y)
# Plot the curvefit
plt.plot(X_extended, objective(
X, params[0], params[1], params[2], params[3]))
即使我添加了频率非常低或幅度非常高的猜测,也几乎没有任何变化。
任何想法都值得赞赏。如有必要,我可以尝试在其他地方重现该问题。
应用答案中给出的 p0 值和函数,图表现在如下所示:
谢谢!
【问题讨论】:
标签: python scipy curve-fitting