Uso de gnuplot em sessões iterativas



Documentos relacionados
Cálculo Numérico Computacional Exercícios lista 04 Raizes aproximadas

Desenvolvendo Websites com PHP

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

APOSTILA DE EXCEL 2007

Linguagem algorítmica: Portugol

Dadas a base e a altura de um triangulo, determinar sua área.

AMBIENTE DE PROGRAMAÇÃO PYTHON

MICROSOFT OFFICE EXCEL 2007

Equações do primeiro grau

Conceitos Importantes:

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

Resolução de problemas e desenvolvimento de algoritmos

Autor: Marcelo Maia

Lógica de Programação

Iniciação à Informática

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

Estrutura de Dados Básica

AUXÍLIO COMPUTACIONAL

UDPcast Clonagem de HDs via rede utilizando

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

MATEMÁTICA: DESENVOLVENDO ATIVIDADES ENIGMÁTICAS COM MATEMÁGICA E LÓGICA PARA OS ANOS INICIAIS DO ENSINO FUNDAMENTAL

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

LINUX EDUCACIONAL 3.0

A integral também é conhecida como antiderivada. Uma definição também conhecida para integral indefinida é:

Introdução a Algoritmos Parte 04

Seqüências, Limite e Continuidade

INTRODUÇÃO: 1 - Conectando na sua conta

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DA FRONTEIRA SUL COMISSÃO PERMANENTE DO PROCESSO SELETIVO DÚVIDAS FREQUENTES

2 echo "PHP e outros.";

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Usando o do-file editor Automatizando o Stata

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Como fazer contato com pessoas importantes para sua carreira?

FUNÇÕES POLINOMIAIS DO SEGUNDO GRAU MEDIADOS PELO SOFTWARE GEOGEBRA NA PERSPECTIVA DOS REGISTROS DE REPRESENTAÇÃO SEMIÓTICA

INTRODUÇÃO À LINGUAGEM C/C++

Bacharelado em Ciência e Tecnologia Bacharelado em Ciências e Humanidades. Representação Gráfica de Funções

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.

APOO Análise e Projeto Orientado a Objetos. Requisitos

A função do primeiro grau

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

AULA COM O SOFTWARE GRAPHMATICA PARA AUXILIAR NO ENSINO E APRENDIZAGEM DOS ALUNOS

3. No painel da direita, dê um clique com o botão direito do mouse em qualquer espaço livre (área em branco).

Aula 2P - Comandos básicos do Matlab aplicados a PDS

Curso de Programação Computadores

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Como atualizar os preços da ABCFarma.

Projeto CONDIGITAL Mergulhando na Função Guia do Professor

Informática no Ensino de Matemática Prof. José Carlos de Souza Junior

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

Curvas de nível homotópicas a um ponto

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

FÓRMULAS DO MICROSOFT EXCEL

Função E. Excel 2007 Avançado. Sintaxe: Onde: Objetivo : 22 anos ou mais e casadas maiores de 21 anos.

Google Drive: Acesse e organize seus arquivos

Tutorial de Active Directory Parte 3

TUTORIAL COMO CRIAR E EDITAR UM VÍDEO NO WINDOWS MOVIE MAKER*

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Projeto ECA na Escola - Plataforma de Educação à Distância

FÓRMULAS DO EXCEL QUE SALVARAM MEU EMPREGO

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

COMO INVESTIR PARA GANHAR DINHEIRO

Organização de programas em Python. Vanessa Braganholo

Arquitetura de Rede de Computadores

Alguns exemplos de problemas resolvidos

Como instalar o Ocomon passo a passo.

Prof. Flávio Henrique de Lima Araújo 19

C++ e ROOT via ssh. d0server/access

Quando era menor de idade ficava pedindo aos meus pais para trabalhar, porém menor na época não tinha nada e precisei esperar mais alguns anos.

Permissões de compartilhamento e NTFS - Parte 1

Manual de operação. BS Ponto Versão 5.1

Orientação a Objetos

Produção de tutoriais. Coordenação de IAESMEVR Usando o Gerador de Vídeo 4.5

Tutorial de Matlab Francesco Franco

Com uma coleção de figuras e de formas geométricas que mais parecem um jogo, mostre à turma que os números também têm seu lado concreto

Dicas para usar melhor o Word 2007

CICLO DE APERFEIÇOAMENTO PROFISSIONAL DOS SERVIDORES MUNICIPAIS DE MARICÁ- RJ EDITOR DE TEXTO - WORD

5 Equacionando os problemas

Tutorial: Programando no Linux

