Re: FindMinimum and Gradient
- To: mathgroup at smc.vnet.net
- Subject: [mg24111] Re: FindMinimum and Gradient
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Wed, 28 Jun 2000 02:11:36 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <8j9dgm$512@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi, lets make some high quality computer graphics. If your functions and the interval [as,bs] boundary look like \ / \ / \__/ +------+ as bs the minimum is bracketed. If it looks like \ \ \ \ / \ / \__/ +--+------ as bs than it is not bracketed. Since this has nothing to do with the precision it is clear that even with PrecisionGoal->Infinity FindMinimum[] will not locate a mimimum. You have just to supply correct input values. Regards Jens Grischa Stegemann wrote: > > Dear group > > I'm using Mathematica 3.0.2.0 with Solaris. > > In trying to minimize relative entropy, i.e. a positive function like > S[a_, b_, n_] := -Sum[h[k]*Log[p[k, a, b, n]], {k, -n, n}] > /; a > 0 && b > 0 > S[a_, b_, n_] := -1 /; a <= 0 || b <= 0 > with FindMinimum I just encountered two general problems. > > I'm only interested in a,b>0 with a fixed n. Since Mathematica is not able to > compute the gradient symbolically I specified it with the Gradient option. I > defined the gradient as 0 if not a,b>0. Thus if FindMinimum gives -1 for the > minimum i know, that the algorithm went out of the range of interest. But this > never happened. > > Roughly I tried this with several starting points {as,bs}: > FindMinimum[S[a,b,n0],{a,as},{b,bs}, > Gradient->{daS[a,b,n0],dbS[a,b,n0]}, > MaxIterations->1000]; > > First of all, it works fine in many cases (depending on n0 and h). But in the > other cases I always get > FindMinimum::"fmlim": "The minimum could not be bracketed in 1000 iterations. > I tried to play around with Accuracy- and PrecisionGoal but even setting them to > 1 doesn't make things better. > So, what exactly does this message mean? I cannot find any explanation of this > message in the documentation. Where got FindMinimum lost? > > The second problem is that due to the first one I wanted to play with the Method > option. > But if I try Method->Newton or Method->QuasiNewton Mathematica complains > FindMinimum::"fmgs": > Could not symbolically find the gradient of S[a, b, n]. Try > giving two starting values for each variable. > This is inexplicable since I'm using Gradient->{daS[a,b,n0],dbS[a,b,n0]}, isn't > it? > > Any suggestions about this? Thanks a lot in advance. > -- > Grischa Stegemann > > ---------------------------------------------------------------------- > Grischa Stegemann Technische Universitaet Berlin > email: Stegemann at physik.tu-berlin.de > > *** We are here on Earth to do good for others. > *** What the others are here for, I do not know. (W.H. Auden)