MathGroup Archive 2011

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

Search the Archive

NMinimize problem: fct minimized uses FindRoot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg123518] NMinimize problem: fct minimized uses FindRoot
  • From: "Doug Tinkham" <dtinkham at live.ca>
  • Date: Sat, 10 Dec 2011 07:27:05 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

Hello

I'm using NMinimize and FindMinimum to minimize a function that uses 
FindRoot when calculating it's value. The problem is that the equation 
that FindRoot is used on uses the variable that is being optimized, and 
Mathematica appears to be forcing the variable that is being optimized 
to remain symbolic in the FindRoot call, and this leads to recursion and 
a recursion limit error.

Rather than post my actual functions that are quite long, I've reduced 
my problem to the code below that shows my issue. As you will see, 
FindRoot keeps optvar in symbolic form when executing FindRoot. Is there 
a way to force Mathematica to use all numerical calculations using 
NMinimize or FindMinimum?  Is the issue with calculation of the 
gradient, which Mathematica wants to do symbolically?

Many thanks.



MyNumFct[optvar_] := Module[{inteq, n},
  inteq[x_] := (Sin[x] + 1/2*Cos[x])/optvar;
  n = n /. FindRoot[inteq[n], {n, 0.1}];
  Return[n + Sin[optvar]];
]
 
NMinimize[{MyNumFct[var], 0 <= var <= 6}, {var, 4.1}]




  • Prev by Date: Re: NDSolve[]
  • Next by Date: Re: color-bar legend for the LisContourPlot
  • Previous by thread: Re: While Loop
  • Next by thread: Re: NMinimize problem: fct minimized uses FindRoot