[SciPy-User] fmin_bfgs failing on simple problem

John Salvatier jsalvati@u.washington....
Tue Apr 17 13:13:24 CDT 2012


I think the problem comes in the line search function: scalar_search_wolfe1

The step size (stp) is alternately too large (putting the suggestion point
in the bad region) or much too small (too small of a change). This seems
like it's not well suited to stiff problems. Is there a different solver
that deals well with stiff problems?

John

On Tue, Apr 17, 2012 at 10:35 AM, John Salvatier
<jsalvati@u.washington.edu>wrote:

> Hi all!
>
> I am having a problem with the fmin_bfgs solver that's surprising to me.
> Here's the toy problem I've set up:
>
> from scipy.optimize import fmin_bfgs, fmin_ncg
> from numpy import *
> import numpy as np
>
> def f(x ):
>     if x < 0:
>         return 1.79769313e+308
>     else :
>         return x + 1./x
>
>
> xs = fmin_bfgs(f, array( [10.]), retall = True)
>
> The solver returns [nan] as the solution.
>
> The problem is designed to be stiff: between 0 and 1, it slopes upward to
> infinity but between 1 and infinity, it slopes up at a slope of 1. Left of
> 0 the function has a "nearly infinite" value. If bfgs encounters  a value
> that's larger than the current value, it should try a different step size,
> no? Why does fmin_bfgs fail in this way?
>
> Cheers,
> John
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/scipy-user/attachments/20120417/fcaf0a4f/attachment.html 


More information about the SciPy-User mailing list