Re: optimization nested in root-finding
- To: mathgroup at smc.vnet.net
- Subject: [mg64995] Re: optimization nested in root-finding
- From: dh <dh at metrohm.ch>
- Date: Sat, 11 Mar 2006 05:15:30 -0500 (EST)
- References: <durlt4$m9d$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Version= 5.1 for Microsoft Windows (October 25, 2004)
Hello Neely,
put a print statement Print[x] into function f2. You will see, that f2
is called with a non numerical argument x.
You may prevent this by declaring:
f2[x_Real]:=...
HOWEVER, this is strange because FindRoot has the attribute "HoldAll"
and should therefore replace the symbol x by a numerical value before
calling f2.
???? HAS ANYBODY AN EXPLANATION ????
It looks like a bug to me.
Daniel
E. Neely Atkinson wrote:
> I want to find some zeros of a function f(x). The evaluation of
> f in turn requires finding a minimum. For a simple example.
>
> obj2[x_, y_] := (x - 2)^2 + (y - 3)^2
>
> f2[x_] :=
> Module[
> {y},
> FindMinimum[obj2[x, y], {y, 0}][[1]]
> ]
>
> Thus, f2[x] is the minimum value obj[x,y] can take for a
> given fixed x.
>
> Now, I can plot f2[x] and all is well. However, when
> I try to solve f2[x]==5, I have trouble.
>
> FindRoot[f2[x] == 5, {x, 1, 1.01}]
>
> complains and returns. I am sure I am doing something silly,
> but I am having a slow-brain day and would appreciate any help.
>
> Neely Atkinson
> Department of Biostatistics and Applied Mathematics
> M. D. Anderson Cancer Center
>
> eatkinso at mdanderson.org
>