Re: Fit
- To: mathgroup at smc.vnet.net
- Subject: [mg76189] Re: Fit
- From: Ray Koopman <koopman at sfu.ca>
- Date: Thu, 17 May 2007 06:08:30 -0400 (EDT)
- References: <f2ejm8$d2$1@smc.vnet.net>
On May 16, 2:42 am, Mathieu G <ellocoma... at free.fr> wrote:
> Hello,
> I have an expression of the form:
>
> 8000000 Sqrt[2/\[Pi]] (-Erf[(-300 + x)/(4000 Sqrt[2])] +
> Erf[(300 + x)/(4000 Sqrt[2])]) (-1/2 Sqrt[\[Pi]/2]
> Erf[(-300 + y)/(4000 Sqrt[2])] +
> 1/2 Sqrt[\[Pi]/2] Erf[(300 + y)/(4000 Sqrt[2])])
>
> how can I make a fit using a 2D Gaussian function of the form
>
> Gaussian2D[x_, y_, Radius_, Amplitude_] :=
> Amplitude Exp[-1/2 ((x/Radius)^2 + (y/Radius)^2)];
>
> Thank you for your help!
> MG
Your expression can be rewritten as f[x]*f[y],
where f[t] = 2000*(Erf[(t + 300)/(4000 Sqrt[2])] -
Erf[(t - 300)/(4000 Sqrt[2])],
so the problem is to approximate the unidimensional function f,
which is roughly proportional to the pdf of a normal variable with
mean = 0 and sd = 4000. There are many ways to do the approximation.
Which you choose depends on how you define the badness of fit. The
easiest is to use a series approximation at t = 0, which leads to
g[t_] := With[{a = N[4000*Erf[3/(40*Sqrt[2])]],
r = N[8000*E^(9/6400)*(2*Pi)^(1/4) *
Sqrt[(5/3)*Erf[3/(40*Sqrt[2])]]]},
(* a = 239.141, r = 4003.75 *)
a*Exp[-.5(t/r)^2]]
If this fits too poorly away from 0 then adjust the coefficients.