Re: curve fitting
- To: mathgroup at smc.vnet.net
- Subject: [mg40820] Re: curve fitting
- From: bobhanlon at aol.com (Bob Hanlon)
- Date: Mon, 21 Apr 2003 06:51:18 -0400 (EDT)
- References: <b7qono$3in$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
data={{0,3.786392146},{15,3.81806915}, {30,3.880044496},{45,4.31622824}, {60,4.523878538},{90,4.900042894}, {120,5.175422767},{150,5.217956939}, {180,5.262434094},{240,5.377787989}, {300,5.36486329},{360,5.241879526}, {420,5.234405371},{480,5.228778272}, {540,5.219441168},{600,5.230700617}, {660,5.305355251},{720,5.41936145}, {780,5.50345499},{840,5.524101499}, {900,5.546731139},{960,5.498010869}, {1020,5.574792174},{1080,5.600864814}, {1140,5.589530789},{1200,5.537377461}, {1260,5.455131015},{1320,5.342847014}, {1380,5.344745156},{1440,5.344745156}}; xmin=Min[data[[All,1]]]; xmax=Max[data[[All,1]]]; To get straight line interpolation set the InterpolationOrder to one. f=Interpolation[data, InterpolationOrder->1]; To include the origin, manually set the PlotRange Plot[f[x],{x,xmin,xmax},PlotStyle->RGBColor[0,0,1], Epilog->{AbsolutePointSize[5],RGBColor[1,0,0], Point/@data},ImageSize->400, PlotRange->{0,6}]; Note that it skipped over a few points (second and third) because the number of PlotPoints was too small. Increase the PlotPoints Plot[f[x],{x,xmin,xmax},PlotStyle->RGBColor[0,0,1], Epilog->{AbsolutePointSize[5],RGBColor[1,0,0], Point/@data},ImageSize->400, PlotRange->{0,6}, PlotPoints->50]; However, if all you want is a plot of straight line interpolation you can use ListPlot ListPlot[data, PlotJoined->True, PlotStyle->RGBColor[0,0,1],PlotRange->{0,6}, Epilog->{AbsolutePointSize[5],RGBColor[1,0,0], Point/@data},ImageSize->400]; Bob Hanlon In article <b7qono$3in$1 at smc.vnet.net>, <cbhat at purdue.edu> wrote: << Subject: curve fitting From: "C B" <cbhat at purdue.edu> To: mathgroup at smc.vnet.net Date: Sat, 19 Apr 2003 06:01:28 +0000 (UTC) please look at the following mathematica code which I actually got from some of the good people on this newsgroup. The plot obtained in the last line of the code, does not really look exactly line the plot given by Microsoft EXcel. Can anyone explain what they are different ? Is it possible to obtain an interpolation function for the plot the way it appears in Excel? Are there any ways in Mathematica of getting information about the errors in the curve fitting? data = {{0, 3.786392146}, {15, 3.81806915}, {30, 3.880044496}, {45, 4.31622824}, {60, 4.523878538}, {90, 4.900042894}, {120, 5.175422767}, {150, 5.217956939}, {180, 5.262434094}, {240, 5.377787989}, {300, 5.36486329}, {360, 5.241879526}, {420, 5.234405371}, {480, 5.228778272}, {540, 5.219441168}, {600, 5.230700617}, {660, 5.305355251}, {720, 5.41936145}, {780, 5.50345499}, {840, 5.524101499}, {900, 5.546731139}, {960, 5.498010869}, {1020, 5.574792174}, {1080, 5.600864814}, {1140, 5.589530789}, {1200, 5.537377461}, {1260, 5.455131015}, {1320, 5.342847014}, {1380, 5.344745156}, {1440, 5.344745156}} << NumericalMath`NIntegrateInterpolatingFunct` f = Interpolation[data] NIntegrateInterpolatingFunction[f[x], {x, 0, 1440}] xmin = Min[data[[All, 1]]] xmax = Max[data[[All, 1]]] Plot[f[x], {x, xmin, xmax}, PlotStyle -> RGBColor[0, 0, 1], Epilog -> {AbsolutePointSize[5], RGBColor[1, 0, 0], Point /@ data}, ImageSize -> 400] >><BR><BR>