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.