Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2000
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2000

[Date Index] [Thread Index] [Author Index]

Search the Archive

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)


  • Prev by Date: Re: Unix Sound Problems
  • Next by Date: Re: Conversion of Orderless functions to non Orderless one
  • Previous by thread: Re: FindMinimum and Gradient
  • Next by thread: Mathematica for High School Students