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 <- 0; for(i in 1:n) f <- f+sin((2*i)*x)/(2*i); f <- f*4/pi
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.
dev.new(width=4,height=3); p <- function(x) {f <- 0; for(i in 1:n) f <- f+sin((2*i)*x)/(2*i); f <- f*4/pi} n <- 1; plot(p,-5,10, ylim=c(-1.5,1.5), 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) # dev.new(width=4,height=3); n <- 1000; plot(p,-5,10, ylim=c(-1.5,1.5), n=5000) abline(h=0,v=0,lty=2,col="blue") abline(v=axTicks(1), h=axTicks(2), col="grey",lty=3)
I grafici realizzati col software online WolframAlpha:
Fourier series calculator piecewise[ {{1-2*((x+pi)/pi), -pi < x < 0}, {1-2*(x/pi), 0 < x < pi} } ] x 14 |
Vedi anche: mathworld subject fourier series