Re: Re: Interpolation and plot doing strange things with
- To: mathgroup at smc.vnet.net
- Subject: [mg89030] Re: [mg88999] Re: Interpolation and plot doing strange things with
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Sat, 24 May 2008 03:53:07 -0400 (EDT)
- References: <g134je$m3l$1@smc.vnet.net> <g13h8u$qo6$1@smc.vnet.net> <200805230708.DAA25822@smc.vnet.net>
ratullochjk2 at gmail.com wrote: > On May 22, 12:18 am, Jens-Peer Kuska <ku... at informatik.uni-leipzig.de> > wrote: > >>Hi, >> >>if you make a approximation based on a Fourier series >>it converges "in the middle" and never point wise >>The most famous example is the Gibbs phenomenon.http://en.wikipedia.org/wiki/Gibbs_phenomenon >> >>Regards >> Jens >> >>ratulloch... at gmail.com wrote: >> >>>Greetings All >> >>>I run these commands that I've had plenty of help getting to >>>work...but the plot doesn't follow the points, as you can see in the >>>plot. At the end it just goes crazy and when I test the points with >> >>>input s[0] >>>output is -3.73293 >>>why are the numbers so out of sync... at s[0] it should be -2 not >>>-3.73293 >> >>>I try increasing the number in the line >>>N[FourierTrigSeries[f[x], x, 25, FourierParameters -> {-1, 1/138}]] >>>(I've changed the number 25 to over 100 and the problem seems to get >>>worse) >> >>>See code below: >> >>>In[89]:= data3 = {{0, -2}, {7, 1}, {10, 6}, {12, -2}, {18, -6}, {27, >>>6}, {34, >>> 4}, {42, -6}, {49, -5}, {56, 4}, {62, 3}, {67, -5}, {70, -3}, {79, >>> 3}, {83, 7}, {88, -3}, {89, -8}, {96, 7}, {105, >>> 9}, {113, -8}, {122, -9}, {131, 9}, {132, >>> 1}, {134, -9}, {138, -2}}; >>>f = Interpolation[data3, PeriodicInterpolation -> True]; >> >>><< "FourierSeries`" >> >>>s[x_] = N[ >>> FourierTrigSeries[f[x], x, 25, FourierParameters -> {-1, 1/138}]] >> >>>discr = Interpolation[data3 /. {x_, y_} -> {x, y}, >>> InterpolationOrder -> 1]; >> >>>g[x_] = Piecewise[{{discr[x], 0 < x < 138}, {0, True}}]; >> >>>Show[Plot[s[x], {x, 0, 138}, PlotStyle -> Red, >>> PlotRange -> {-15, 15}], Plot[g[x], {x, 0, 138}, Filling -> Axis], >>> ListPlot[data3, Filling -> Axis, PlotRange -> {0, 138}]] >> >>>tia sal2 > > > can anyone recommend a work around while still keeping the output in > the format as sin and cos or is this not possible? > tia sal2 This may be a bit better behaved, numerically. Use a different integration dummy variable for your Fourier series << "FourierSeries`" s1[x_] = FourierTrigSeries[f[x], y, 25, FourierParameters -> {-1, 1/138}]; s[x_Real] := Block[{y}, (s1[y] /. Integrate -> NIntegrate) /. y -> x] Now s[0.] and s[138.] give 2.0, as desired. In[124]:= s[0.] Out[124]= -2. In[125]:= s[138.] Out[125]= -2. Daniel Lichtblau Wolfram Research
- References:
- Re: Interpolation and plot doing strange things with mathematica
- From: ratullochjk2@gmail.com
- Re: Interpolation and plot doing strange things with mathematica