# # Model # def rvmodel(x,ampl,offset,phase): return offset+ampl*np.cos(2*np.pi*x+phase) # # Parameters: initial values, and bounds # par0 = np.array([50., 0., 0.]) lobnd = np.array([10., -50., 0.]) upbnd = np.array([100., 50., 2*np.pi]) bounds = (lobnd,upbnd) # # Now perform least-squares fit # q = optimization.curve_fit(rvmodel, x, y, par0, yerr, bounds=bounds) ampl_lsq, offset_lsq, phase_lsq = q[0]