我有一些样本数据发现下面,我试图使两个曲线拟合。第一种是基于正弦和余弦之和的拟合,我可以用statsmodels的OLS函数来完成。在
ny = len(y_arr)
nparams = 5
xa1 = np.cos(2*np.pi*1*x_arr)
xb1 = np.sin(2*np.pi*1*x_arr)
xa2 = np.cos(2*np.pi*2*x_arr)
xb2 = np.sin(2*np.pi*2*x_arr)
matr = np.ones((ny,nparams),dtype=float)
matr[:,1] = xa1
matr[:,2] = xb1
matr[:,3] = xa2
matr[:,4] = xb2
model = sm.OLS(y_arr, matr)
results = model.fit()
print(results.summary())
这给了我系数a0=1.1463,a1=-3.928,b1=0.5352,a2=-0.4091,b2=-0.3514
但是,现在我想用这些信息来计算正弦函数之和的拟合,其中振幅和相位是给定的,即:
据我所见,当必须同时计算振幅和相位时,OLS无法处理正弦拟合的总和。这里有没有其他人用过类似的包装?在
这些系列密切相关:
所以,计算了}
使用上面的转换。在
a_k
和b_k
你可以很容易地得到A_k
和{相关问题 更多 >
编程相关推荐