SUMÁRIO TUTORIAL DO HQ. 2 DICAS PEDAGÓGICAS:. 2 DOWNLOAD DA INSTALAÇÃO. 2 PASSO 1 FORMULÁRIO PARA DOWNLOAD. 2 PASSO 2 ESCOLHENDO A VERSÃO.

Curva de Um Cabo Suspenso

1. Coeficiente de Rendimento Escolar mínimo e Formação Acadêmica:

Programação online em Java

2. O AMBIENTE DE PROGRAMAÇÃO EM C

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v /15

1 Instalação de Pacotes RPM no Metasys Contato...10

A Estação da Evolução

PHP Material de aula prof. Toninho (8º Ano)

Markes Roberto Vaccaro

4/5/2009 CONTROLSOFT CONTROLGAS CONTROLE DE VALE GÁS. Manual de Operação

APOSTILA LINUX EDUCACIONAL

Desmistificando o Programa de Computador

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

Transcrição:

Uso de gnuplot em sessões iterativas Praciano-Pereira, T. Departamento de Matemática Universidade Estadual Vale do Acaraú 2 de maio de 2008 tarcisio@member.ams.org pré-prints do Curso de Matemática de Sobral no. 2008.2 Editor Tarcisio Praciano-Pereira tarcisio@member.ams.org Resumo Neste artigo estou mostrando como é possível usar gnuplot, um pacote para fazer gráficos, como um ambiente de programação acessível. Ao mesmo tempo os exemplos aqui desenvolvidos mostram que gnuplot pode ser usado como uma ferramenta didática na apresentação de tópicos de Cálculo Diferencial e Integral. Os interessados podem obter uma cópia deste trabalho que lhes permitirá, abrindo uma sessão de gnuplot ao acompanhar a leitura deste artigo, e executar os exemplos que artigo contém. Na bibliografia, ao final, se encontra de onde baixar gnuplot que é um programa distribuido livremente. gnuplot é muito frágil como ambiente de programação, entretanto representa uma opção interessante porque é um ambiente disponível com grande universalidade, para várias plataformas, gratuito. É muito conhecido por sua capacidade para fazer gráficos, uma das curiosidades aqui é a sua possibilidade como ambiente de programação. O conteúdo deste artigo pode ser facilmente modificado para ser usado com os vários capítulos do Cálculo Diferencial e Integral. palavras chave: programação com gnuplot, funções recursivas, função de Fibonacci, polinômios de Taylor, somas de Riemann 1

1 Introdução: que é gnuplot gnuplot, [2], é um pacote para fazer gráficos que foi desenvolvido inicialmente por um estudante de engenharia, em 1978, que deve a idéia, na época pouco usual, de deixar o seu programa em domínio público, tendo como resultado que diversos matemáticos-programadores se interessaram pelo programa transformando-o no pacote renomado que ele é hoje. Eu suponho, neste trabalho, que o leitor conhece e tem alguma habilidade com gnuplot, seria impossível explicar o programa no âmbito deste trabalho, mas o artigo [3] faz isto de forma muito satisfatória indo muito além do que preciso aqui. gnuplot 1 é mais conhecido como um programa que pode ser iterativamente chamado por um outro programa para fazer gráficos no que ele é excelente, mas também como uma ferramenta de uso direto para fazer gráficos a partir de alguns comandos digitados num terminal. Vou também mostrar, aqui, uma terceira possibilidade, que eu saiba, inteiramente desconhecida do pacote, um ambiente de programação. Como ambiente de programação gnuplot é, ainda 2, muito frágil, entretanto já permite fazer um uso significativo em aulas de Cálculo Numérico, Cálculo Diferencial e Integral ou Geometria Análitica, para citar algumas das áreas com que tenho habilidade com o pacote. Se acoplado com uma linguagem de programação o seu uso pode ser impressivo, por exemplo, experimente o programa [4, calculadora], um executável para Linux, feito em C++, que mostra graficamente algumas propriedades operatórias dos números complexos. Tudo que fiz no programa [4, calculadora], foi construir a álgebra dos números complexos. A arte gráfica é do gnuplot, mas qualquer defeito nesta arte gráfica deve ser creditada ao autor deste artigo. O plano do trabalho Na segunda seção mostro um uso imediato de gnuplot para exibir polinômios de Taylor com sua automatização usando um programa em Python. Na terceira seção apresento dois programas simples com gnuplot, e mostro como travar o programa, para exemplificar um problema e ao mesmo tempo desmistificar a computação, deixando que você veja os limites a aprenda a se confinar dentro do possível. O objetivo é necessariamente despretencioso para que caiba no tamanho de um trabalho como este, mas o suficientemente ambicioso ao querer suscitar a curiosidade para a construção de ferramentas pedagógicas, é este o objetivo deste trabalho. 1 Na lista de discussões, no site do programa, se defende o nome do programa com letra minúscula. 2 Pode ser que os seus desenvolvedores alterem isto.

