Re: FourierTrigSeries[] and user-defined function
- To: mathgroup at smc.vnet.net
- Subject: [mg96632] Re: [mg96628] FourierTrigSeries[] and user-defined function
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Wed, 18 Feb 2009 04:21:16 -0500 (EST)
- References: <200902171132.GAA26377@smc.vnet.net>
sagrailo at gmail.com wrote: > Am trying to have Mathematica to generated coefficient of Fourier > trigonometric series for simple step function, defined as follows: > f[x_ /; Mod[x, 2*Pi] <= Pi] := 1 > f[x_ /; Mod[x, 2*Pi] > Pi] := 2 > > I'm able to get the plot of the function: > Plot[f[x], {x, 0, 2*Pi}, PlotRange -> {0, 3}] > > However, when I try to generate Fourier coefficients: > FourierTrigSeries[f[x], x, 10] > Mathematica is just repeating the above expression as output (and > passing the expression to N[] or Evaluate[] doesn't help. > > Any suggestion here? Also, is it possible to not use Mod[] in the > function definition above, and to have Mathematica to "know" that it > should "extend" given function so that it behaves as periodic > function? > > Thanks. FourierTrigSeries will implicitly make the function periodic; all it does involves integrals over one period. You might define the function as a sum of box functions. Each of those can be done as unit steps with two borders (in Mathematica, that is UnitStep with two arguments). Mod will not work in this setting because FourierTrigSeries and related functions do not have any ability to handle an unevaluated "symbolic" Mod. I assume your period is intended go from -2*Pi to 2*Pi, hence the nondefault FourierParameters setting below. Possibly instead you just mean to have a period from -Pi to Pi, in which case just shift your definition (which appears to be from 0 to 2*Pi and change the code below as needed. f[x_] := 2*UnitStep[x + 2*Pi, 2*Pi - x] - UnitStep[x + Pi, Pi - x] In[47]:= g[x_] = FourierTrigSeries[f[x], x, 9, FourierParameters -> {1, 1/2}] Out[47]= 3/2 - (2*Cos[x/2])/Pi + (2*Cos[(3*x)/2])/(3*Pi) - (2*Cos[(5*x)/2])/(5*Pi) + (2*Cos[(7*x)/2])/(7*Pi) - (2*Cos[(9*x)/2])/(9*Pi) Checking with Plot shows something plausible. Plot[g[x], {x, -20, 20}] Daniel Lichtblau Wolfram Research
- References:
- FourierTrigSeries[] and user-defined function
- From: sagrailo@gmail.com
- FourierTrigSeries[] and user-defined function