0% found this document useful (0 votes)
226 views8 pages

Sage Fourier

1. The document discusses finding the Fourier series representation of a piecewise defined function f(x). It provides the formulas for computing the Fourier coefficients and uses Sage to compute the first few terms and graph the partial sum. 2. It then considers the cosine series for the same function f(x), providing the formula for the cosine coefficients and computing the first few non-zero terms. 3. Finally, it mentions finding the sine series representation of f(x) as an exercise, completing the analysis of all three common representations - Fourier, cosine, and sine series.

Uploaded by

William Peña
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
226 views8 pages

Sage Fourier

1. The document discusses finding the Fourier series representation of a piecewise defined function f(x). It provides the formulas for computing the Fourier coefficients and uses Sage to compute the first few terms and graph the partial sum. 2. It then considers the cosine series for the same function f(x), providing the formula for the cosine coefficients and computing the first few non-zero terms. 3. Finally, it mentions finding the sine series representation of f(x) as an exercise, completing the analysis of all three common representations - Fourier, cosine, and sine series.

Uploaded by

William Peña
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Fourier series using SAGE

1. Let

2, 3/2 x 3, 0, 0 x 3/2, f (x) = 1, 3 < x < 0,

period 6. Find the Fourier series of f (x) and graph the function the FS converges to, 3 x 3. Write down the series in summation notation and compute the rst 3 non-zero terms. The plot of f (x) is given in Figure 1. solution: Of course the Fourier series of f (x) with period 2L is nx nx a0 [an cos( + ) + bn sin( )], f (x) 2 L L n=1 where an and bn are an = bn = 1 L 1 L
L

cos(
L L

nx )f (x) dx, L

sin(
L

nx )f (x) dx. L

Generally, the following SAGE/Python functions compute the Fourier series coecients of f (x):
def fourier_series_cos_coeff(fcn,n,L): # n>= 0 lowerlimit = -L upperlimit = L an = maxima(tldefint(%s*cos(%s*n*x/%s),x,%s,%s)/L%(fcn,maxima(pi),L,lowerlimit,upperlimit)) return str(an).replace("%","") def fourier_series_sin_coeff(fcn,n,L): # n > 0 lowerlimit = -L upperlimit = L bn = maxima(tldefint(%s*cos(%s*n*x/%s),x,-%s,%s)/L%(fcn,maxima(pi),L,lowerlimit,upperlimit)) return str(bn).replace("%","")

Figure 1: Piecewise polynomial function f (x). However, Maximas support for piecewise dened functions is rudimentary and the above functions will not give us what we want. So we compute them using SAGEs piecewise polynomial class, with some help from Maxima:
sage: sage: sage: sage: sage: sage: sage: f1 = lambda x:2 f2 = lambda x:0 f3 = lambda x:-1 f = Piecewise([[(-3,0),f3],[(0,3/2),f2],[(3/2,3),f1]]) P = f.plot_fourier_series_partial_sum(10,3,-5,5) P.show() f.fourier_series_partial_sum(5,3) 0 + ((-2/pi)*cos(1*pi*x/3) + (4/pi)*sin(1*pi*x/3)) + (0*cos(2*pi*x/3) + (-2/pi)*sin(2*pi*x/3)) + ((2/(3*pi))*cos(3*pi*x/3) + (4/(3*pi))*sin(3*pi*x/3)) + (0*cos(4*pi*x/3) + 0*sin(4*pi*x/3))

The plot P produced in this SAGE code is diaplyed in Figure 2. The piecewise class requires that the subscript of the Fourier coefcient be a xed integer. For a symbolic argument, use the following 2

Figure 2: Graph of 1st 10 terms of partial Fourier series of f (x). commands:


## n > 0 FS cosine coeff fcn = 2; lowerlimit = 3/2; upperlimit = 3; L = 3 an1 = maxima(tldefint(%s*cos(%s*n*x/%s),x,%s,%s)%(fcn,maxima(pi),L,lowerlimit,upperlimit)); an1 # 6*sin(%pi*n)/(%pi*n) - 6*sin(%pi*n/2)/(%pi*n) fcn = -1; lowerlimit = -3; upperlimit = 0; L = 3 an2 = maxima(tldefint(%s*cos(%s*n*x/%s),x,%s,%s)%(fcn,maxima(pi),L,lowerlimit,upperlimit)); an2 # -3*sin(%pi*n)/(%pi*n) an = (an1+an2)/L # (3*sin(%pi*n)/(%pi*n) - 6*sin(%pi*n/2)/(%pi*n))/3

