Re: Re: Numerical Optimization involving equation solving
- To: mathgroup at smc.vnet.net
- Subject: [mg56035] Re: [mg56023] Re: [mg55969] Numerical Optimization involving equation solving
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Thu, 14 Apr 2005 08:54:28 -0400 (EDT)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
It is better to use NumericQ rather than NumberQ to accept expressions including built-in constants const=ToExpression/@Select[Names["*"], MemberQ[Attributes[#],Constant]&] {Catalan, Degree, E, EulerGamma, Glaisher, GoldenRatio, Khinchin, MachinePrecision, Pi} NumberQ/@const {False,False,False,False,False,False,False,False,False} NumericQ/@const {True,True,True,True,True,True,True,True,True} Bob Hanlon > > From: Christopher Purcell <christopherpurcell at mac.com> To: mathgroup at smc.vnet.net > Date: 2005/04/13 Wed AM 01:11:12 EDT > To: mathgroup at smc.vnet.net > Subject: [mg56035] [mg56023] Re: [mg55969] Numerical Optimization involving equation solving > > Try using the pattern test ?NumberQ in your definition of the function > f. > as in: > > f[x_?NumberQ]:=(stuff;Return[ans]; > > You can learn more about this with ?PatternTest. > > > > Christopher Purcell > Sensors & Actuators Group > DRDC-Atlantic, 9 Grove St., PO Box 1012, > Dartmouth NS B2Y 3Z7 Canada > Work E-mail chris.purcell at drdc-rddc.gc.ca > Work Tel 902-426-3100 x389 Fax 902-426-9654 > Home Tel 902-464-9248 > Home E-mail christopherpurcell at mac.com > AIM/iChatAV: cffrc > > On Apr 12, 2005, at 6:26 AM, Brian Rogers 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! > > > >