MathGroup Archive 2000

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

Search the Archive

Re: FindMinimum

  • To: mathgroup at smc.vnet.net
  • Subject: [mg22734] Re: FindMinimum
  • From: Matthias Weber <weber at math.uni-bonn.de>
  • Date: Fri, 24 Mar 2000 03:27:21 -0500 (EST)
  • Organization: RHRZ - University of Bonn (Germany)
  • References: <8aqrrd$a9p@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

In article <8aqrrd$a9p at smc.vnet.net>, "Johannes Ludsteck" 
<ludsteck at zew.de> wrote:

> Dear Mathgroup members
> I have some problems with the sparse documentation of the 
> FindMinimum Procedures.
> 
> 1) To the best of my knowledge the Newton and QuasiNewton 
> methods use the gradient and the hessian of the minimand or an 
> approximation to them. Mathematica, however allows me only to 
> supply an analytical gradient, but not the hessian. Why? (I think 
> that it would speed up the minimization considerably if an 
> analytical hessian could be used.
> 
> 2) I suspect that Mathematica uses a secant method if it cannot 
> compute analytical gradients. In my application it would be efficient 
> to compute a numerical gradient (an hessian) and to use the 
> gradient or quasi-newton method, since my minimand is smooth 
> and globally convex, but not differentiable analytically. Can I force 
> Mathematica to use this strategy?
> 
> Thank you,
> 	Johannes Ludsteck

To find a minimum, two steps are involved: 
1) Get close to a minimum
2) If you are close to it, find it

For the first step, higher order approximations based on
local (or even infinitesimal) behaviour do not help very much
(unless you know a lot about your function, say like it being a
polynomial). For the second step, higher order approximations
might be helpful, depending how expensive your function is. For high
dimensional problems with complicated function evaluations, the
computation of gradients and hessians can become very slow.

I suppose you mean 'symbolic' instead of 'analytic'. For your second 
question, you can define an arbitrary function (not necessarily symbolic)
and supply it as the gradient of your function to the FindMinimum 
routine. 

As an alternative to Mathematica's FindMinimum, I found the classical
Simplex method (see Recipes in C) quite useful in some case.


Hope that helps.

Matthias


  • Prev by Date: Re: 3D graphics
  • Next by Date: Re: newby plotting question
  • Previous by thread: Re: FindMinimum
  • Next by thread: graphics rendering glitch?