This is the mail archive of the
gsl-discuss@sourceware.cygnus.com
mailing list for the GSL project.
multimin question
- To: GSL mailing list <gsl-discuss at sourceware dot cygnus dot com>
- Subject: multimin question
- From: Dave Morrison <dave at bnl dot gov>
- Date: Sat, 08 Apr 2000 20:33:42 +0000
Hi,
I've been exploring the `multimin' parts of GSL and I've run into
something I don't understand. I recrafted the guts of multimin/test.c
to minimize a simple paraboloid:
f = (x - 0.5)^2 + (y + 0.75)^2
So far, so good - you get an answer for the location of the minimum
you'd expect: f(0.5, -0.75) ~ 0.0. Also, the determination of the
location of the minimum is insensitive to the starting point and any
of the other parameters I chose to tweak. I added a constant to `f':
f = (x - 0.5)^2 + (y + 0.75)^2 + 1.0
and started getting errors like these:
gsl: ../../gsl/multimin/fdfminimizer.c:300: ERROR: function not
continuous
or
gsl: ../../gsl/min/fsolver.c:140: ERROR: endpoints do not enclose a
minimum
or sometimes I get the right answer. It depends on the details of the
starting guess for (x,y), the value of the constant, and the values I
feed to `gsl_multimin_fdf_minimizer_bracket'. I realize the multimin
code is under development, but does this sound familiar to anyone? Do
the minimization algorithms require that f(x) = 0 at the minimum in
order to work properly? That doesn't seem to be the case for the 1D
algos, but is it true of the multidim ones? I can supply the exact
code I'm using if anyone's interested. Help or advice appreciated.
Cheers,
Dave
--
David Morrison Brookhaven National Laboratory phone: 631-344-5840
Physics Department, Bldg 510 C fax: 631-344-3253
Upton, NY 11973-5000 email: dave@bnl.gov