[SciPy-User] fmin_bfgs failing on simple problem

Nathaniel Smith njs@pobox....
Tue Apr 17 13:16:08 CDT 2012


On Tue, Apr 17, 2012 at 7:14 PM, John Salvatier
<jsalvati@u.washington.edu> wrote:
> Well that's good news. I have scipy .9.0b1, what version do you have?

Less good news: I have 0.8.0 :-)

- N

> On Tue, Apr 17, 2012 at 11:13 AM, Nathaniel Smith <njs@pobox.com> wrote:
>>
>> On Tue, Apr 17, 2012 at 6:35 PM, 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?
>>
>> I can't reproduce this (on my computer it converges to 0.99999992),
>> but have you tried making that < into a <=? The divide-by-zero at f(0)
>> might be making it freak out.
>>
>> -- Nathaniel
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User@scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
>
>
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>


More information about the SciPy-User mailing list