Re: NonlinearFit + Sums
- To: mathgroup at smc.vnet.net
- Subject: [mg68806] Re: [mg68760] NonlinearFit + Sums
- From: Darren Glosemeyer <darreng at wolfram.com>
- Date: Sat, 19 Aug 2006 00:41:10 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
I would suggest assigning the list of variable names to a symbol and using Total to do the summation in the model. A shortened example using 5 x_i variables follows. In[1]:= << Statistics` In[2]:= xvect = Table[ToExpression[StringJoin["x", ToString[i]]], {i, 1, 5}] Out[2]= {x1, x2, x3, x4, x5} In[3]:= model=E^(mu)*Total[xvect] mu Out[3]= E (x1 + x2 + x3 + x4 + x5) In[4]:= data = Table[Random[], {100}, {6}]; In[5]:= NonlinearFit[data, model, xvect, {mu}] Out[5]= 0.19181 (x1 + x2 + x3 + x4 + x5) Since E^(mu) was just a constant multiplier in the model sent, I factored it out in model above. In general, if you have a model that is a sum of a function f of the individual variables, you could do something like the following. In[6]:= Total[ Map[f, xvect]] Out[6]= f[x1] + f[x2] + f[x3] + f[x4] + f[x5] For the example model sent, this would work like the following. In[7]:= Total[ Map[E^(mu)*#&, xvect]]//InputForm Out[7]//InputForm= E^mu*x1 + E^mu*x2 + E^mu*x3 + E^mu*x4 + E^mu*x5 Darren Glosemeyer Wolfram Research At 03:12 AM 8/18/2006 -0400, Lyta wrote: >Hi, > >I want to do a mulitdimensional nonlinear fitting and I'm not sure how to >define the mathematica statement for that. > >I have a matrix "data" of dimensions 140x37 that contains 36 samples of >140 functions. The 37th column contains the resulting value of a mapping >of the type R36->R1. I want to calculate the parameter mu of a function >that integrates over the samples - i posted a simplified version of the >function below. My problem is, that I don't know what to write instead of >x_i. For the second x_ it should be something like {x1, x2, x3, x4, ..., >x36}. But the first x_i should be something like x[[i]] (this doesn't work >ofc). How do i assign the data to the sum? > >NonlinearFit[data, Sum[E^(mu)*x_i, {i, 1, 36}], x_i, {mu}] > >I hope you can help :-)