[SciPy-dev] optimize.fmin: xtol/ftol

Michael Culbertson Michael.J.Culbertson at wheaton.edu
Thu Sep 2 15:42:28 CDT 2004


  I think there is an error in the termination of the Simplex optimization
algorithm implemented by scipy.optimize.fmin().  According to the doc
string, xtol and ftol are _relative_ values:

      xtol -- acceptable relative error in xopt for convergence.
      ftol -- acceptable relative error in func(xopt) for convergence.

Yet, as I read the termination condition:

        if (max(Num.ravel(abs(sim[1:]-sim[0]))) <= xtol \
            and max(abs(fsim[0]-fsim[1:])) <= ftol):

the values are taken as absolute quantities.  Shouldn't the condition
include some division of the difference by one of the values or a
multiplication of the relative tolerances by one of the values for a
proper relative comparison?  Or, have I misinterpreted the statements

Michael Culbertson

More information about the Scipy-dev mailing list