system "clear"
print " "
print " "
print "============================================================"
print " Os direitos do autor e a GPL "
print "============================================================"
print " "
print "Este programa é distribuido sob GPL. "
print "Se você não souber o que é a GPL, envie um e-mail ao autor "
print " tarcisio@member.ams.org "
print "mas em suma quer dizer que você pode usar livremente o sistema"
print "de programas aqui mencionados, desde que esta informação seja mantida"
print "em todas as alterações que você fizer dos programas e das cópias que "
print "você deles fizer - é a proteção do direito autoral que não lhe impede"
print "de usar livremente o conhecimento mas que mantém na memória quem "
print "participou de sua produção."
print "Este programa foi escrito por Tarcisio Praciano-Pereira "
print "professor da Universidade Estadual Vale do Acaraú - UeVA "
print "Laboratório de Matemática Computacional - Curso de Computação "
print "Sobral - Ceará - Brasil "
print "Aperte enter para continuar!"
pause -2
system "clear"
print "Este programa calcula os coeficients de Fourier de uma função definida";
print "no programa, desenvolve o polinômio trigonométrico correspondente";
print "e faz os gráficos dos polinômios de da função f";
print "Os coeficientes de Fourier de uma função são as componentes (escalares) desta";
print "função (vetor) na direção dos vetores básicos do espaço cos(nx) sen(nx) ";
print "Procure com um editor de textos as ocorrencias da frase \"altere aqui\" que é";
print "onde você pode (deve) alterar a equação da \"onda eletromagnética\" cujo polinômio";
print "trigonométrico você deseja ver. ";
print "Aperte enter para continuar!";
pause -2
system "clear"
pi = 4*atan(1); ## o valor aproximado de pi do gnuplot
#### delta, riem, four1, four2
#### delta é a precisão para o calculo da integral por soma de Riemann
### riem() função recursiva para calculo de somas de Riemann
### four1, four1 recursivas, transform-integral cos e sen - calcula coef pol trig
#############################
delta = 0.001
riem(x,fim,soma)=(x>=fim)?0.5*soma*delta/pi:riem(x+delta,fim,soma+f(x)) ## já divide por 1/2*pi
four1(x,fim,n,soma)=(x>=fim)?soma*delta:four1(x+delta,fim,n,soma+f(x)*cos(n*x)) ## coseno
four2(x,fim,n,soma)=(x>=fim)?soma*delta:four2(x+delta,fim,n,soma+f(x)*sin(n*x)) ## seno
pow(x,n) = x**n;
print "No intervalo [",-pi," ,", pi,"] " ;
inicio = -pi; fim = -inicio; ## \pm frac{\pi}{2}
print "Polinômios trigonométricos até ordem 20 "
print "desenvolvido no intervalo [",inicio,",", fim,"]"
print "A função cujo polinômio trigonométrico será apresentada é"
####### altere aqui #######################################
##print " h(x) = sin(x/4.0)*(2.0*x)/(1.0 + x**2) - altere esta função neste ponto - mensagem apenas "
print " f(x) =pow(x,2);
print "o polinômio trigonométrico de outra função de sua escolha "
print "procure o comentário 'equação para ser substituida ' "
print "Aperte enter para continuar!"
pause -2
system "clear"
inicio = -pi; fim = pi
print "Calculando passo a passo os coeficientes de Fourier da função "
print "um script do gnuplot. "
print "Aperte enter para continuar!"
pause -2
system "clear"
####### altere aqui #######################################
##h(x) = sin(x/4.0)*(2.0*x)/(1.0 + x**2) ## equação para ser substituida, deixe "f(x) = ", substitua somente a equação
f(x) = pow(x,2);
n = 0
##a0 = (1/(2*pi))*four1(inicio,fim,n,0);
a0 = riem(-pi,pi,0) ## soma de riemann inicio, fim, soma, já dividido por 2*pi
print "a0 = ", a0
S0(x) = a0;
set title "polinomio trigonometrico com um coeficiente "
####set xrange [-3:3]
plot 0, f(x), S0(x)
pause -2
n = n +1;
a1 = (1/pi)*four1(inicio,fim,n,0); ## integral de cos inicio, fim, indice, soma=0 ,
b1 = (1/pi)*four2(inicio,fim,n,0); ## integral de seno inicio, fim, índice, soma=0,
print "
a1 = ",a1, " b1 = ",b1 , "";
S1(x) = S0(x)+ a1*cos(x) + b1*sin(x)
set title "polinomio trigonometrico com dois coeficientes "
######set xrange [-3:3]
plot 0, f(x), S1(x), S0(x), a1*cos(x) + b1*sin(x)
pause -2
n = n +1
a2 = (1/pi)*four1(inicio,fim,n,0)
b2 = (1/pi)*four2(inicio,fim,n,0)
print "a2 = ",a2, " b2 = ",b2 , "";
S2(x) = S1(x)+ a2*cos(2*x) + b2*sin(2*x)
set title "polinomio trigonometrico com dois coeficientes "
######set xrange [-3:3]
plot 0, f(x), S2(x), S1(x), a2*cos(2*x) + b2*sin(2*x)
pause -2
n = n +1
a3 = (1/pi)*four1(inicio,fim,n,0)
b3 = (1/pi)*four2(inicio,fim,n,0)
print "a3 = ",a3, " b3 = ",b3 , "";
S3(x) = S2(x)+ a3*cos(3*x) + b3*sin(3*x)
set title "polinomio trigonometrico com 3 coeficientes"
######set xrange [-3:3]
plot 0, f(x), S3(x)
pause -2
n = n +1
a4 = (1/pi)*four1(inicio,fim,n,0)
b4 = (1/pi)*four2(inicio,fim,n,0)
print "a4 = ",a4, " b4 = ",b4, "";
S4(x) = S3(x)+ a4*cos(4*x) + b4*sin(4*x)
set title "polinomio trigonometrico com coeficientes 4"
######set xrange [-3:3]
plot 0, f(x), S4(x)
pause -2
n = n +1
a5 = (1/pi)*four1(inicio,fim,n,0)
b5 = (1/pi)*four2(inicio,fim,n,0)
print "a5 = ",a5, " b5 = ",b5, "";
S5(x) = S4(x)+ a5*cos(5*x) + b5*sin(5*x)
set title "polinomio trigonometrico com coeficientes 5 "
######set xrange [-3:3]
plot 0, f(x), S5(x)
pause -2
n = n +1
a6 = (1/pi)*four1(inicio,fim,n,0)
b6 = (1/pi)*four2(inicio,fim,n,0)
print "a6 = ",a6, " b6 = ",b6, "";
S6(x) = S5(x)+ a6*cos(6*x) + b6*sin(6*x)
set title "polinomio trigonometrico com coeficientes 6 "
######set xrange [-3:3]
plot 0, f(x), S6(x)
pause -2
n = n +1
a7 = (1/pi)*four1(inicio,fim,n,0)
b7 = (1/pi)*four2(inicio,fim,n,0)
print "a7 = ",a7, " b7 = ",b7, "";
S7(x) = S6(x)+ a7*cos(7*x) + b7*sin(7*x)
set title "polinomio trigonometrico com coeficientes 7 "
######set xrange [-3:3]
plot 0, f(x), S7(x)
pause -2
n = n +1
a8 = (1/pi)*four1(inicio,fim,n,0)
b8 = (1/pi)*four2(inicio,fim,n,0)
print "a8 = ",a8, " b8 = ",b8, "";
S8(x) = S7(x)+ a8*cos(8*x) + b8*sin(8*x)
set title "polinomio trigonometrico com coeficientes 8 "
######set xrange [-3:3]
plot 0, f(x), S8(x)
pause -2
n = n +1
a9 = (1/pi)*four1(inicio,fim,n,0)
b9 = (1/pi)*four2(inicio,fim,n,0)
print "a9 = ",a9, " b9 = ",b9, "";
S9(x) = S8(x)+ a9*cos(9*x) + b9*sin(9*x)
set title "polinomio trigonometrico com coeficientes 9 "
######set xrange [-3:3]
plot 0, f(x), S9(x)
pause -2
n = n +1
a10 = (1/pi)*four1(inicio,fim,n,0)
b10 = (1/pi)*four2(inicio,fim,n,0)
print "a10 = ",a10, " b10 = ", b10, "";
S10(x) = S9(x)+ a10*cos(n*x) + b10*sin(n*x)
set title "polinomio trigonometrico com coeficientes 10"
######set xrange [-3:3]
plot 0, f(x), S10(x)
pause -2
n = n +1
a11 = (1/pi)*four1(inicio,fim,n,0)
b11 = (1/pi)*four2(inicio,fim,n,0)
print "a11 = ",a11, " b11 = ", b11, "";
S11(x) = S10(x)+ a11*cos(n*x) + b11*sin(n*x)
set title "polinomio trigonometrico com coeficientes 11"
plot 0, f(x), S11(x)
pause -2
n = n +1
a12 = (1/pi)*four1(inicio,fim,n,0)
b12 = (1/pi)*four2(inicio,fim,n,0)
print "a12 = ",a12, " b12 = ", b12, "";
S12(x) = S11(x)+ a12*cos(n*x) + b12*sin(n*x)
set title "polinomio trigonometrico com coeficientes 12"
plot 0, f(x), S12(x)
pause -2
n = n +1
a13 = (1/pi)*four1(inicio,fim,n,0)
b13 = (1/pi)*four2(inicio,fim,n,0)
print "a13 = ",a13, " b13 = ", b13, "";
S13(x) = S12(x)+ a13*cos(n*x) + b13*sin(n*x)
n = n +1
a14 = (1/pi)*four1(inicio,fim,n,0)
b14 = (1/pi)*four2(inicio,fim,n,0)
print "a14 = ",a14, " b14 = ", b14, "";
S14(x) = S13(x)+ a14*cos(n*x) + b14*sin(n*x)
n = n +1
a15 = (1/pi)*four1(inicio,fim,n,0)
b15 = (1/pi)*four2(inicio,fim,n,0)
print "a15 = ",a15, " b15 = ", b15
S15(x) = S14(x)+ a15*cos(n*x) + b15*sin(n*x)
n = n +1
a16 = (1/pi)*four1(inicio,fim,n,0)
b16 = (1/pi)*four2(inicio,fim,n,0)
print "a16 = ",a16, " b16 = ", b16, "";
S16(x) = S15(x)+ a16*cos(n*x) + b16*sin(n*x)
n = n +1
a17 = (1/pi)*four1(inicio,fim,n,0)
b17 = (1/pi)*four2(inicio,fim,n,0)
print "a17 = ",a17, " b17 = ", b17, "";
S17(x) = S16(x)+ a17*cos(n*x) + b17*sin(n*x)
set title "polinomio trigonometrico com coeficientes 17"
plot 0, f(x), S17(x)
pause -2
n = n +1
a18 = (1/pi)*four1(inicio,fim,n,0)
b18 = (1/pi)*four2(inicio,fim,n,0)
print "a18 = ",a18, " b18 = ", b18
S18(x) = S17(x)+ a18*cos(n*x) + b18*sin(n*x)
n = n +1
a19 = (1/pi)*four1(inicio,fim,n,0)
b19 = (1/pi)*four2(inicio,fim,n,0)
print "a19 = ",a19, " b19 = ", b19
S19(x) = S18(x)+ a19*cos(n*x) + b19*sin(n*x)
n = n +1
a20 = (1/pi)*four1(inicio,fim,n,0)
b20 = (1/pi)*four2(inicio,fim,n,0)
print "a20 = ",a20, " b20 = ", b20
S20(x) = S19(x)+ a20*cos(n*x) + b20*sin(n*x)
set title "polinomio trigonometrico com coeficientes 20"
######set xrange [-3:3]
plot 0, f(x), S20(x)
pause -2
q