问题描述
我在 mac 和 pc 上运行以下 python 函数并得到不同的结果。它如何将我的数据拟合成正弦波。蟒蛇 3.8.5,scipy 1.6.2。函数和数据集不是副本,它们来自共享文件夹。
def fit_bt(data_c):
N = 15000 # len(data) # number of data points
t = np.linspace(0,4*np.pi,N)
u_d = [-1] * len(data_c)
slope = [0] * len(data_c)
curve = [0] * len(data_c)
guess_mean = np.mean(data_c[0:N])
guess_phase = 0
guess_freq = 0.9
guess_amp = 1
for i in range(N,len(data_c),5):
if i % 1000 == 0:
print(i)
data_t = data_c[i-N:i]
optimize_func = lambda x: x[0]*np.sin(x[1]*t+x[2]) + x[3] - data_t
est_amp,est_freq,est_phase,est_mean = leastsq(optimize_func,[guess_amp,guess_freq,guess_phase,guess_mean])[0]
data_fit = est_amp * np.sin(est_freq * t + est_phase) + est_mean
if (len(data_c)-i) > 5:
u_d[i:i+5] = [(data_fit[-1] > data_fit[-2]) for val in range(5)]
slope[i:i+5] = [((data_fit[-1] - data_fit[-10]) * 10000) for val in range(5)]
curve[i:i+5] = [data_fit[-1] for val in range(5)]
guess_mean = est_mean
guess_phase = est_phase
guess_freq = est_freq
guess_amp = est_amp
return u_d,slope,curve
当我绘制斜率结果时:
结果mac:
结果电脑:
为什么我在不同的操作系统上得到不同的结果?在每个操作系统上,每次运行后结果都是恒定的。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)