我有一个图应该是锯齿波。
我正在尝试将锯齿方程式(如wiki所示)拟合到数据点,但我无法这样做。
n_step_list = [-500, -400, -300, -200, -100, 0, 100, 200, 300, 400, 500]
value_list = [-24, 73, 55, 36, 18, 0, -18, 79, 61, 43, 24]
def f(x, A, fi):
total_sum = 0
i = 1
while i < 151:
total_sum += np.power(-1, i) * np.sin(2 * np.pi * i * fi * x) / i
i += 1
total_sum *= 2 * A / np.pi
return total_sum
A, fi = curve_fit(f, n_step_list, value_list, (10000000000000, 28))[0]
但是我得到荒谬的结果。最初的猜测是,我使用一个值(-100、18)提供给curve_fit,并尝试计算A和fi的值。任何帮助表示赞赏。