MathGroup Archive 2011

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

Search the Archive

Re: specifying further options to NMinimize method when using NonlinearModelFit

  • To: mathgroup at smc.vnet.net
  • Subject: [mg117729] Re: specifying further options to NMinimize method when using NonlinearModelFit
  • From: Peter Pein <petsie at dordos.net>
  • Date: Wed, 30 Mar 2011 04:15:09 -0500 (EST)
  • References: <imshd3$5pa$1@smc.vnet.net>

Am 29.03.2011 13:56, schrieb Alex Gittens:
> I'm using NonlinearModelFit to fit a model with UnitStep statements in it, so my only option seems to be to use the NMinimize method (judging from the errors I get, all the other options seem to need symbolic gradient information).
>
> The results are poor, so I'd like to specify that NonlinearModelFit use NMinimize with the Differential Evolution method. How do I go about doing that?
>
Hi Alex,

are you sure that NlMFit uses NMinimize? I constructed a hard-to-fit 
example and tried to set different methods for NMinimize; to no avail:

In[1]:= data=Table[{x,Exp[-x]+.1Sin[Pi x]},{x,0,1,1/50}]//N;
In[2]:= model=a+b/(x+c);
In[3]:= 
Table[SetOptions[NMinimize,Method->met];NonlinearModelFit[data,model,{a,b,c},x]//Normal,{met,{Automatic, 
"DifferentialEvolution", "NelderMead", "RandomSearch", 
"SimulatedAnnealing"}}]

... some warnings (each the same) ...

Out[3]= {
   -7.50222+108.153/(12.7003 +x),
   -7.50222+108.153/(12.7003 +x),
   -7.50222+108.153/(12.7003 +x),
   -7.50222+108.153/(12.7003 +x),
   -7.50222+108.153/(12.7003 +x)}


I see no difference, do you?

Hmm... an Option Method is not documented for NlMFit under "Options". 
But who will give up as soon? Using Method->"foo" will give the possible 
valuses for NlMNFit:

using

In[6]:= Table[
  NonlinearModelFit[data, model, {a, b, c}, x, Method -> met] //
   Normal, {met, {Automatic, "Gradient", "ConjugateGradient",
    "InteriorPoint", "QuasiNewton", "Newton", "NMinimize",
    "LevenbergMarquardt"}}]

...some warnings ...

Out[6]= {
   -7.50222 + 108.153/(12.7003 + x),
   -3.58119 + 29.3825/( 6.38402 + x),
   -1.13263 + 5.36751/(2.46604 + x),
    2.02043 - 172.578/(129.759 + x),
   -3.16362 + 24.1187/(5.76332 + x),
   -5.39831 + 59.8129/(9.32438 + x),
   -15.3664 + 414.781/(25.3272 + x),
    -7.50222 + 108.153/(12.7003 + x)}

gives us a broader range to choose of :-)

Whatever fits your needs best...

Peter


  • Prev by Date: Re: New lines in InputField
  • Next by Date: Re: Grid frame do not show when exporting to HTML
  • Previous by thread: specifying further options to NMinimize method when using NonlinearModelFit
  • Next by thread: Re: specifying further options to NMinimize method when using NonlinearModelFit