Re: NonlinearFit
- To: mathgroup at smc.vnet.net
- Subject: [mg57682] Re: NonlinearFit
- From: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>
- Date: Sat, 4 Jun 2005 03:04:29 -0400 (EDT)
- Organization: Uni Leipzig
- References: <d7pb24$t5r$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
don't set a value for the parameters you wish to
fit.
Here is a working version:
In[24]:=
Clear[ny, nyzero, rate];
AL[ny_, nyzero_, rate_] = rate/(rate^2 +
4*Pi^2*(ny - nyzero)^2);
DL[ny_, nyzero_, rate_] =
2*Pi*(ny - nyzero)/(rate^2 + 4*Pi^2*(ny -
nyzero)^2);
tmix = 0.006; Imax = 2.9*10^8; freqzero = 78; J =
16; lambda = 45; eta = 8;
In[37]:=
Clear[tmix, Imax, freqzero, J, lambda, eta]
model = Imax*(AL[freq, freqzero + J/2, lambda -
eta]*
Exp[-(lambda - eta)*tmix] +
AL[freq, freqzero - J/2, lambda + eta]*
Exp[-(lambda + eta)*tmix])*Cos[Pi*J*tmix] +
Imax*(DL[freq, freqzero + J/2, lambda -
eta]*Exp[-(lambda - eta)*tmix] -
DL[freq, freqzero - J/2, lambda + eta]*
Exp[-(lambda + eta)*tmix])*Sin[Pi*J*tmix];
reg = NonlinearRegress[dataset, model,
freq, {{Imax, 3*10^8}, {freqzero, 78}, {J, 16},
{lambda, 45}, {eta,
10}, {tmix, 0.006}}]
u = (BestFitParameters /. reg);
Plot[Evaluate[model /. u], {freq, 0,154.94},
Prolog -> {RGBColor[1, 0, 0], PointSize[0.02],
Point /@ dataset}];
Regards
Jens
"michael" <john at rsc.anu.edu.au> schrieb im
Newsbeitrag news:d7pb24$t5r$1 at smc.vnet.net...
> Hallo!
>
> I get a series of error messages when trying to
> do the following
> fitting. Does anyone have an explanation for
> this?
>
> Needs["Statistics`NonlinearFit`"];
>
> dataset = {{1.57, 166796}, {3.13, 136002}, {4.7,
> 65030}, {6.26, 4521},
> {7.83,
> 4318}, {9.39, 49000}, {10.96, 60576},
> {12.52,
> 17297}, {14.09, -18531}, {15.65, 19586},
> {17.22, 113782}, {18.78,
>
> 162297}, {20.35, 104847}, {21.91, 21690},
> {23.48, 26122}, {25.04,
>
> 124402}, {26.61, 230890}, {28.17, 268847},
> {29.74, 265542},
> {31.3,
> 286730}, {32.87, 347177}, {34.43, 398782},
> {36., 405570}, {37.56,
>
> 386662}, {39.13, 378862}, {40.69, 375894},
> {42.26, 382073},
> {43.82,
> 421963}, {45.39, 513252}, {46.95, 623846},
> {48.52, 690012},
> {50.08,
> 717172}, {51.65, 768446}, {53.21, 909624},
> {54.78, 1113780},
> {56.34,
> 1300421}, {57.91, 1468149}, {59.47,
> 1680055}, {61.04, 1970465},
> {62.6,
> 2367746}, {64.17, 2809895}, {65.73,
> 3264465}, {67.3, 3692246},
> {68.86,
> 4046681}, {70.43, 4277327}, {71.99,
> 4360413}, {73.56, 4345338},
> {75.12,
> 4362619}, {76.69, 4547432}, {78.25,
> 4956316}, {79.82, 5597006},
> {81.38,
> 6424912}, {82.95, 7086361}, {84.51,
> 7292635}, {86.08, 6797194},
> {87.64,
> 5857715}, {89.21, 4739038}, {90.77,
> 3744384}, {92.34, 2973363},
> {93.9,
> 2428473}, {95.47, 2062134}, {97.03,
> 1767899}, {98.6, 1540802},
> {100.16,
> 1377719}, {101.73, 1267488}, {103.29,
> 1165008}, {104.86,
> 1017071}, {106.42, 862570}, {107.99,
> 757954}, {109.55, 720299},
> {111.12,
> 679967}, {112.68, 606439}, {114.25,
> 518329}, {115.81, 472809},
> {117.38,
> 481415}, {118.94, 496234}, {120.51,
> 471529}, {122.07, 404742},
> {123.64,
> 343763}, {125.2, 312319}, {126.77,
> 302469}, {128.33, 294309},
> {129.9,
> 280108}, {131.46, 285452}, {133.03,
> 323044}, {134.59, 364258},
> {136.16,
> 350050}, {137.72, 291175}, {139.29,
> 221524}, {140.85, 184576},
> {142.42,
> 178082}, {143.98, 168295}, {145.55,
> 150666}, {147.11, 144994},
> {148.68,
> 163618}, {150.24, 164462}, {151.81,
> 126623}, {153.37, 88763},
> {154.94,
> 96576}, {156.5, 130508}}
>
> Clear[ny, nyzero, rate];
> AL[ny_, nyzero_, rate_] = rate/(rate^2 +
> 4*Pi^2*(ny - nyzero)^2);
> DL[ny_, nyzero_, rate_] =
> 2*Pi*(ny - nyzero)/(rate^2 + 4*Pi^2*(ny -
> nyzero)^2);
>
> tmix = 0.006; Imax = 2.9*10^8; freqzero = 78; J
> = 16; lambda = 45; eta
> = 8;
>
> reg = NonlinearRegress[dataset,
> Imax*(AL[freq, freqzero + J/2, lambda -
> eta]*
> Exp[-(lambda - eta)*tmix] +
> AL[freq, freqzero - J/2, lambda +
> eta]*
> Exp[-(lambda +
> eta)*tmix])*Cos[Pi*J*tmix] +
> Imax*(DL[freq, freqzero + J/2, lambda -
> eta]*
> Exp[-(lambda - eta)*tmix] -
> DL[freq, freqzero - J/2, lambda +
> eta]*
> Exp[-(lambda +
> eta)*tmix])*Sin[Pi*J*tmix],
> freq, {{Imax, 3*10^8}, {freqzero, 78}, {J,
> 16}, {lambda, 45},
> {eta,
> 10}}];
> u = (BestFitParameters /. reg)
> Plot[Imax*(AL[freq, freqzero + J/2, lambda -
> eta]*Exp[-(lambda -
> eta)*tmix] +
> AL[freq, freqzero - J/2, lambda +
> eta]*Exp[-(lambda +
> eta)*tmix])*
> Cos[Pi*J*tmix] +
> Imax*(DL[freq, freqzero + J/2, lambda -
> eta]*Exp[-(lambda -
> eta)*tmix] -
> DL[freq, freqzero - J/2, lambda +
> eta]*
> Exp[-(lambda +
> eta)*tmix])*Sin[Pi*J*tmix], {freq, 0,
> 154.94},
> Prolog -> {RGBColor[1, 0, 0],
> PointSize[0.02], Point /@ dataset}];
>