This is the mail archive of the
gsl-discuss@sources.redhat.com
mailing list for the GSL project.
Re: multidimensional root-finding problem :-(
- From: Slaven Peles <peles at cns dot physics dot gatech dot edu>
- To: Fabrice Rossi <rossi at ufrmd dot dauphine dot fr>,"Peter S. Christopher" <peterc at midway dot uchicago dot edu>
- Cc: Ivo Alxneit <ivo dot alxneit at psi dot ch>, gsl-discuss at sources dot redhat dot com
- Date: Sat, 24 May 2003 14:04:32 -0400
- Subject: Re: multidimensional root-finding problem :-(
- References: <Pine.GSO.4.21.0305231311240.27034-100000@harper.uchicago.edu> <3ECF5E80.9020000@ufrmd.dauphine.fr>
Hi,
I want to thank everyone who took time to reply to my posting. Now I
understand (or at least I think I do ;-) how to use GSL multiroot finders
properly. And, I checked with 'assert(0)', all three functions (_f, _df and
_fdf) are called in the program.
Thanks again,
Slaven
On May 24, 2003 07:58, Fabrice Rossi wrote:
> Peter S. Christopher wrote:
> > Hi there,
> >
> > I've had experience with the Multi-Min package. My best guess is
> > that some of the routines use ONLY fdf and some of them use f, df and
> > fdf.
>
> That's right. As said before by Ivo, the purpose of fdf is to save some
> calculation. For instance, when you deal with neural networks, you can
> save a factor 2 if you compute f and df together rather than f and then
> (in another call) df. BUT the basic contract between a function provider
> and a minimizer is that the three functions work. That's why I suggest
> to start programming f and df, and provide a dummy version of fdf that
> calls both f and df. Then, if you need faster calculation, you can
> provide an efficient version of fdf. If I recall correctly (I wrote the
> first version of multimin), f is called in the line search (i.e., the
> one dimensional part of multimin), whereas fdf is used for the high
> level part. I think I did not use df alone, but the code as evolved.
>
> This is only valid for multimin, but my understanding of multi-root is
> that it basically works in the same way. So Slaven I suggest you
> separate f and df, and call those functions for fdf...
>
> Fabrice