Os cincos primeiros termos da séries de fourier
Publicado por Franklin Anderson de Oliveira Souza 11/03/2005
[ Hits: 26.560 ]
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); }
Validar CPF em C++ (esse funciona)
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Vou voltar moderar conteúdos de Dicas e Artigos (1)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (3)
É cada coisa que me aparece! - não é só 3% (3)
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta