MathGroup Archive 2002

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

Search the Archive

Re: Nonlinear Fit

  • To: mathgroup at smc.vnet.net
  • Subject: [mg38387] Re: Nonlinear Fit
  • From: "Carl K. Woll" <carlw at u.washington.edu>
  • Date: Fri, 13 Dec 2002 04:10:07 -0500 (EST)
  • Organization: University of Washington
  • References: <at9c7d$pu4$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Hypermars,

Your question has come up before, and I will give you the solution I like
the best.

The problem you are having arises because Mathematica doesn't know how to
differentiate your function. So, my solution is to teach Mathematica how to
do the derivative. First, we need to change your function definition so that
the definition is applied only when the arguments to the function are
numbers:

f[r_?NumericQ,a_?NumericQ] := NIntegrate[x/(x^2+a^2) Exp[-x^2] BesselJ[0,x
r],{x,0,Infinity}]

Next, the derivative with respect to r is

fr[r_?NumericQ,a_?NumericQ]:=NIntegrate[x/(x^2+a^2)Exp[-x^2](-x BesselJ[1,x
r]),{x,0,Infinity}]
fa[r_?NumericQ,a_?NumericQ]:=NIntegrate[-2 a
x/(x^2+a^2)^2Exp[-x^2]BesselJ[0,x r],{x,0,Infinity}]

We need to teach Mathematica about these derivatives:

Derivative[1,0][f]=fr;
Derivative[0,1][f]=fa;

Now, we're all set. Let's create some data:

data=Table[{i,f[i,1]+Random[]10^-3},{i,0,1,10^-2}];

Load the package and run NonlinearFit:

<<Statistics`NonlinearFit`

NonlinearFit[data,f[r,a],r,{a}]

Good luck,

Carl Woll
Physics Dept
U of Washington

"Hypermars" <hypermars00 at yahoo.com> wrote in message
news:at9c7d$pu4$1 at smc.vnet.net...
> Hello,
>
> regarding the package "Statistics'NonlinearFit'" is it possible to fit an
> array of data with a function defined by NIntegrate?
>
> Example:
>
> f[r_,a_] := NIntegrate[x/(x^2+a^2) Exp[-x^2] BesselJ[0,x
r],{x,0,Infinity}]
>
> BestFitParameters /.
NonlinearRegress[data,f[r,a],r,{a},RegressionReport ->
> BestFitParameters]
>
> I mean, I know it's not possible because I tried and it doesn't work, but
I
> was wondering if there is some way to do that.
>
> Any suggestion is more than welcome.
>
> Thanks
> Hyper
>
>
>




  • Prev by Date: Re: Polynomial GCD as Linear Combination
  • Next by Date: LabelContourLines bug/feature
  • Previous by thread: Nonlinear Fit
  • Next by thread: Export[] and AxesLabel->{"x/x0", y/y0, z} (there is no "/" in a .ps file)