MathGroup Archive 2004

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

Search the Archive

Symbolic use of numerical function FindRoot via ?NumericQ

  • To: mathgroup at smc.vnet.net
  • Subject: [mg48506] Symbolic use of numerical function FindRoot via ?NumericQ
  • From: "Michael Beqq" <mbekkali at iastate.edu>
  • Date: Fri, 4 Jun 2004 04:49:20 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

I've use symbolical evalution of numerical functions all the time but still
have not mastered it.  Now I got stuck on the following problem:

I have a function g[x1,x2,y1,y2].  I need to solve for x1,x2 and y1,y2 that
maximize g[x1,x2,y1,y2] in 2 steps,- in step 1 I need to find x1*=x1[y1,y2]
and x2*=x2[y1,y2].  Then I substitute solutions, *'s, into g[.] to get
g[y1,y2] and then solve for solve for y1* and y2*.   This is a classical
2-stage problem in Economics.

Is there a way to do that in Mathematica 5 using FindRoot command.  I tried
using SetDelayed and ?NumericQ options however get error messages that the
function g[.]'s is not a list of numbers with dimension {2} at {2 values}.

Here is more precise code:

g[x1_x2_,y1_,y2_]=g[x1,x2,y1,y2]"g is some function of 4 variables";
{x1[y1_,y2_?Numeric],x2[y1_,y2_?Numeric]}:=Evaluate[{x1,x2}/.FindRoot[Evalua
te[{D[g[x1,x2,y1,y2],x1]]==0,D[g[x1,x2,y1,y2],x2]]==0},{x1,x10},{x2,x20}]]
(* another website showed different code, i.e. x[(y1_,y2_)?Number] but I
assume it is just semantics*)
FindRoot[Evaluate[{D[g[y1,y2],y1]]==0,D[g[y1,y2],y2]]==0},{y1,y10},{y2,y20}]
]

where {x10,x20,y10,y20}=some numbers.

Thank you in advance.



  • Prev by Date: Re: Problem with the Derivative of a Arg-function
  • Next by Date: Re: Eigensystem[] bug in Mathematica 5.0 (fixed in 5.0.1)
  • Previous by thread: Symbolic use of numerical function FindRoot via ?NumericQ
  • Next by thread: Re: Symbolic use of numerical function FindRoot via ?NumericQ