Re: How to use NMinimize with a numerical function
- To: mathgroup at smc.vnet.net
- Subject: [mg65429] Re: How to use NMinimize with a numerical function
- From: Peter Pein <petsie at dordos.net>
- Date: Fri, 31 Mar 2006 06:09:31 -0500 (EST)
- References: <e0gd79$i8v$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Darren Glosemeyer schrieb: > The behavior you have noticed is described in the following Technical > Support FAQ. > > http://support.wolfram.com/mathematica/mathematics/numerics/nsumerror.html > > NumericQ constraints can be imposed on its arguments to keep f from > evaluating before the arguments are numeric, and the FindMinimum call will > evaluate as expected. > > > In[1]:= f[a_?NumericQ,b_?NumericQ,c_?NumericQ]:= > Module[{x}, NMinimize[{(a x^2 + b x + c)^2}, x][[2, 1, 2]]] > > In[2]:= FindMinimum[(f[r, s, t] + 2.0)^2, {{r, -5, 5}, {s, -5, 5}, {t, -5, 5}}] > > NMinimize::cvmit: Failed to converge to the requested accuracy or precision > within 100 > iterations. > > -23 > Out[2]= {2.08333 10 , {r -> -1.25, s -> -5., t -> -5.14745}} > > > Darren Glosemeyer > Wolfram Research > > > At 04:05 AM 3/28/2006 -0500, Marco Gabiccini wrote: >> Hi all, >> >> I wanted to test NMinimize[] with a numerical function whose return value >> is the result of another NMinimize. >> I defined the intersection with the abscissa of the parabola y=ax^2+bx+c as >> f[a,b,c] >> and I want to find one set of values {a,b,c} for which that intersection is >> reached at x=-2. >> >> I defined >> >> f[a_, b_, c_] := >> Module[{x}, NMinimize[{(a x^2 + b x + c)^2}, x][[2, 1, 2]]] >> >> and I would like to find that particular value of {a,b,c} for which >> f[a,b,c]=-2, that is why I call >> >> FindMinimum[(f[r, s, t] + 2.0)^2, {{r, -5, 5}, {s, -5, 5}, {t, -5, 5}}] >> >> but I get this error message >> 1760692.jpg >> >> [Attachments are not permitted. Please contact the author to >> obtain this - moderator] >> >> It seems that the latter FindMinimum[] keeps the r,s,t unevaluated when >> calling f in the first FindMinimum. Is there a way to switch the order of >> evaluation? >> >> Can anybody help me? >> >> Marco > Hi Marco isn't it faster in this case to use the capabilities of Reduce[]? please have a look at http://people.freenet.de/Peter_Berlin/Mathe/reduceToPiecewise.nb Cheers, Peter