Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

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!
> >
> 
> 


  • Prev by Date: Re: confusion about Thread[]
  • Next by Date: Re: Why are there no spaces in my title?
  • Previous by thread: Re: Numerical Optimization involving equation solving
  • Next by thread: Effect of Simplify on numeric vs symbolic