正弦拟合和

2024-04-25 23:27:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些样本数据发现下面,我试图使两个曲线拟合。第一种是基于正弦和余弦之和的拟合,我可以用statsmodels的OLS函数来完成。在

enter image description here

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

但是,现在我想用这些信息来计算正弦函数之和的拟合,其中振幅和相位是给定的,即:

enter image description here

据我所见,当必须同时计算振幅和相位时,OLS无法处理正弦拟合的总和。这里有没有其他人用过类似的包装?在


Tags: 函数nppisincosarr正弦ny