Re: Datapoints -> InterpolatingFunction [Q?] Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg6741] Re: [mg6696] Datapoints -> InterpolatingFunction [Q?] Mathematica
- From: Allan Hayes <hay at haystack.demon.co.uk>
- Date: Tue, 15 Apr 1997 02:51:57 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Patrick Jemmer <padz at joule.pcl.ox.ac.uk>
[mg6696] Datapoints -> InterpolatingFunction [Q?] Mathematica
>Given a set of data points, for example:
>{{0, 1.}, {1., -0.0124666}, {2., 0.39147}, {3., -0.90908},
>{4., -0.922979}, {5., 0.0504471}, {6., -0.59904}, {7., 0.299662},
>{8., -0.82718}, {9., 0.299675}, {10., -0.802699}}
>
>is it possible to create an "InterpolatingFunction"
>object to represent this list: so that one can the differentiate
>it and so on... ?
Patrick,
Here are three approaches (but Fit does gives not an interpolating
function but a least squares fit - it does not pass through the data
points).
data ={{0, 1.}, {1., -0.0124666}, {2., 0.39147}, {3., -0.90908},
{4., -0.922979}, {5., 0.0504471}, {6., -0.59904}, {7., 0.299662},
{8., -0.82718}, {9., 0.299675}, {10., -0.802699}};
FitPoly=Fit[data,{1,x,x^2,x^3},x]
1.023772202797186 - 1.01805753177933*x +
0.2047412731934736*x^2 - 0.01194244980575005*x^3
InterFn =Interpolation[data, InterpolationOrder->5]
InterpolatingFunction[]
InterPoly =
InterpolatingPolynomial[data,x]; (*gives a big poly*)
Interpolating functions can be differentiated as in InterFn' for
the derivative function of InterFn.
Here is a picture (we have to use Evaluate to compute derivatives
before numerical substitutions)
Plot[
Evaluate[{FitPoly, InterPoly,InterFn[x],
D[FitPoly,x], D[InterPoly,x],InterFn'[x]}],
{x,0,8},
PlotStyle->
{{Thickness[.02],Hue[0]},{Thickness[.02],Hue[.35]},
{Thickness[.02],Hue[.7]},
{Hue[0]},{Hue[.35]},{Hue[.7]}},
Epilog -> {Hue[.2],PointSize[.02],Point/@data}
];
Allan Hayes
hay at haystack.demon.co.uk
http://www.haystack.demon.co.uk