Os cincos primeiros termos da séries de fourier
Publicado por Franklin Anderson de Oliveira Souza 11/03/2005
[ Hits: 26.849 ]
Homepage: http://fisica.ufmt.br/~franklinbr/
Um programa que tras a solução grafica para uma aproximacao de um função matematica simples do tipó f(x)=x usando series de fourier, no caso somente os cincos primeiros termos. Seram gerados o arquivo com os dados e um script para ser visualizado no gnuplot, um bonito gráfico 2d.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
script_gnu ()
{
FILE *script;
script = fopen ("script.gnu", "w");
int i;
fprintf (script, "set yrange [-3.3:3.3]\n");
fprintf (script, "set xrange [-180:180]\n");
fprintf (script, "plot 'dados.dat' u 1:2 with dots\n");
for (i = 3; i <= 7; i++)
{
fprintf (script, "replot 'dados.dat' u 1:%d with dots \n", i);
}
fclose (script);
return (0);
}
equation_series (float count)
{
float n1, n2, n3, n4, n5, x;
FILE *fp;
fp = fopen ("dados.dat", "w");
for (x = -180; x <= 180; x += count)
{
n1 = 2.0 * sin ((x * 3.14) / 180.0);
n2 = -sin ((2.0 * x * 3.14) / 180.0);
n3 = (2.0 / 3.0) * sin ((3.0 * x * 3.14) / 180.0);
n4 = -(1.0 / 2.0) * sin ((4.0 * x * 3.14) / 180.0);
n5 = (2.0 / 5.0) * sin ((5.0 * x * 3.14) / 180.0);
printf (" %f %f %f %f %f %f %f\n", x, n1, n2, n3, n4, n5,
(n1 + n2 + n3 + n4 + n5));
fprintf (fp, "%f %f %f %f %f %f %f\n", x, n1, n2, n3, n4, n5,
(n1 + n2 + n3 + n4 + n5));
}
fclose (fp);
return (0);
}
main (int argc, char **argv)
{
float count;
if (argc != 2)
{
printf
("Eh necessario um incremento.\n Exemplo\n\n./programa <incremento>\n\t./programa 0.5\n\n");
}
else
{
count = atof (argv[1]);
equation_series (count);
printf ("\nValores gerados, para visualizar use o Gnuplot...\n\n");
printf ("$ gnuplot\ngnuplot> load 'script.gnu'\n\n");
script_gnu ();
printf ("Script Gnuplot Gerado ...\n\n");
printf ("Aguarde...\n");
sleep (3);
system ("ls -lh *.dat *.gnu");
}
return (0);
}
Decomposição em fatores primos
Contagem de elementos de um array
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
ERRO: LAZARUS 4.2 64 no Linux MINT não entra mais apos ajustar desktop... (0)
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









