[SciPy-dev] fmin_cg bug

Nils Wagner nwagner at iam.uni-stuttgart.de
Mon Apr 24 07:57:39 CDT 2006


Robert Cimrman wrote:
> Hi,
> the little script below revealed a little bug in scipy.optimize.fmin_cg:
>
> before fix:
> Warning: Desired error not necessarily achieved due to precision loss
>           Current function value: 333283335000.000000
>           Iterations: 0
>           Function evaluations: 2
>           Gradient evaluations: 1
> after fix:
> Optimization terminated successfully.
>           Current function value: 0.000000
>           Iterations: 5
>           Function evaluations: 26
>           Gradient evaluations: 26
>
> I dared to commit the (little :) change to SVN.
>
> r.
>
> ---
> import numpy as nm
> import scipy.optimize as opt
>
> def f( x ):
>      return nm.sum( x * x )
>
> def fg( x ):
>      return 2 * x
>
> x0 = nm.arange( 100000, dtype = nm.float64 )
> x = opt.fmin_cg( f, x0, fg )
>
> _______________________________________________
> Scipy-dev mailing list
> Scipy-dev at scipy.net
> http://www.scipy.net/mailman/listinfo/scipy-dev
>   
After fix I get

Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 5
         Function evaluations: 31
         Gradient evaluations: 31
 >>> scipy.__version__
'0.4.9.1879'
 >>> nm.__version__
'0.9.7.2394'
 >>> x
array([  0.00000000e+00,   2.98982049e-13,   5.97964097e-13, ...,
         2.98973079e-08,   2.98976069e-08,   2.98979059e-08])

Is the number of function evaluations a machine-dependent property ?

Nils





More information about the Scipy-dev mailing list