Возможно, вы захотите попробовать leastsq () (на самом деле это используется Curve_fit, но вы не получите полный вывод) или пакет ODR вместо Curve_fit.
Полный вывод leastsq () дает вам гораздо больше информации, например, значение в числовом выражении (если вы хотите использовать его в качестве быстрого и грязного теста на соответствие).
Если вам нужно взвесить форму, вы можете сделать это следующим образом:
fitfunc = lambda p,x: p[0]+ p[1]*exp(-x)
errfunc = lambda p, x, y, xerr: (y-fitfunc(p,x))/xerr
out = leastsq(errfunc, pinit, args=(x,y, xerr), full_output=1)
chisq=sum(infodict['fvec']*infodict['fvec'])