MathGroup Archive 2008

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

Search the Archive

Re: Interpolation with FourierTrigSeries with mathematica 6 tia sal2

  • To: mathgroup at smc.vnet.net
  • Subject: [mg88489] Re: Interpolation with FourierTrigSeries with mathematica 6 tia sal2
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Tue, 6 May 2008 06:43:51 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <fvmmo4$8a6$1@smc.vnet.net>

ratullochjk2 at gmail.com wrote:

> Interpolation with FourierTrigSeries with mathematica 6 tia sal2

<snip>

>  When I change different data points to the code example:
> 
>  data2 = {{0, 0}, {1, 1}, {3, 0}, {7, -2}, {14, 1}, {17, 6}, {19, -2},
> {25, -6}, {34, 6}, {41, 4}, {49, -6}, {56, -5}, {63, 4}, {69, 3}, {74,
> -5}, {77, -3}, {86, 3}, {90, 7}, {95, -3}, {96, -8}, {103, 7}, {112,
> 9}, {120, -8}, {129, -9}, {138, 9}};
=============================^^^^^^^
The endpoint must have a y-value equals to the y-value of the start 
point. In your case, since the function starts with a value of zero, the 
last point must be {138, 0} because the function *must* be periodic. 
This is exactly what Mathematica complains about in the *error message* 
you have chosen to disregard.

Needs["FourierSeries`"]

data2 = {{0, 0}, {1, 1}, {3, 0}, {7, -2}, {14, 1}, {17,
     6}, {19, -2}, {25, -6}, {34, 6}, {41, 4}, {49, -6}, {56, -5}, {63,
      4}, {69, 3}, {74, -5}, {77, -3}, {86, 3}, {90,
     7}, {95, -3}, {96, -8}, {103, 7}, {112,
     9}, {120, -8}, {129, -9}, {138, 9}};

f = Interpolation[data2, PeriodicInterpolation -> True];

s[x_] = N[
   FourierTrigSeries[f[x], x, 25, FourierParameters -> {-1, 1/138}]]

Interpolation::per: In dimension 1 the data at the endpoints of the \
fundamental period are not equal. >>


> 	f = Interpolation[data2, PeriodicInterpolation -> True];
> 	<< "FourierSeries`"
> 
> 	s[x_] = N[
>   FourierTrigSeries[f[x], x, 25, FourierParameters -> {-1, 1/138}]]
> 
>   my partial output becomes :
> 
>   0.00729927 NIntegrate[
>    Interpolation[{{0, 0}, {1, 1}, {3, 0}, {7, -2}, {14, 1}, {17,
>        6}, {19, -2}, {25, -6}, {34, 6}, {41,
>        4}, {49, -6}, {56, -5}, {63, 4}, {69,
>        3}, {74, -5}, {77, -3}, {86, 3}, {90,
>        7}, {95, -3}, {96, -8}, {103, 7}, {112,
>        9}, {120, -8}, {129, -9}, {138, 9}},
>      PeriodicInterpolation -> True][x], {x, -(137/2), 137/2}] +
>  0.0145985 Cos[0.0458627 x] NIntegrate..........................
> 
>  does anyone know why this no longer outputs in the form of just sin
> and cos?
>  (which I really want)

Therefore, using *periodic* data points, we get

Needs["FourierSeries`"]

data2 = {{0, 0}, {1, 1}, {3, 0}, {7, -2}, {14, 1}, {17,
     6}, {19, -2}, {25, -6}, {34, 6}, {41, 4}, {49, -6}, {56, -5}, {63,
      4}, {69, 3}, {74, -5}, {77, -3}, {86, 3}, {90,
     7}, {95, -3}, {96, -8}, {103, 7}, {112,
     9}, {120, -8}, {129, -9}, {138, 0}};

f = Interpolation[data2, PeriodicInterpolation -> True];

s[x_] = N[
   FourierTrigSeries[f[x], x, 25, FourierParameters -> {-1, 1/138}]]

[Warning messages about slow convergence discarded]

-1.33366 - 1.93771 Cos[0.0455303 x] - 1.84218 Cos[0.0910607 x] -
  0.915718 Cos[0.136591 x] + 1.96324 Cos[0.182121 x] +
  1.32678 Cos[0.227652 x] + 0.178997 Cos[0.273182 x] -
  1.85621 Cos[0.318712 x] + 1.24014 Cos[0.364243 x] +
  2.53467 Cos[0.409773 x] + 0.178343 Cos[0.455303 x] -
  0.597821 Cos[0.500834 x] + 0.59092 Cos[0.546364 x] -
  0.129048 Cos[0.591894 x] - 0.377664 Cos[0.637425 x] +
  0.303572 Cos[0.682955 x] + 1.10636 Cos[0.728485 x] +
  0.234811 Cos[0.774016 x] - 0.339997 Cos[0.819546 x] -
  0.247664 Cos[0.865076 x] + 0.136132 Cos[0.910607 x] -
  0.0551202 Cos[0.956137 x] - 0.146821 Cos[1.00167 x] -
  0.028917 Cos[1.0472 x] + 0.0668191 Cos[1.09273 x] -
  0.0534889 Cos[1.13826 x] - 0.19826 Sin[0.0455303 x] +
  0.823365 Sin[0.0910607 x] + 0.967715 Sin[0.136591 x] +
  3.57456 Sin[0.182121 x] + 3.72198 Sin[0.227652 x] -
  4.41631 Sin[0.273182 x] - 0.783889 Sin[0.318712 x] +
  0.985987 Sin[0.364243 x] + 0.297933 Sin[0.409773 x] -
  0.182527 Sin[0.455303 x] + 1.85795 Sin[0.500834 x] +
  0.603078 Sin[0.546364 x] - 0.92085 Sin[0.591894 x] -
  0.693979 Sin[0.637425 x] + 0.0286992 Sin[0.682955 x] +
  0.0714767 Sin[0.728485 x] - 0.0838198 Sin[0.774016 x] +
  0.284645 Sin[0.819546 x] + 0.296819 Sin[0.865076 x] -
  0.138192 Sin[0.910607 x] - 0.320014 Sin[0.956137 x] +
  0.0703057 Sin[1.00167 x] + 0.176853 Sin[1.0472 x] +
  0.0718324 Sin[1.09273 x] - 0.10215 Sin[1.13826 x]

Regards,
-- Jean-Marc


  • Prev by Date: Re: orthonormal eigenvectors
  • Next by Date: Re: Hash Table for self avoiding random walks
  • Previous by thread: Re: Interpolation with FourierTrigSeries with mathematica 6 tia sal2
  • Next by thread: Want a general method to extract cases resulting from Reduce