n/2) . We must compute the n = 0 In other words, for n > 0, an = 2 sin(n term separately:
## n = 0 FS cosine coeff fcn = 2; lowerlimit = 3/2; upperlimit = 3; L = 3 an1 = maxima(tldefint(%s*cos(%s*0*x/%s),x,%s,%s)%(fcn,maxima(pi),L,lowerlimit,upperlimit)); an1 # 3 fcn = -1; lowerlimit = -3; upperlimit = 0; L = 3 an2 = maxima(tldefint(%s*cos(%s*0*x/%s),x,%s,%s)%(fcn,maxima(pi),L,lowerlimit,upperlimit)); an2 # -3 an = (an1+an2)/L # 0

You can also use the command


sage: f.fourier_series_cosine_coefficient(0,3) 0

In other words, a0 = 0.
## n > 0 FS sine coeff fcn = 2; lowerlimit = 3/2; upperlimit = 3; L = 3 bn1 = maxima(tldefint(%s*sin(%s*n*x/%s),x,%s,%s)%(fcn,maxima(pi),L,lowerlimit,upperlimit)); bn1 # 6*cos(%pi*n/2)/(%pi*n) - 6*cos(%pi*n)/(%pi*n) fcn = -1; lowerlimit = -3; upperlimit = 0; L = 3 bn2 = maxima(tldefint(%s*sin(%s*n*x/%s),x,%s,%s)%(fcn,maxima(pi),L,lowerlimit,upperlimit)); bn2 # 3/(%pi*n) - 3*cos(%pi*n)/(%pi*n) bn = (bn1+bn2)/L # ( - 9*cos(%pi*n)/(%pi*n) + 6*cos(%pi*n/2)/(%pi*n) + 3/(%pi*n))/3

In other words, bn =

13(1)n +2 cos(n/2) . n

The Fourier series is therefore

f ( x)
n=1

[(2

sin(n/2) nx 1 3(1)n + 2 cos(n/2) nx ) cos( )+( ) sin( )], n 3 n 3

sage: Pi = RR(pi) sage: bn = lambda n:( - 9*cos(Pi*n)/(Pi*n) + 6*cos(Pi*n/2)/(Pi*n) + 3/(Pi*n))/3 sage: bn(1); bn(2); bn(3) 1.2732395447351628 -0.63661977236758127 0.42441318157838753 sage: an = lambda n:2*(sin(Pi*n/2))/(Pi*n) sage: an(1); an(2); an(3) 0.63661977236758138 0.000000000000000038981718325193755 -0.21220659078919379

Here are the rst few numerical values of these coecients:


2 = 0.6366197723675813..., a1 = a2 = 0, a3 = 32 = 0.2122065907891937..., 4 b1 = = 1.273239544735162..., 2 b2 = = 0.6366197723675812..., 4 b3 = 3 = 0.4244131815783875... .

The function the Fourier series of f (x) converges to (by Dirichlets theorem) is in Figure 3. 4

Figure 3: Graph of Fourier series of f (x). 2. Let f (x) =

2, 3/2 t 3, 0, 0 t 3/2,

Find the Cosine series of f (x) (period 6) and graph the function the CS converges to, 3 x 3. Write down the series in summation notation and compute the rst 3 non-zero terms. solution: Of course the Cosine series of f (x) with period 2L is nx a0 + an cos( ), f (x) 2 L n=1

where an is an =

2 L

cos(
0

nx )f (x) dx. L

A simple Python program:


def cosine_series_coeff(fcn,n,L): # n>= 0 lowerlimit = 0 upperlimit = L an = maxima(2*tldefint(%s*cos(%s*n*x/%s),x,%s,%s)/L%(fcn,maxima(pi),L,lowerlimit,upperlimit)) return str(an).replace("%","")

It was noted above that this program will not help us, for the type of function we are dealing with here. So, we have SAGE do the computations piece-by-piece:
## n > 0 fcn = 2; lowerlimit = 3/2; upperlimit = 3; L = 3 an1 = maxima(tldefint(%s*cos(%s*n*x/%s),x,%s,%s)%(fcn,maxima(pi),L,lowerlimit,upperlimit)); an1 # 6*sin(%pi*n)/(%pi*n) - 6*sin(%pi*n/2)/(%pi*n) an = (2/L)*an1 an # 2*(6*sin(%pi*n)/(%pi*n) - 6*sin(%pi*n/2)/(%pi*n))/3

n/2) . To nd the 0-th coecient, use the In other words, an = 4 sin(n commands
## n = 0 an1 = maxima(tldefint(%s*cos(%s*0*x/%s),x,%s,%s)%(fcn,maxima(pi),L,lowerlimit,upperlimit)); an1 # 3 an = (2/L)*an1 an # 2 # a0 = 2

or the command
sage: sage: sage: sage: f1 = lambda x:2 f2 = lambda x:0 f = Piecewise([[(0,3/2),f2],[(3/2,3),f1]]) f.cosine_series_coefficient(0,3) 2

In either case, a0 = 2. The Cosine series is therefore

f ( x) 1 +
n=1

(4

nx sin(n/2) ) cos( ). n 3

sage: an = lambda n:4*sin(Pi*n/2)/(Pi *n) sage: an(1); an(2); an(3) 1.2732395447351628 0.000000000000000077963436650387510 -0.42441318157838759 So, a1 =
4

= 1.273239544735162..., a2 = 0, a3 = 34 .

The function the Cosine series of f (x) converges to (by Dirichlets theorem) is in Figure 4.

Figure 4: Graph of Cosine series of f (x).

3. Let f (x) =

2, 3/2 t 3, 0, 0 t 3/2,

Find the Sine series of f (x) (period 6) and graph the function the FS converges to, 6 x 6. Write down the series in summation notation and compute the rst 3 non-zero terms.

We leave this one as an exercise for the reader!

You might also like