[SciPy-Dev] optimize ncg approx_fhess_p bug?
josef.pktd@gmai...
josef.pktd@gmai...
Tue Apr 6 00:15:34 CDT 2010
is this a bug?
why is there a `*p` in the approx_fhess
def approx_fhess_p(x0,p,fprime,epsilon,*args):
f2 = fprime(*((x0+epsilon*p,)+args))
f1 = fprime(*((x0,)+args))
return (f2 - f1)/epsilon
from a quick search this function is only used in fmin_ncg, which has
convergence problem if epsilon is small.
convergence to solution looks ok when I set epsilon to 1e-4 or 1e-6.
but with predefined epsilon the step in the approx hessian calculation
looks to small:
>>> t.grad(t.solution)*_epsilon
array([ 0.00000000e+00, -7.71175966e-16, -6.94483304e-15])
non-convergence was a test failure reported by Alan with scipy 0.7.2
I'm not sure about this because I never looked at the optimize code
before, and I only did some quick checking.
dropping the p in the approx fhess, I get a very fast solution
(full_output) of the test problem in optimize/tests/optimize.py
(array([ 1.46693016e-07, -5.24869440e-01, 4.87527692e-01]), 1.55913216727411
23, 5, 18, 0, 0)
Any ideas?
Josef
More information about the SciPy-Dev
mailing list