I tried resetting and fitting again: for i in range(5): if PLOT_GUESSED_LORENTZIAN: vib_plot(None, freq_axis, psd_data, A_guess, B_guess, C_guess, minFreq, maxFreq, plotVerbose=True) g("A=%g; B=%g; C=%g" % (A_guess, B_guess, C_guess)) g("fit f(x) '%s' via A,B,C" % datafilename) A=abs(float(g.getvar('A'))) # A and B only show up as squares in f(x) B=abs(float(g.getvar('B'))) # so ensure we get positive values C=float(g.getvar('C')) A_guess = A B_guess = B C_guess = C But the extra fit cycles had no effect ("After 1 iterations the fit converged." with no real parameter change.).