Re: best strategy to fit the given function to my data

• To: mathgroup at smc.vnet.net
• Subject: [mg71243] Re: [mg71183] best strategy to fit the given function to my data
• From: Christopher Arthur <caa0012 at unt.edu>
• Date: Sat, 11 Nov 2006 03:39:04 -0500 (EST)
• References: <200611101137.GAA13618@smc.vnet.net>

```Hi,

Without trying to understand the details of your function, I'll say a
few general things I've learned about fitting.  Fourier series
approximations are good if your data is periodic or defined on a
bounded space, and you want to be able to integrate your functions.
Splines and Interpolation will fit just about anything, but you don't
get good smoothness beyond what partials you give to it.  And finding
arclength of a spline, for example, is not possible analytically.
Almost all the fit functions assume a smoothness to the dataset,
whereas your set is apparently only piecewise smooth at best.  Hence,
consider just fitting on smooth components of the image piecewise.  C
Arthur

Quoting aitor69gonzalez at gmail.com:

> Hello,
>
> I have a set of data that can be approximated by the 2-variable
> function "noisydyn[a_,t_]". The function "noisydyn[a_,t_]" contains a
> Sin function, because there is oscillation in my data, and a Step
> (Heaviside) function, because the observations are Boolean. The
> function "noisydyn[a_,t_]" also contains a sigmoid (Hill) function,
> "Period[a_]" with three unknown parameters, "m", "theta" and "T" that I
> have approximated to the data by hand.
>
> (*Remove["Global`*"]; Off[General::spell1];*)
> m = 4; theta = 2400; T = 120;
> Period[a_] := T*(1 + 11*(a^m/(a^m + theta^m)));
> noisydyn[a_, t_] :=
>    UnitStep[Sin[
>        2*\[Pi]*((t - a)/T + a/Period[a]) - Random[Real, {-0.5,
> 0.5}]]];
> data = Table[noisydyn[a, t], {a, 0, 720, 20}, {t, 0, 120, 2}];
> ListDensityPlot[data, Mesh -> False];
>
> I have found in Mathematica several functions to fit data, Nminimize,
> Nmaximize, Fit, etc, but I do not know, which of them should I use.
> Given the functions "Period" and "noisydyn", how I can fit the
> parameters "m", "theta" and "T" to the Table "data".
>