Seeking a compact expression in a model.
- To: mathgroup at smc.vnet.net
- Subject: [mg48940] Seeking a compact expression in a model.
- From: gilmar.rodriguez at nwfwmd.state.fl.us (Gilmar Rodr?guez Pierluissi)
- Date: Thu, 24 Jun 2004 05:36:07 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Greetings Mathematica User Group! In[1]: \!\(\(points = {{10, 2}, { 10\^2, 6}, {10\^3, 28}, {10\^4, 127}, { 10\^5, 810}, {10\^6, 5402}, {10\^7, 38807}, {10\^8, 291400}, { 10\^9, 2274205}};\)\) In[2]: << Statistics`NonlinearFit` In[3]: \!\(BF[n_] = NonlinearFit[ points, a\_1 + a\_2*n + ß\_1*Log[n]*n\ + ß\_2*Log[Log[n]]*n + ß\_3*Log[Log[Log[n]]]*n + ß\_4*Log[Log[Log[Log[ n]]]]*n + ß\_5*Log[Log[Log[Log[Log[n]]]]]* n + ß\_6*Log[Log[Log[Log[Log[Log[n]]]]]]*n + ß\_7*Log[Log[Log[ Log[Log[Log[Log[n]]]]]]]*n, {n}, {a\_1, a\_2, ß\_1, ß\_2, ß\_3, ß\_4, ß\_5, ß\_6, ß\_7}]\) To get a glimpse of the above Non-linear Fit do: In[4]: << Graphics`Graphics` In[5]: plt1 = LogLogListPlot[points, ImageSize -> 800, GridLines -> True, PlotStyle -> {RGBColor[0, 0, 1]}, Frame -> True]; In[6]: plt2 = LogLogListPlot[Table[{points[[n]][[1]], Re[BF[points[[n]][[1]]]]}, {n, \ 1, 9}], ImageSize -> 800, GridLines -> True, PlotJoined -> True, PlotStyle -> \ {RGBColor[1, 0, 0]}, Frame -> True]; In[7]: Show[plt1, plt2] Now; I'm attempting to find a shorter expression for the above convolution of Log[x], that would works in conjunction with NonlinearFit. So, I tried: In[8]: \!\(term = First[ ListConvolve[{ß\_7, ß\_6, ß\_5, ß\_4, ß\_3, ß\_2, ß\_1}, Drop[NestList[Log, n, 7], 1]]]\) In[9]: \!\(BF2[n_] = NonlinearFit[points, a\_1 + a\_2*n + term*n, {n}, {a\_1, a\_2, ß\_1, ß\_2, ß\_3, ß\_4, ß\_5, ß\_6, ß\_7}]\) and I found that this shorter way also works. My question is; is there a more elegant way to do the above NonLinearFit that doesn't involve having to use ListConvolve and NestList? \!\(\(\( (*\(\(*\)\(\ \)\(Define\)\(\ \)\(Log\_\(\([\)\(1\)\(]\)\)[ n]\)\)\ = \ Log[n], \ Log\_\(\([\)\(2\)\(]\)\)[n] = Log[Log[n]], \ Log\_\(\([\)\(3\)\(]\)\)[n] = Log[Log[Log[ n]]], \ ... \ , Log\_\(\([\)\(i\)\(]\)\)[n] = Log[Log[Log[\(\(...\) \ \(Log[n]\)\) ... ]]], \ i . e . \ this\ last\ term\ is\ obtained\ by\ convolving\ Log[n], \ i\ \(\(times\)\(.\)\)\ \ \ \ \ \ \ \ \ \ \ \ \ \ **) \)\(\ \ \)\)\) I'm looking for a short expression like: \!\(\(\(\ \ \ \ \ \ \ \ \)\(BF[n_] = NonlinearFit[points, a\_1 + a\_2* n\ + \((\(\(?\(\(ß\_i\)\(*\)\)\)\+\(\(\ \)\(i\ = \ 1\)\)\%9\) \ Log\_\(\([\)\(i\)\(]\)\)[ n])\)*n, {n}, {a\_1, a\_2, ß\_1, ß\_2, ß\_3, ß\_4, ß\_5, ß\_6, ß\_7}]\)\)\) Unfortunately; this last form does not work. If the above command lines are not translating faithfully when you copy paste them into Mathematica, please download the following notebook: http://www.gilmarlily.netfirms.com/download/question.nb Thank you for your help!