Fourierrekker

Under finner dere det interactive SAGE-skriptet som ble vist på forelesning den 28.feb:

 var('x,k')
 x0  = 0
 x1  = 2*pi
 
 def cosine_series_coeff(f,n): # n>= 0
     ll = x0
     ul = x1
     an = pi^(-1)* integrate(f*cos(n*x),x,ll,ul)
     return an
 
 def sine_series_coeff(f,n): # n>= 0
     ll = x0
     ul = x1
     bn = pi^(-1)* integrate(f*sin(n*x),x,ll,ul)
     return bn
 
 def fourier_series(f,n):
     fs= cosine_series_coeff(f,0)/2 + sum(cosine_series_coeff(f,k)*cos(k*x), k, 1, n) + sum(sine_series_coeff(f,k)*sin(k*x), k, 1, n)
     return fs
      
 html("<h1>Fourierrekker av grad n</h1>")
 @interact
 def _(n=slider(0, 12,1,0,'Grad n ='), f  = x, ygrense=vector([0,13/2])):
    p   = plot(f,x0,x1, thickness=2)
    fs = fourier_series(f,n)
    pt = plot(fs,x0, x1, color='green', thickness=2)
    err = sqrt(integral((f-fs)^2, x, x0, x1).n(30))
    html('$f(x)\;=\;%s$'%latex(f))
    html('$\hat f(x)\;=\;%s$'%latex(fs))
    html('$||f-\hat f||\;=%s$'%latex(err))
    show(p + pt,ymin = ygrense[0],ymax = ygrense[1])

Instruksjon

Kopier skriptet og kjør/evaluer det i SAGE notebook dersom dere har en installert versjon av SAGE. Hvis ikke så kan det kjøres i sky-serveren til SAGE (krever registrering).

2013-02-28, torealex