MathGroup Archive 1997

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

Search the Archive

FindMinimum

  • To: mathgroup at smc.vnet.net
  • Subject: [mg6779] FindMinimum
  • From: Sean Ross <SEAN at mail.creol.ucf.edu>
  • Date: Fri, 18 Apr 1997 02:37:48 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

I am working with a very slowly executing function(2-3 minutes per value) of
three variables and using FindMinimum to minimize it.  The function is actually the
Root Mean Square error between some lab data and theoretical plots.  I have the
function print out its input parameters each time it is executed, so I have a decent
view about the workings of FindMinimum.  I have a couple observations and a
question or two.

observation:  The form of the function
FindMinimum[f(x,y,z),{x,{x0,x1}},{y,{y0,y1}},{z,{z0,z1}}]
most certainly does not do as the manual implies, in that it is supposed to use x0
and x1 as the first two values to try when minimizing on x etc.  What it actually
does, it use x0 and then make its next guess incrementally in the direction of x1.

question:  I would like to force the routine to do as advertized and actually make
its first guess with {x0,y0,z0} and the second guess with {x1,y1,z1}.  Does
anyone know how to do that?

observation:  FindMinimum rarely changes more than one parameter at a time.  It
usually minimizes first changing only x, then changing only y, then changing only
z etc.  Only occasionally will it make a guess by changing two parameters.

observation:  I set the option MaxIterations to, say 15 and the function f(x,y,z) is
executed 200 times.  I set the option Maxiterations to 5 and after 12 function
evaluations, I get an error message that it couldn't converge to the goal within 5
iterations.  Clearly, here, an "iteration" does not mean a functional evaluation.

Question:  Exactly what does an "iteration" mean in this context.

observation:  The amount it changes x from the first functional evaluation to the
second is very small, around one percent of the difference between my specified
x0 and x1.  Subsequent changes in parameters are similarly small, often taking
twenty functional evaluations to finally change the value of x by 10%.  This
minimizes the utility of the FIndMinimum function for my application because of the
large  time required for each functional evaluation.

Question:  How can I make it make larger changes in the parameters?  I tried
multipliying my function by 1000 and that did prompt it to change a little more.  Is
that the general way to do it?

Thanks for any insights you might have.


  • Prev by Date: Re: Tracing
  • Next by Date: Postscript with Mathematica 3.0
  • Previous by thread: [?] UK Unis symbolic algebra working group
  • Next by thread: Postscript with Mathematica 3.0