2 gnuplot e polinômios de Taylor Vou mostrar nesta seção como usar gnuplot para ilustrar a fórmula de Taylor. As etapas são as que uso em aula para conduzir os alunos a compreenderem a fórmula de Taylor, tanto sua importância como suas fraquezas. set title Grafico de (x+3)*(5-x)*sin(x/2.) e seus polinomios de Taylor print Gráfico de (x+3)*(5-x)*sin(x/2.) e seus polin^omios de Taylor print f(x)=(x+3)*(5-x)*sin(x/2.) print Aperte enter para continuar! pause -2 system clear f(x)=(x+3)*(5-x)*sin(x/2.) diff(x) =(5-x)*sin(x/2.) - (x+3)*sin(x/2.) + 0.5*(x+3)*(5-x)*cos(x/2.) diff2(x) = -sin(x/2.) + 0.5*(5-x)*cos(x/2.) - sin(x/2.)\ - 0.5*(x+3)*cos(x/2.)+ 0.5*(5-x)*cos(x/2.) -0.5*(x+3)*cos(x/2.)-\ +0.5*0.5*(x+3)*(5-x)*sin(x/2.) a=-3 print a = -3 pol(x) = f(a) + diff(a)*(x-a) + 0.5*diff2(a)*(x-a)*(x-a) print Aperte enter para continuar! pause -2 system clear a = 5 print a = 5 pol(x) = f(a) + diff(a)*(x-a) + 0.5*diff2(a)*(x-a)*(x-a) print Aperte enter para continuar! pause -2 system clear O resultado deste script, que pode ser encontrado em [8, gnuplot.taylor], é o gráfico de um polinômio do segundo grau tangente em dois pontos diferentes do gráfico da função y = f(x) definida no programa. Este script foi gerado pelo programa [8, python.py]. O programa permite a sua escolha de um intervalo e um passo criando um pequeno filme que ilustra a fórmula de Taylor. O uso do programa tem as seguinte consequências positivas em aula: Exemplifica um tópico difícil Mostra o uso da derivada associada à fórmula de Taylor. Aumenta a auto-estima Dá ao aluno, e ao professor, um poder imediato sobre o significado e o uso da derivada. Compreensão da derivada Exemplifica geométricamente o significado das derivadas sucessivas, aqui apenas até a segunda derivada, entretanto os programas citados são de dominio público e podem ser modificado para usar índice maior de derivação. Até o grau três, a derivada representa os

importantes conceitos geométricos: conïncidência, tangência e curvatura, num ponto, não esquecendo que consideramos que a derivada de ordem zero é a própria função. experimentação em Matemática Pode ser usada numa prova de múltiplaescolha, com consulta, que irá induzir o aluno a calcular derivadas para experimentar qual produz o resultado desejado. Como Python é uma linguagem de domínio público, [9], assim como gnuplot, vemos aqui que os diversos aspectos positivos citados acima são eminemente possíveis de serem alcançados a custo próximo de zero além do computador, para qualquer Escola. Com alguma habilidade o leitor pode traduzir o programa, [8, taylor.py], num programa em Pascal, mas, insisto, Python é gratuito, aprenda a programar nesta deliciosa linguagem de programação. Um sub-produto do programa [8, gnuplot.py] é mostrar como escrever alguns comandos simples para gnuplot. 3 Programas em gnuplot gnuplot não é ainda reconhecido como um ambiente de programação, e a afirmação de que é pode, deixar muitos leitores surpresos. Como gnuplot permite definir funções, uma função recursiva é um pequeno programa e uma sucessão de funções recursivas podem virar um pacote. É preciso usar isto com cautela porque, como já disse, gnuplot não é ainda reconhecido como um ambiente de programação o que implica que a memória que o programa solicita ao sistema operacional é muito pequena para grandes operações que um programa grande pode requerer, mas o máximo que pode acontecer é o o sistema operacional parar gnuplot por exaustão da memória solicitada. Em Linux isto se reconhece com a mensagem segmentation fault no terminal, vou dar um exemplo ao final desta seção. Ocorrendo isto, torne o seu programa menos ambicioso e volte a rodá-lo. Um exemplo simples é o programa seguinte que calcula uma soma de Riemann, e ajuda nas aulas de Cálculo a desmitificar a integral mostrando ao aluno que qualquer integral está ao seu alcance, desde que ele tenha certeza de que a função integrável, o que justifica um teorema de existência. Atingimos assim os objetivos: Desmistificação e compreensão da integral, o aspecto geométrico. Revitalização do conceito de teorema de existência. As funções recursivas são bem conhecidas em teoria dos números e das aulas de Álgebra: se (a k) k N for uma sucessão recursiva, então existe uma expressão algébrica S tal que a k = S(a k 1,...,a 1 ) (1)

