A0 + Σ k = 1..∞ (Ak·cos(k·x) + Bk·sin(k·x))
Sopra è descritta una generica serie di Fourier. Verifica che nel caso seguente si ottengono le approssimazioni sotto riprodotte con i polinomi di Fourier indicati:
f <- pi^2/3; for(i in 1:n) f <- f+4*(-1)^i/i^2*cos(i*x)
n = 1, 2, 3, 1000
Ecco la soluzione con R, ma potrebbe essere affrontata con altro software. Per altre considerazioni vedi qui e link ivi presenti.
Vedi anche WolframAlpha: mathworld subject fourier series
dev.new(width=4,height=3); p <- function(x) {f <- pi^2/3; for(i in 1:n) f <- f+4*(-1)^i/i^2*cos(i*x); f}; n <- 1; plot(p,-5,10, ylim=c(-2,10),col="blue",n=1000) abline(h=0,v=0,lty=2,col="blue") abline(v=axTicks(1), h=axTicks(2), col="grey",lty=3) n <- 2; plot(p,-5,10,add=TRUE,col="red",n=1000) n <- 3; plot(p,-5,10,add=TRUE,col="green4",n=1000) n <- 4; plot(p,-5,10,add=TRUE,col="brown",n=1000) # dev.new(width=4,height=3); n <- 1000; plot(p,-5,10, ylim=c(-2,10), n=5000) abline(h=0,v=0,lty=2,col="blue") abline(v=axTicks(1), h=axTicks(2), col="grey",lty=3)