MathGroup Archive 2005

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

Search the Archive

Re: Problem behavior with FindMaximum

  • To: mathgroup at smc.vnet.net
  • Subject: [mg59698] Re: [mg59671] Problem behavior with FindMaximum
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Thu, 18 Aug 2005 00:16:31 -0400 (EDT)
  • Reply-to: hanlonr at cox.net
  • Sender: owner-wri-mathgroup at wolfram.com

myFunc1[a_,b_]:=1/((a-16)^2+1)-(a-b)^2;
myFunc2[a_?NumericQ]:=FindMaximum[myFunc1[a,b],{b,0}][[1]];

Note that the definition of myFunc2 is restricted to numeric values of its 
argument

Solve[{
    D[myFunc1[a,b],a]==0,
    D[myFunc1[a,b],b]==0},
  {a,b}]

{{b -> 16, a -> 16}}

FindMaximum[myFunc1[a,b],{{a,0},{b,0}}]

{1., {a -> 15.999999999999945, b -> 15.999999999999947}}

FindMaximum[myFunc2[x],{x,14}]

{0.9999999999999858, {x -> 15.99999988089842}}


Bob Hanlon

> 
> From: "James H. Steiger" <jsteiger at bellsouth.net>
To: mathgroup at smc.vnet.net
> Date: 2005/08/17 Wed AM 04:00:24 EDT
> Subject: [mg59698] [mg59671] Problem behavior with FindMaximum
> 
> Hello all:
> 
> I wonder if you could give me some advice about behavior of FindMaximum
[]
> that I cannot seem to decipher.
> 
> There is a broad class of problems in statistics that involves finding the
> maximum
> of a function of several parameters, all but one (call it "a") of which are
> *nuisance parameters*.
> The function is evaluated at any value of "a" by maximizing it w.r.t. all
> the nuisance parameters.
> 
> A simple example (constructed just for Mathgroup -- the actual
> functions I work with are messier)  should make this clear.
> 
> 
> myFunc1[a_, b_] := 1/((a - 16)^2 + 1) - (a - b)^2
> myFunc2[a_] := FindMaximum[myFunc1[a, b], {b, 0}][[1]]
> 
> FindMaximum returns a list, the first element of which is the maximized
> value of the function,
> the second of which is a replacement rule specifying the value of b at which
> the maximum occurs.
> 
> As you can quickly verify, myFunc2 is well behaved, and you can plot 
myFunc2
> without incident.
> 
> Plot[myFunc2[a],{a,14,18}] produces a nice plot with no error messages
> 
> Here is where the problem arises. Suppose you want to use FindMaximum[] 
to
> obtain the maximum of myFunc2 which clearly occurs at 
> a=16.
> 
> If you input the command
> 
> FindMaximum[myFunc2[x],{x,14}]
> 
> you obtain a pair of error messages (can anyone tell me how to copy these 
in
> Mathematica as text?)
> 
> -----------------
> 
> FindMaximum::nnum: The function value 1/((1+<<1>>)^2) - (0.+a)^2 is 
not a
> number at {b}={0.}
> 
> FindMaximum::nnum: The function value 0.2 - (14. -b)^2 is not a number 
at
> {a}={14.}
> 
> -----------------
> 
> Is there some problem of "scope" of these variables that I am not aware of?
> Or is there some bug in FindMaximum[]?
> Is there a fix?
> 
> Thanks to all,
> 
> Jim
> 
> 
> James H. Steiger, Professor and Director
> Quantitative Methods and Evaluation
> Dept. of Psychology and Human Development
> Vanderbilt University
> Peabody College #512
> Nashville, TN, 37203
> 
> Phone: 615-322-7060
> email: james.h.steiger at vanderbilt.edu 
> 
> 


  • Prev by Date: Re: Problem behavior with FindMaximum
  • Next by Date: Re: Problem behavior with FindMaximum
  • Previous by thread: Re: Problem behavior with FindMaximum
  • Next by thread: Re: Problem behavior with FindMaximum