Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

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

Search the Archive

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


  • Prev by Date: Re: Interpolation and plot doing strange things with mathematica
  • Next by Date: Re: "Reduce" wierdness (or too slow?)
  • Previous by thread: Re: Interpolation and plot doing strange things with mathematica
  • Next by thread: Re: Interpolation and plot doing strange things with mathematica