Re: Using Fit to interpolate data
- To: mathgroup at smc.vnet.net
- Subject: [mg127442] Re: Using Fit to interpolate data
- From: "Kevin J. McCann" <kjm at KevinMcCann.com>
- Date: Wed, 25 Jul 2012 02:32:55 -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>
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] > >