[SciPy-dev] Trouble with optimize.fmin_ncg

Nils Wagner nwagner@iam.uni-stuttgart...
Tue Jul 24 14:52:37 CDT 2007


On Tue, 24 Jul 2007 18:33:51 +0300
  dmitrey <openopt@ukr.net> wrote:
> Nils, are you sure that troubles raised after last svn 
>changes?

Well, I believe it is less than 3 month ago that
ncg worked as expected.

> All my changes are in func _cubicmin from optimize.py
> but when I placed a breakpoint there, the hanging cycle 
>didn't reached 
> the one.
> Can't you do the same trick?
> scipy/optimize/optimize.py
> line 309,
>    d1 = empty((2,2))
> 
> I have found the hanging cycle (optimize.py, line 1030,
> while numpy.add.reduce(abs(ri)) > termcond: )
> but numpy.add.reduce(abs(ri)) is constantly growing 
>here.
> 
> maybe you had changed x0 and now it's too far from 
>x_opt?
> 
Even if I start with a vector near x_opt ncg hangs.

Nils

> btw if 2nd derivatives are not supplied, then other 
>cycle is hanging:
> line 1013:
>    while (numpy.add.reduce(abs(update)) > xtol) and (k < 
>maxiter):
> I don't know howto fix the problem.
> Please inform me about the breakpoint.
> 
> BTW your func seems to be very suspicious to me
> def R(v):
>    rq = dot(v.T,A*v)/dot(v.T,B*v)
>    res = (A*v-rq*B*v)/linalg.norm(B*v)
>    data.append(linalg.norm(res))
>    return rq      
> 
> are you sure that the func(v)=dot(v.T,A*v)/dot(v.T,B*v) 
>is convex?
> I'm not.
> So using 2nd derivatives (or their approximating by 
>fmin_ncg  (if user 
> didn't provide that ones) , in line 1033:
>                    Ap = 
>approx_fhess_p(xk,psupi,fprime,epsilon)
> )
> will handle non-convex funcs much more bad than 1-st 
>order do.
> 
> HTH, D.
> 
> 
 


More information about the Scipy-dev mailing list