Re: Automate datafitting to a series of parameterized function

*To*: mathgroup at smc.vnet.net*Subject*: [mg70326] Re: [mg70277] Automate datafitting to a series of parameterized function*From*: "Chris Chiasson" <chris at chiasson.name>*Date*: Fri, 13 Oct 2006 01:30:12 -0400 (EDT)*References*: <200610110553.BAA19424@smc.vnet.net>

here is a sloppy way to define f f[x_,coeff__]:=Total@MapIndexed[Times[#1,x^#2[[1]]]&,{coeff}] On 10/11/06, Peng Yu <pengyu.ut at gmail.com> wrote: > Suppose I have some data x_i, y_i. Let us generated them by > > coef = Table[Random[Real, {-1, 1}], {i, 0, 4}] > poly = Table[x^n, {n, 0, 4}] > data = Table[{x, coef.poly}, {x, 0, 1, .01}] > > Let us forget how we generated the data. Now, we want to find an > function to fit the data. The simplest way to do is using Tayler > series. But the problem is I don't know how many terms I should keep. > One way I can do is to try for different number of terms. I start by > only 1 term (0th order). > > f[x_, a0_] := a0 > f[x_] := Evaluate@NonlinearFit[data, f[x, a0], {x}, {a0}] > error = Apply[(f[#1] - #2)^2 &, data, {1}]; > avererror = Apply[Plus, error]/Length[data] > maxerror = Apply[Max, error] > > If the above one doesn't work, I'll try 2 terms (0th and 1st order). > f[x_, a0_, a1_] := a0 + a1 x > f[x_] := Evaluate@NonlinearFit[data, f[x, a0, a1], {x}, {a0, a1}]; > error = Apply[(f[#1] - #2)^2 &, data, {1}]; > avererror = Apply[Plus, error]/Length[data] > maxerror = Apply[Max, error] > > I can try even higher orders. But the problem is that ever time I have > to define the function f[x_,a0_...] and supply the right function and > parameter list to NonlinearFit. I feel it is especially difficult to > parameterize the number of parameters to a function. > > Can some give some idea on how to do it if it is possible in > Mathematica? Of cause I could write a python program to generate the > mathematica code, and call math.exe in the command line mode. But that > is just to much, I just want to stick with mathematica. > > Thanks, > Peng > > -- http://chris.chiasson.name/

**References**:**Automate datafitting to a series of parameterized function***From:*"Peng Yu" <pengyu.ut@gmail.com>