Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Using Fit to interpolate data

  • To: mathgroup at smc.vnet.net
  • Subject: [mg127443] Re: Using Fit to interpolate data
  • From: Kris Carlson <carlsonkw at gmail.com>
  • Date: Wed, 25 Jul 2012 02:33:15 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <jullkd$ptc$1@smc.vnet.net> <500EA086.2050907@KevinMcCann.com>

On Tue, Jul 24, 2012 at 9:17 AM, Kevin J. McCann <kjm at kevinmccann.com>wrote:

> A couple of comments:
>
> 1) Fit performs a linear least squares fit; so, you initially did a
> straight line fit. Do you have any reason/theory to suggest that it should
> be so? Your data appear to suggest an exponential relationship.
>
> 2) The goodness of the fit depends on the goodness of the data set. Do you
> have error bounds on the data points?
>
> Also, you might comment on why you want to do the fit in the first place.
> For example, are you going to do subsequent calculations with the fit? Are
> the fit parameters relevant? ...
>
> Kevin
>
> On 7/24/2012 4:16 AM, Kris Carlson wrote:
>
>> Hi,
>>
>> Can someone enlighten me about how to fit a curve to data? These data are
>> of the density of axons of given diameters in the spinal cord. The density
>> of smaller fibers is dramatically larger than that of larger fibers. There
>> cannot be density < 0 of any diameter, so heuristically to prevent a fit
>> yielding an equation that dips below 0 I added an end point with fiber
>> diameter = 16 that is 0. Then using Fit I try to increase the exponent of
>> x
>> until the curve doesn't yield negative values. The fit looks good in large
>> scale but when I plot the region of greatest interest, 8 < x < 14, it no
>> longer looks so good. Maybe I am simply ignorant about fitting a curve to
>> somewhat irregular data? Or can it be done?
>>
>> Thank you.
>>
>> Kris
>>
>> fiberDataDensitiesFeierabend = {{16, 0}, {10.7, 0.11}, {10.4,
>>      0.19}, {9.77, 0.41}, {8.29, 3.05}, {7.14, 19.86}};
>>
>> fbddPlot =
>>   ListPlot[**fiberDataDensitiesFeierabend,
>>    PlotMarkers -> {Automatic, Medium}]
>>
>> fbddFit = Fit[**fiberDataDensitiesFeierabend, {1, x, x^-13}, x]
>>
>> Show[Plot[fbddFit, {x, 4, 20},
>>    PlotRange -> {{4.5, 20}, {-0.5, 25}}], fbddPlot]
>>
>> Show[Plot[fbddFit, {x, 4, 28},
>>    PlotRange -> {{8, 16}, {-0.5, 1}}], fbddPlot]
>>
>>
>>  Kevin, I started with a low order polynomial, not linear, then advanced
> the order to get a better fit. Today made some progress by omitting the
> other terms and just using ax^-13; so in the range I need,  the following
> works pretty well. Sorry I didn't give the big picture, which is I need to
> translate (interpolate) from Feirabend's fiber diameters to another group's
> (Lee's).


In[131]:= fiberDataLeeDiameters = fiberDataLee[[All, 1]]

Out[131]= {25, 14, 12.8, 11.5, 8.7, 7.5, 5.7}

 In[277]:= fbddFit = Fit[fiberDataDensitiesFeierabend, {x^-13}, x]

Out[277]= 2.4929*10^12/x^13

Kris




  • Prev by Date: Re: Using Fit to interpolate data
  • Next by Date: Re: Using Fit to interpolate data
  • Previous by thread: Re: Using Fit to interpolate data
  • Next by thread: Re: Using Fit to interpolate data