小编Bar*_*nat的帖子

我怎样才能使这个正弦波与我当前的数据相匹配?

我收集了一些数据来分析加速度随时间的变化。但是当我编写下面的代码以很好地拟合正弦波时,结果就是这样。这是因为我没有足够的数据还是我在这里做错了什么?

在这里你可以看到我的图表:

直接绘制测量结果(不适合)

在此输入图像描述

适合水平和垂直移动(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)

python numpy matplotlib curve-fitting data-fitting

4
推荐指数
1
解决办法
952
查看次数

标签 统计

curve-fitting ×1

data-fitting ×1

matplotlib ×1

numpy ×1

python ×1