Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1999
*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 1999

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

Search the Archive

RE: How can I control FindMinimum's behavior?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg19104] RE: [mg19037] How can I control FindMinimum's behavior?
  • From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
  • Date: Thu, 5 Aug 1999 01:35:20 -0400
  • Sender: owner-wri-mathgroup at wolfram.com

Rajdeep Kalgutkar wrote:
---------------------------
I have been using FindMinimum for a multidimensional minimization problem. I
find that when Method->Automatic is used, my input parameters values are
passed on to my target function immediately, but when I use
Method->QuasiNewton, FindMinimum insists on symbolic input during the first
minimization cycle. This happens even though I specify 2 input values. My
target function does not have symbolic derivatives and therefore it the
minimization procedure crashes when using the QuasiNewton method. Is there
anyway to prevent FindMinimum from insisting on symbolic input initially?
----------------------------

Apparently the QuasiNewton method needs to have the symbolic derivative.  In
your example the function does have a symbolic derivative.  The only problem
is that Mathematica can't figure it out because of the way (func) is
defined.  What you need to do is use the Gradient option to tell the kernel
what the derivative is.  It's called Gradient because that's what you need
for multi-dimensional problems.  Also the Quasi-Newton method only needs one
starting point.

My solution is below.
--------------------------

In[1]:=func[x_]:=Module[{w},
             w=Sin[x]^2+0.2*x;
             Print[w," ",x];
             w
           ]



In[2]:=
FindMinimum[func[x], {x,0.}, 
  Method->QuasiNewton, 
  Gradient->{2 Sin[x]Cos[x]+0.2}
]



0.  0.

-0.000530497   -0.2

-0.0100297     -0.102717

-0.0100337     -0.100623

-0.0100337     -0.100679


Out[2]=
{-0.0100337,{x->-0.100679}}


-----------------
Regards,
Ted Ersek


  • Prev by Date: No Graphics Output in Excel 2000 Using MathLink for Excel
  • Next by Date: function arguments as subscripts
  • Previous by thread: How can I control FindMinimum's behavior?
  • Next by thread: RE: RE: How can I control FindMinimum's behavior?