动态创建傅立叶级数的scipy曲线拟合定义

动态创建傅立叶级数的scipy曲线拟合定义,第1张

动态创建傅立叶级数的scipy曲线拟合定义

我将通过定义一个

fourier
接受可变数量参数的单个函数,使用遍历余弦的循环为每个输入点评估函数来实现这一点:

def fourier(x, *a):    ret = a[0] * np.cos(np.pi / tau * x)    for deg in range(1, len(a)):        ret += a[deg] * np.cos((deg+1) * np.pi / tau * x)    return ret

由于此函数采用可变数量的参数,因此您需要提供正确维数的起始位置作为对该

curve_fit
函数的提示,以便它知道要使用的余弦数。在示例中,您提供了8个余弦:

popt, pcov = curve_fit(fourier, z, Ua, [1.0] * 8)

现在,您要查询的用例(适合15个谐波并绘制前三个谐波)可以通过以下方式完成:

# Fit with 15 harmonicspopt, pcov = curve_fit(fourier, z, Ua, [1.0] * 15)# Plot data, 15 harmonics, and first 3 harmonicsfig = plt.figure()ax1 = fig.add_subplot(111)p1, = plt.plot(z,Ua)p2, = plt.plot(z, fourier(z, *popt))p3, = plt.plot(z, fourier(z, popt[0], popt[1], popt[2]))plt.show()



欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5648814.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存