我收集了一些数据来分析加速度随时间的变化。但是当我编写下面的代码以很好地拟合正弦波时,结果就是这样。这是因为我没有足够的数据还是我在这里做错了什么?
在这里你可以看到我的图表:
直接绘制测量结果(不适合)
适合水平和垂直移动(curve_fit)
linspace 增加数据
手动操纵幅度
编辑:我通过使用 linspace 函数并绘制它来增加数据大小,但我不确定为什么幅度不匹配,是因为需要分析的数据很少吗?(我能够手动操纵幅度,但我不明白为什么它不能做到这一点)
我用于拟合的代码
def model(x, a, b):
return a * np.sin(b * x)
param, parav_cov = cf(model, time, z_values)
array_x = np.linspace(800, 1400, 1000)
fig = plt.figure(figsize = (9, 4))
plt.scatter(time, z_values, color = "#3333cc", label = "Data")
plt.plot(array_x, model(array_x, param[0], param[1], param[2], param[3]), label = "Sin Fit")
Run Code Online (Sandbox Code Playgroud)