Baixe o app para aproveitar ainda mais
Prévia do material em texto
O Uso do GNUPLOT para Gra´ficos log-log e semi-log Rafael Peixoto de Amorim 4 de julho de 2011 Resumo Este e´ um trabalho final da disciplina de Softwares Livres de Uso Acadeˆmico, da Universidade Federal de Goia´s, ministrada pelo Prof. Dr. Salviano Arau´jo Lea˜o. Onde inicialmente faz-se uma breve apresentac¸a˜o do software a ser aboradado, gnuplot, e alguns comandos ba´sicos executa´veis na linha de comando. Em seguida trata-se da utilizac¸a˜o do mesmo para o ajuste de curvas na˜o lineares, mais especificamente as func¸o˜es exponenciais e logar´ıtmicas, bem como a mudanc¸a de escala dos eixos ordenados. 1 Introduc¸a˜o O aplicativo gnuplot e´ um software livre destinado a` visualizac¸a˜o de gra´ficos e superf´ıcies, u´teis em aplicac¸o˜es cient´ıficas nas a´reas de f´ısica, matema´tica, estat´ıstica, engenharias (cartogra´fica,mecaˆnica, ele´trica, ...), etc. Possui verso˜es para os diversos tipos de sistemas operacionais Mac OS, Linux, UNIX, Windows, etc.. Foi originalmente criado para permitir que os cientistas e estudantes visualizem func¸o˜es matema´ticas e dados de forma interativa, mas tem crescido para apoiar muitos usos na˜o-interativos, tais como web scripting. Ele tambe´m e´ usado como um mecanismo de plotagem por aplicativos de terceiros como o Octave. Gnuplot tem sido apoiado e esta´ em constante desenvolvimento desde 1986 [1]. Para a obtenc¸a˜o do aplicativo nas diversas plataformas, com exemplos de aplicac¸o˜es, manuais, in- formac¸o˜es detalhadas, etc sa˜o sugeridos os seguintes enderec¸os eletroˆnicos: http://www.gnuplo.info http://t16web.lanl.gov/Kawano/gnuplot/index-e.html Gnuplot possui uma manipulac¸a˜o simples e ra´pida atrave´s de linhas de comando. E´ case sensitive (diferencia comandos escritos em maiu´sculo daqueles em minu´sculo), pode receber diversos comandos em uma u´nica linha seprados por “;”(com a ressalva de que os comandos load e call devem ser escritos sempre no final da linha) e as strings sa˜o indicadas com aspas simples ou duplas. Atualmente ele suporta qualquer tipo de gra´fico em 2d ou 3d. Pode desenhar usando linhas, pontos, caixas, contornos, campos vetorias, superf´ıcies, e va´rios tipos de texto associados. E tambe´m suporta va´rios tipos de gra´ficos especializados. Para incializa´-lo abra o terminal (utilizando linux-Ubuntu) e digite gnuplot, caso voceˆ na˜o o possua aparecera´ alguns comandos para instala´-lo. Feito isso tente fazer um exemplo simples de uma construc¸a˜o de gra´fico que e´ dado a seguir. f(x)=x**2 #define uma func¸a˜o f(x) plot f(x) #mostra o gra´fico da func¸a˜o f(x) o texto apo´s “# ”representa apenas um comenta´rio a respeito da linha de comando e utilizando as duas linha acima obte´m-se o seguinte resultado: 1 Figura 1: Gra´fico de f(x) = x2. Como vimos acima pode-se facilmente plotar um gra´fico de uma func¸a˜o qualquer no gnuplot. Entre- tanto, na˜o estamos interessados em abordar estes exemplos mais simples. Considere agora que ao inve´s de uma func¸a˜o voceˆ queira plotar dados obtidos em um laborato´rio em qualquer outro lugar. Tomamos como exemplo a tabela a seguir: Posic¸a˜o (cm) Tempo (s) 0 0 14.8 1.0 29.7 2.0 45.4 3.0 61.3 4.0 75.8 5.0 91.1 6.0 Tabela 1: Tabela com os valores fict´ıcios da posic¸a˜o de uma part´ıcula em func¸a˜o do tempo Salvando estes dados num arquivo externo qualquer, tabela1.dat por exemplo, podemos plotar estes pontos facilmente. Ao abrirmos o gnuplot devemos situa´-lo em que pasta desejamos buscar informac¸o˜es, para isto usamos o comando “cd ”(change directory) seguido do caminho do direto´rio entre aspas duplas ou simples. Em seguida usamos o comando plot e fazemos refereˆncia ao nome do arquivo de dados entre aspas. Suponha que o arquivo tabela1.dat esteja no direto´rio /home/Roberto/Documentos, vejamos enta˜o o exemplo a seguir: cd '/home/Roberto/Documentos/' #define o direto´rio plot 'tabela1.dat ' #plota os pontos num gra´fico onde obte´m-se como resultado: 2 Figura 2: Dados da Tabela 1. E´ sabido que estes pontos possuem a forma de uma func¸a˜o linear do tipo f(x) = a + bx, onde a representa a posic¸a˜o inicial e b representa a velocidade da part´ıcula. Como na posic¸a˜o inicial a part´ıcula esta´ em repouso, faz-se a = 0. O paraˆmetro b, que representa a velocidade, pode ser facimente obtido atrave´s de um ajuste linear de curva, mais conhecido como fit linear. Para tal procedimento, usamos os seguintes comandos: reset # remove qualquer definc¸a˜o anterior f(x) = b*x # define a func¸a˜o linear b = 12 # define um valor inicial para b fit f(x) ’tabela1.dat’ using 2:1 via b # determina os paraˆmetros desejados feito isso, obte´m-se na tela o seguinte gra´fico: Final set of parameters Asymptotic Standard Error ============= ================ b = 15.178 +/- 0.04163 (0.2742%) correlation matrix of the fit parameters: b b 1.000 Que nos fornece como velocidade da part´ıcula v = (15.18± 0.04) cm/s. Para constru´ırmos um gra´fico com a curva ajustada juntamente com os pontos experimentais, devemos executar o seguinte comando: plot f(x), 'tabela1.dat ' #plota os pontos e a curva ajustada 3 Figura 3: Pontos experimentais juntamente com a curva ajustada. Considere agora uma situac¸a˜o onde faz-se uma tomada de dados num laborato´rio, onde o fenoˆmeno observado se comporta com uma func¸a˜o do seguinte tipo y = Aebx. Temos como exemplos de um fenoˆmenos que se comportam desta forma a descarga de um capacitor, a absorc¸a˜o de ele´trons por um material, entre outros. Tomando o lagar´ıtimo natural de ambos os lados da equac¸a˜o temos ln(y) = ln(A) + bx. Chamando ln(y) de Y podemos ter Y = ln(A) + bx, que nada mais e´ do que uma func¸a˜o linear como a anterior, onde ln(A) e´ o coeficiente linear e b e´ o coeficiente angular. Entretanto, antes de fazermos o ajuste dos paraˆmetros, devemos fazer, no eixo y, uma mudanc¸a de escala para a logar´ımica de base e. Veja um exemplo da func¸a˜o f(x) = Aebx nas escalas decimal e logar´ıtmica. Figura 4: Gra´fico da func¸a˜o f(x) = Aebx na escala decimal Figura 5: Gra´fico da func¸a˜o f(x) = Aebx na escala logar´ıtimica Utilizando uma tabela de dados experimentais, podemos fazer de modo ana´logo ao que fizemos antes para obtermos dados de uma func¸a˜o logar´ıtimica atrave´s de um fit linear. Veja o exemplo abaixo, de uma descarga de capacitor: reset #remove qualquer definic¸a˜o anterior g(x)=a+b*x #define a func¸a˜o g(x) a=3 #define o paraˆmetro a b=50 #define o paraˆmetro b set yrange [0:3] #define o valor ma´ximo e mı´nimo de y a ser exibido set xrange [0:190] #define o valor ma´ximo e mı´nimo de x a ser exibido fit g(x) ’tabela2.dat’ using 1:(log($2)) via a, b #faz o ajuste da func¸a˜o g(x) para os dados da tabela2 usando a coluna 1 como eixo x e ln dos dados da coluna 2 como eixo y 4 Tensa˜o (V) Tempo (s) Tensa˜o (V) Tempo (s) Tensa˜o (V) Tempo (s) 19.90 0 5.43 70.0 1.91 140 16.24 10.0 4.60 80.0 1.69 150 13.36 20.0 3.92 90.0 1.50 160 11.02 30.0 3.35 100 1.35 170 9.15 40.0 2.89 110 1.22 180 7.58 50.0 2.50 120 – – 6.42 60.0 2.18 130 – – Tabela 2: Tabela com os valores tensa˜o na descarga de um capacitor em func¸a˜o do tempo Utilizando o comando: plot g(x), 'tabela2.dat'using 1:(log($2)) Obte´m-se: Figura 6: Gra´fico de uma func¸a˜o linear juntamente com os dados da tabela 2 efetuando o logar´ıtmo natural dos dados do eixo y Para uma func¸a˜o do tipo y = axb, podemos tomar o logar´ıtmo em ambos os lados e teremos log(y) = log(a) + blog(x). Chamado log(y) de Y e log(x) de X, teremos Y = A + bX, que e´ uma func¸a˜o linear. Entretanto, agora ambas as varia´veis devem ser colocadas na escala logar´ıtmica (deve-se tomar um certo cuidado ao se usar a escala logar´ıtimica, pois o argumento na˜o pode assumir valores negativos, sendo assim devemos limitar as varia´veis nesta escala a` apenas valores positivos).Isto pode ser facilmente obtido utilizando o comando “set log ”para base 10. Como exemplo, considere uma func¸a˜o do tipo y = axb, onde tomaremos a = 20 e b = 3. Figura 7: Gra´fico da func¸a˜o f(x) = Aebx na escala decimal Figura 8: Gra´fico da func¸a˜o f(x) = Aebx na escala logar´ıtimica 5 2 Concluso˜es O gnuplot possui va´rios comandos e imensas possibilidades, dependendo da necessidade, criatividade e habilidade. Neste trabalho na˜o houve pretensa˜o de abordar todas as possibilidades deste software, apenas uma pequena amostra que sera´ apresentada como trabalho final de uma disciplina. A partir deste trabalho podemos perceber a grande flexibilidade do software em algumas situac¸o˜es, bem como na obtenc¸a˜o de paraˆmetros atrave´s de dados experimentais. Espero que o pouco que se tem mostrado aqui instigue aos leitores a curiosidade de procurar mais informac¸o˜es a respeito desta poderosa ferramenta. 3 Bibliografia 1. gnuplot homepage. Dispon´ıvel no enderec¸o eletroˆnico:< http://www.gnuplot.info/docs 4.4/gnuplot.pdf >. Acessado em 01/07/2011. 2. gnuplot tips (not so Frequently Asked Questions) Dispon´ıvel no enderec¸o eletroˆnico: < http://t16web.lanl.gov/Kawano/gnuplot/index-e.html >. Aces- sado em 01/07/2011. 6 Introdução Conclusões Bibliografia
Compartilhar