我有两个函数和一组数据。两个函数具有相同的x数据和相同的参数。我想用最小二乘法得到参数,使我的数据得到最佳拟合。在
参数是:ex,ey,ez。在
X数据是:RA,DE(比如3000点)。在
Y数据为:dRA、dDE。在
我试过了,但得到了一个错误的答案:
def residuals(p, dRA, dDE, RA, DEC):
ex,ey,ez = p
f1 = dRA-(ex*sin(DEC)*cos(RA)+ey*sin(DEC)*sin(RA)-ez*cos(DEC))
f2 = dDE-(-ex*sin(RA)+ey*cos(RA))
err = np.concatenate((f1,f2))
return err
from scipy.optimize import leastsq
p0 = [0, 0., 0.]
plsq_coord = leastsq(residuals, p0, args=(dRA, dDE, RA, DE))
print plsq_coord[0]
任何帮助都会很好
如本测试代码所示
你的代码应该可以正常工作,除非你的函数写得不正确(例如,你的ra,dec是以度数,而不是弧度)或者你在数据集中有一些坏的数据点,从而破坏了chisq拟合。在
相关问题 更多 >
编程相关推荐