Talvez o exemplo mais conhecido seja a Fibonacci a 0 = 1; a 1 = 1; a k = a k 1 + a k 2 ; k 2 Vou reescrever a definição matemática como uma expressão usando operadores lógicos que irá facilitar a compreensão do programa em gnuplot. Em gnuplot fica: Se k = 0 então a k = 1; Senão, se k = 1 então a k = 1; Senão, se k 2 então a k = a k 1 + a k 2 ; fib(n) = (n==0)?1:(n==1)?1:fib(n-1)+fib(n-2) em que estou usando a forma compacta do if/else em que condiç~ao?comando1:comando2 equivale a Se condiç~ao ent~ao comando1; sen~ao comando2 Para executar, digite no terminal de gnuplot, depois que tiver definido fib(), print fib(n) em que n é o valor desejado para obter da Fibonacci. O cálculo de fib(10) é imediato, mas fib(300) levou mais de meia hora. O próximo exemplo é uma função que calcula uma soma de Riemann, [1], de uma função que tenha sido definida anteriormente e que nós tenhamos mostrado que é integrável (teorema de existência). Vou começar por escrever a expressão matemática-lógica para que o programa fique mais claro. Quero calcular a integral de f, que deve estar definida no script do gnuplot, no intervalo [a, b] com passo x. O programa vai acumular na variável soma as alturas sucessivas de f em cada ponto da malha uniforme 3, e ao terminar, quando a condição a > b se tornar verdadeira, o valor acumulado em soma será multiplicado pela medida comum dos intervalos, x (propriedade distributiva da multiplicação relativamente à soma), um programa mostra importância da teoria e do formalismo, em Matemática. Enquanto a condição a > b for falsa, a função Riemann() volta a ser chamada valores atualizados de a, soma { Se a > b então soma delta; (4) Senão, Riemann(a + delta, b, soma + f(x), delta) Primeiro defina f(x), que seja integrável, depois defina este programa em gnuplot 3 E aqui outra discussão importante se abre para as aulas de Cálculo: é válido usar partições uniformes? (2) (3)

Riemann(a,b,soma,delta)=\ (a>b)?soma*delta:riemann(a+delta, b,soma+f(x),delta) escolha, depois valores para a, b, delta e execute digitando print Riemann(a,b,0,delta) 1 para calcular aproximadamente o valor de f(x)dx. Um exemplo que vai funcionar imediatamente: f(x) = x**2; Riemann(a,b,soma,delta)=\ (a>b)?soma*delta:riemann(a+delta, b,soma+f(a),delta) a = 0; b = 1, delta = 0.01 print Riemann(a,b,0,delta) 0.32835 gnuplot> print Riemann(0,1,0,0.0001) 0.333383334999943 print Riemann(0,1,0,0.00001) Segmentation fault O terceiro exemplo de cálculo da integral aproximada, usando soma de Riemann, mostra o limites do programa. O nível lógico de recursividade superou a capacidade de memória que o programa havia recebido do sistema forçando que o sistema parasse o programa, não é aconselhável fazer isto rondando no windows, mas se alguém fizer e me informar dos resultados eu ficaria agradecido. Referências [1] Djairo Guedes de Figueiredo Análise Projeto Euclides - SBM [2] Thomas Williams, Colin Kelley et allii gnuplot um programa para fazer gráficos e alguns cálculos http://www.gnuplot.info [3] Uma introdução ao gnuplot Maurício Galo - pre-print - UNESP 2007 http://www.4shared.com/file/27829205/4e0d05e0/gnuplot introducao.html [4] Praciano-Pereira, T. Uma calculadora gráfica para álgebra de números complexos http://www.varcom.sobralmatematica.org/programas/calculadora 0

[5] Praciano-Pereira, T Programas para Cálculo Numérico - 2007 http://www.4shared.com/dir/2041165/e14cc331/programas.html [6] Praciano-Pereira, T. A biblioteca ambiente.h http://www.4shared.com/file/12302715/4a6cfaac/ambiente.html [7] Wikipedia, a enciclopédia livre na Internet http://www.widipedia.org [8] Praciano-Pereira, T. Programas tutoriais para o ensino de Matemática http://www.4shared.com/dir/6838519/778684e5/programas.html [9] A linguagem de programação Python http://www.python.org