       Re: Numerical Optimization involving equation solving

• To: mathgroup at smc.vnet.net
• Subject: [mg56005] Re: [mg55969] Numerical Optimization involving equation solving
• From: Chris Chiasson <chris.chiasson at gmail.com>
• Date: Wed, 13 Apr 2005 01:10:42 -0400 (EDT)
• References: <200504120926.FAA27654@smc.vnet.net>
• Reply-to: Chris Chiasson <chris.chiasson at gmail.com>
• Sender: owner-wri-mathgroup at wolfram.com

```try changing the "definition of the f function" so that it "only
accepts numerical arguments".
f[x_?NumericQ]:=(stuff;Return[ans];)

On Apr 12, 2005 5:26 AM, Brian Rogers <brifry at gmail.com> wrote:
> I need to optimize a function of one variable, say
> f[x_]:=(stuff;Return[ans];).  Computing the value of f requires solving
> a (non-linear) system of equations that depend on x, and using this
> solution to compute some other things.
>
> Now, evaluating f at a numerical value of x works just fine, and I can
> even plot f (using Plot[f[x],{x,0,1}]) and eyeball the optimum.  By the
> way, f is a very well behaved function--it is typically smooth and
> globally convex.  However, what I really want to do is use FindMinimum
> (or NMinimize) to numerically return the optimum.  When I use either of
> these built-in functions, they crash.  I believe that they are first
> trying to evaluate f[x] symbolically--which would understandably cause
> it to crash because the system of equations doesn't have a closed form
> solution in x.
>
> I've tried using the "Compiled" option with no luck.  How can I force
> FindMinimum to use a purely numerical procedure to optimize my
> function?
>
> Any help is greatly appreciated, and please copy any reply to
> brifry at gmail.com.
> Thanks!
>
>

--
Chris Chiasson
Kettering University
Mechanical Engineering