Documentos de Académico
Documentos de Profesional
Documentos de Cultura
o I Introduc a
Existem dispon veis, atualmente, excelentes programas o e/ou de distribuic o gratuita para a de livre distribuic a a o das mais diversas atividades de pesquisa, de enrealizac a sino ou mesmo de produtividade. Esses programas s ao desenvolvidos por milhares de pessoas no mundo inteiro e tornamse cada vez mais de maior interesse da comu o de nidade cient ca e do p ublico em geral. A utilizac a muito modesta em tais ferramentas computacionais ainda e v arios segmentos da comunidade cient ca brasileira. A o de algumas dessas ferramentas e o objetivo deste divulgac a trabalho, atento ao lema: investir em conhecimento, aumentar o desempenho e reduzir custos. Como muitas das atividades cient cas e, sobretudo, de reas ans s ensino nos cursos de F sica, Matem atica e a ao desenvolvidas utilizando programas propriet arios, decorre da o e o foco deste texto: apresentar alternativas de a motivac a trabalho. Pois, muitos desses programas possuem similares gratuitos que podem auxiliar a reduzir os custos do uso de tais ferramentas computacionais, ao mesmo tempo que d a acesso irrestrito a ferramentas robustas. Para o desen-
volvimento de suas atividades de pesquisa em Ci encias Atmosf ericas e Espaciais, os autores t em estruturado um Laborat orio Num erico de An alise e de Simulac a o com uso de programas livres. Assim, com este prop osito, quatro dos programas de interesse s ao aqui apresentados. Inicialmente discutemse o GNU/O CTAVE, que permite lidar com c alculos num ericos; e o GNU/M AXIMA, que permite lidar o simb tamb em com computac a olica. Um tutorial sobre essas ferramentas foi apresentado em [1]. As outras duas fer o de alta quaramentas s ao o O PEN DX, para a visualizac a lidade de dados tridimensionais e tamb em bidimensionais, e o RCS, para gerenciar os c odigos de programas e textos A L TEX. encorajar qualquer usu A nalidade dessa an alise e ario, desde o professor ou o estudante do secund ario at e o pesqui o no uso desses resador leigo em inform atica, uma iniciac a cursos. Para aqueles que desejem aprofundarse nessas fer o e de utilizac es ramentas, n veis avanc ados de programac a o gr acas sosticadas podem ser alcanc ados. Assim, para cada ferramenta, o conte udo exposto envolve a an alise da o b sua apresentac a asica e alguns exemplos. O programa GNU/O CTAVE, que utiliza o programa
149
GNUPLOT, e o RCS j a vem dispon veis nos CDROMs das es GNU/L INUX. O GNU/M AXIMA e principais distribuic o o O PEN DX devem ser obtido em lugares espec cos da Internet. Neste trabalho sobre programas f sico-matem aticos, divulgamse tamb em materiais did aticos j a dispon veis para aqueles interessados em se aprofundarem nessas ferramentas. Na Tabela 1 est ao apresentados os enderec os das ferramentas aqui tratadas e de alguns outros programas e refer encias de interesse nesse contexto. Em geral, vers oes
ncia, dessa atualizadas s ao oferecidas com muita freq ue interessante consultar com certa regularidade esforma e ses enderec os eletr onicos. Embora essas ferramentas apresentem um melhor desempenho em sistemas operacionais Unix (<http://www.unix.org/>), como o GNU/L INUX (<http://www.linux.org/> ), em geral elas est ao tamb em dispon veis para outros sistemas operacionais. Um enderec o es cient o interessante em aplicac o cas em GNU/L INUX e <http://sal.kachinatech.com/>.
Tabela 1. Enderec os na Web de algumas ferramentas e refer encias de interesse Nome da Ferramenta F sico-matem aticas GNU/M AXIMA GNU/O CTAVE S CI L AB
GNUPLOT
Enderec o na Web http://www.ma.utexas.edu/users/wfs/maxima.html http://www.octave.org http://www.scilab.org http://www.gnu.org http://www.bl.physik.uni-muenchen.de/rechner/grak/xgfe http://www.gnu.org/software/r/ http://www.opendx.org http://www.ctan.org http://biquinho.furg.br http://prosper.sourceforge.net/ http://xm1.net.free.fr/kile http://www.go.dlr.de:8081/pdinfo dv/psutils.html http://abntex.codigolivre.org.br/ http://www.openofce.org/ http://www.gnu.org http://www.cvshome.org http://www.openofce.org/ http://www.lysator.liu.se/ alla/dia/dia.html http://www.xg.org http://www.gimp.org/ http://www.imagemagick.org/ http://gcc.gnu.org/ http://www.research.att.com/ bs/C++.html http://www.cuj.com/ http://www.liv.ac.uk/HPC/F90page.html http://www.python.org http://gtk-sharp.sourceforge.net/ http://packages.debian.org/stable/devel/dpkg-awk.html http://www.gnu.org/software/sed/sed.html http://www.netlib.org/blas/ http://www.worldforge.org/dev/eng/libraries/atlas cpp http://www.oonumerics.org/blitz/
II
uma linguagem de alto n O GNU/O CTAVE e vel basica o num mente voltada para computac a erica. Esse programa o prov e uma interface por linha de comandos para soluc a num erica de problemas lineares e/ou n aolineares e para implementar outros experimentos num ericos usando uma
compat linguagem que e vel com o Matlab (programa comercial). O programa pode ser utilizado tamb em em o) e permite incorporar modo script (textos de programac a m odulos escritos nas liguagens C ++ , C, Fortran e outras. O GNU/O CTAVE foi escrito por John W. Eaton e muitos outros, estando dispon vel na forma GPL [2]. es O GNU/O CTAVE tem ferramentas amplas para soluc o
150
lgebra linear, para num ericas de problemas comuns de a o de ra es n a determinac a zes de equac o aolineares, es polinomiais e integrac o de equac es diferenmanipulac o a o es diferenciais alg ciais ordin arias e equac o ebricas. Quando executado pelo comando octave em um termi es e ininal, o GNU/O CTAVE resulta em algumas informac o cia um ambiente de trabalho por linha de comando. Para
necess se obterem sa das gr acas na tela e ario estar em um ambiente XWindow (por exemplo, no GNU/L INUX), o GNU/O CTAVE cria automaticamente uma janela sepa o gr rada para a apresentac a aca (Figura 1). Por outro lado, mesmo em ambiente texto pode-se capturar as sa das em um arquivo que ser a posteriormente visto em outro aplicativo.
No GNU/O CTAVE, express oes s ao blocos b asicos de o de assertivas. Uma express construc a ao calcula um valor, que pode ser impresso, testado, armazenado, passado o ou designar um novo valor para uma vari a uma func a avel o. O GNU/O CTAVE por meio de um operador de atribuic a es com n conhece operac o umeros complexos, em que = es b 1. Outras func o asicas tamb em s ao pr e-denidas, como cos, sin, tan, log, e exp, e expressas da forma usual. Por exemplo: octave:1> sqrt(-6.0); ans = 0.00000 + 2.44949i octave:1>cos(pi) ans= - 1
comando function e execut ala posteriormente na linha de o de um conjunto de comando. Pode-se calcular a soluc a es n equac o aolineares e fazer o c alculo da integral denida em um intervalo para uma vari avel. o do GNU/O CTAVE apresenta um potencial A utilizac a o. Com maior quando se faz uso de recursos de programac a importante conhecer as formas de controlar este prop osito, e os uxos de c alculos if, for, while e switch. O comando break pode ser utilizado para sair de qualquer um desses controles. O comando continue pode ser utilizado para os ` condic o desse lac os for e while quando se deseja retornar a a mais conveniente a criac o de programas lac o. Em geral, e a em arquivos externos. Os comandos do GNU/O CTAVE podem ser salvos em um arquivo texto de extens ao .m ou .oct, como por exemplo prog.m, para posterior processamento. Para o leitor interessado, uma boa refer encia sobre formas o livro de C de se controlar uxos e ortes [3]. feita pelo proToda a parte gr aca do GNU/O CTAVE e poss grama GNUPLOT [4]. E vel gerar gr acos bidimensionais e alguns tipos de gr acos tridimensionais. Na Figura 2 apresentado um exemplo de gr e aco 3D e de curvas de n vel no GNU/O CTAVE.
es matriciais utilizam uma notac o de coAs operac o a ` notac o tradicional. Determinanmandos muito similar a a tes, transpostas e matrizes inversas tamb em s ao diretamente obtidas, quando existentes. Por exemplo, seja A uma matriz m m, o determinante de A pode ser obtido pelo comando det(A) e sua matriz transposta pode ser obtida pelo comando A . Al em disso, v arias matrizes muito utilizadas, como a matriz identidade e matrizes diagonais, podem ser es pr constru das diretamente por func o edenidas. Tamb em poss es elemento a elemento entre matrie vel fazer operac o o de sistemas lineares Ax = b. zes e calcular a soluc a O GNU/O CTAVE possui recursos no manuseio de es. Por exemplo, podese denir uma func o com o func o a
151
liam F. Shelter desenvolveu esse programa em LISP ba o original do Macsyma no MIT. seado na implementac a O GNU/M AXIMA pode ser utilizado para c alculos ma o simb o num tem aticos, manipulac a olica, computac a erica e o de gr criac a acos [5,6,7] es num De uma forma geral, todas as func o ericas dispon veis no GNU/O CTAVE existem no GNU/M AXIMA. Por outro lado, o GNU/M AXIMA tem seu ponto forte na parte simb olica, o que faz com que a parte num erica seja um pouco mais lenta que os algoritimos utilizados pelo possivel combinar esses dois programas, GNU/O CTAVE. E utilizando os algoritmos do GNU/O CTAVE diretamente no GNU/M AXIMA. Quando executado pelo comando maxima em um ter es iniciais e minal, o GNU/M AXIMA resulta em informac o inicia um ambiente de trabalho por linha de comando. Nesta o, para se obter sa necess forma de execuc a das gr acas e ario estar em um ambiente XWindow. Podese trabalhar tamb em por meio de uma interface gr aca conhecida como XM A acionada com o coXIMA , apresentada na Figura 3, que e mando xmaxima. H a duas janela nessa interface, na janela superior est a localizada a linha de comando interativo. o do Na outra janela est a localizado um tutorial de utilizac a GNU/M AXIMA, basta clicar na palavra Result para ativar o GNU/M AXIMA e executar os comandos em quest ao. No GNU/M AXIMA, podemse calcular fatoriais, fatorar em n umeros primos, expandir e fatorar polin omios, simpli o parcial car express oes alg ebricas, calcular a decomposic a fracion aria para express oes fracion arias de uma forma simples. Por exemplo,
Figura 2. Gr acos 3D e de curvas de n vel no GNU/O CTAVE.
O GNUPLOT pode ser utilizado independentemente do bem simples de ser utilizado e pode GNU/O CTAVE. Ele e produzir guras simples com boa qualidade gr aca na tela A e em formatos de imagens compat veis com o L TEX, como o postscript1 e o png2 . Ele pode ser utilizado diretamente na linha de comandos ou por scripts, acionando o comando gnuplot seguido do nome do scripts na linha de comandos do terminal. Seus comandos s ao bem intuitivos, como o um programa plot para gerar gr acos. O programa XGFE e tipo tela de usu ario (front end) para o GNUPLOT, que auxi muito bom o lia a criar os gr acos. O help do GNUPLOT e o de guras mais elaboradas. Dentro do que facilita a criac a GNU/O CTAVE, o GNUPLOT ca sendo uma ferramenta subjacente. Muitos outros recursos gr acos podem ser obtidos es. no GNU/O CTAVE, incluindo animac o
es usuais com matrizes tamb As operac o em podem ser feitas simbolicamente. Por exemplo, seja a b c A = a b b c c2 . 1 2 3 Assim, para calcular o determinate da matriz A, utilizase o comando determinant(A), que resulta na express ao alg ebrica b(3(a b) c2 ) + a(3(b c) 2c2 ) + c(c b + 2(a b)). poss es, resolver Al em disso, e vel denir func o es ou sistemas para uma vari equac o avel designada, calcular a derivada com respeito a uma vari avel, diferenciar implicitamente, integrar simbolicamente ou numericamente e es n resolver equac o aolineares. Por exemplo,
III
GNU/M AXIMA
um programa de computador, sob a O GNU/M AXIMA e licenc a GPL, para lidar com sistemas alg ebricos. Wil-
2 (<http://www.libpng.org/pub/png/>)
1 (<http://www.adobe.com>)
152
[y(x)] x2 dy dx + 2xy = 0
Os comandos do GNU/M AXIMA podem ser salvos em um arquivo texto extens ao .mac, como por exemplo prog.mac, para posterior processamento. Para executar esse arquivo dentro do ambiente, utilizase o comando batch. simples, como mostrado no seguinte Fazer um gr aco bidimensional ou tridimensional no GNU/M AXIMA tamb em e exemplo: plot2d([cos(2*x),x3],[x,-%pi,%pi]); plot3d(sin(x2+y2)/(x2+y2),[x,-5,5],[y,-5,5],[grid,45,45]);
Esses comandos geram um gr aco apresentado na pr opria janela do GNU/M AXIMA, que possui na lateral esquerda um menu que possibilita fazer v arias tarefas. Entre essas tarefas est a salvar o arquivo no formato postscript. Um exem apresentado na Figura 4. Muitos outros plo dessas sa das e recursos gr acos podem ser obtidos no GNU/M AXIMA, in es. cluindo animac o
IV
O PEN DX
Para trabalhos que necessitem de uma melhor qualidade o e o programa gratuito gr aca dos resultados, uma opc a semelhante OpenDX (<http://www.opendx.org>), que e ao Data Explorer da IBM. Ele consiste de um pacote de ferramentas para manipular, processar, transformar, visualizar e animar dados em diversas plataformas computacionais e o de dados no pode ser utilizado tamb em para visualizac a o de processamento paralelo. paradigma da computac a
153
(a)
(b)
Figura 4. Sa da postscript de gr acos no GNU/M AXIMA. (a) 2D e (b) 3D. uma ferramenta de visualizac o muito O PEN DX e a poderosa pela forma de lidar com dados e permitir es. Tem como nalidades principais a suas visualizac o o de informac es formatadas em 2D e 3D, de visualizac a o forma interativa ou autom atica (por meio de scripts ou pela es em linguagem C ou Forinclus ao no c odigo fonte de func o o de lmes de visualizac o temporal de uma tran), e a criac a a base de dados em formato mpeg (<http://www.mpeg.org>). sem d Uma das grandes vantagens desse recurso e uvida a o em ambiente visual, conhecido facilidade de programac a pela sua sigla em ingl es VPE, Visual Program Evinron ilustrado o VPE e esquematizado ment. Na Figura 5 e o processo de programac o nesse ambiente. como e a es, Essa ferramenta tem uma enorme gama de aplicac o reas de ci desde as a encias em geral, por exemplo a Meteorologia e a Geof sica Espacial (<http://www.inpe.br>), at e a ind ustria. Na Figura 6 s ao apresentados alguns exemplos es de dados no O PEN DX. de visualizac o es sobre esse programa podem ser Maiores informac o obtidas na p agina do O PEN DX e em outras p aginas da Internet3 . Tutoriais sobre o O PEN DX s ao apresentados em [8,9,10].
desenvolvimento de programas ou textos ASCII, como os A poss do TEX e L TEX. Com essa ferramenta e vel man o de ter um hist orico da sequ encia de etapas de construc a es desneum c odigo, de forma organizada e sem repetic o cess arias. Desta forma, a qualidade do trabalho em desen assegurada e os contratempos decorrentes de volvimento e o do desenvolvimento minimidiculdades de administrac a zados [11,12,13]. baseado em uma estrutura de a rvore. Dessa O RCS e a raiz da a rvore, que receforma, a primeira revis ao e o de revis ber a a designac a ao 1.1. As revis oes poste rvore e passam a ter riores descendem linearmente na a es 1.2, 1.3, , conhecidas como ramos. E as designac o ncia de revis poss vel tamb em iniciar uma nova seq ue oes para cada uma desses ramos estabelecidos, conhecida como galhos (Figura 7). Utiliza-se ent ao a ferramenta rcsmerge o de vers para auxiliar na consolidac a oes a partir de diferentes ramos de desenvolvimentos. criar um sub-diret A primeira etapa a ser feita e orio com o nome RCS no diret orio onde est a o c odigofonte. ncia de Introduzse no c odigofonte desejado uma seq ue o da revis identicac a ao, sempre entre coment arios em o ao compilador em que este c relac a odigo estar a sendo o s processado. Os principais caracteres de identicac a ao: $Header$, $Author$, $Date$, $Locker$, $Revision$, poss $Source$ e $State$. E vel ainda colocar um identicador no programa execut avel resultante. Para isso, deve-se inserir no c odigo-fonte char rcsid[]=@(#); o do Os dois comandos fundamentais para a utilizac a RCS s ao ci e co. O comando ci introduz uma nova vers ao no sub-diret orio RCS e o comando co retorna a vers ao mais recente guardada no diret orio RCS. Nesse sub-diret orio h a um arquivo com o nome do programa-fonte original acrescido de uma nova extens ao ,v (v rgula letra v min uscula). Por exemplo os comandos: $ ci -l nome-do-arquivo geram uma revis ao mais atualizada do arquivo. Com esse comando, um indicador (prompt) surge e espera uma linha de coment ario sobre a revis ao que est a sendo guardada. A m de utilizar um arquivo que foi colocado no RCS, podese extrair, para uso, o arquivo-fonte com o comando: $ co -l nome-do-arquivo
Gerenciamento de c odigo-fonte
O desenvolvimento das atividades de pesquisa ou did aticas o de programas e textos e a exige muitas vezes a criac a o constante destes. O Sistema de Controle de atualizac a uma ferramenta muito u til no aux Revis ao (RCS) e lio ao
poss E vel tamb em recuperar uma certa vers ao de revis ao do rvore de revis arquivo-fonte estabelecida pela a ao. Os indicadores, ap os a chamada do primeiro co, geram uma s erie es sobre a revis de informac o ao no c odigo-fonte. H a mui es que facilitam essa tarefa de tos outros comandos e opc o muito promissor, gerenciamento. Assim, aprender o RCS e evitando perda de tempo, perda de espac o em disco e preservando o conte udo de vers oes anteriores.
3 <http://www.csse.monash.edu.au/ donny/mc2/visualization/miscinfo/dxlinks.html>
154
155
VI
As novidades tecnol ogicas t em sido marcantes no estilo de vida da sociedade atual. Um dos aspectos principais dessa o acelerada de recursos materiais a ser analisado, evoluc a a qualidade apontado por algumas pessoas proeminentes, e de vida. Dizem os especialistas que ela deveria ser a quest ao priorit aria nos pr oximos anos. o motiva-nos a uma an Essa preocupac a alise de duplo car ater das ferramentas computacionais hoje dispon veis: do ponto de vista pessoal e do ponto de vista institucional. uma quest No sentido pessoal, e ao de escolha de recursos de inform atica, que d a maior ou menor liberdade, maior ou menor poder a criatividade e que motiva a uma postura mais exclusivista ou mais cooperativa. No sentido institucional, h a a possibilidade, que j a pode ser pressentida, de uma depend encia forte de uma empresa o de sua capacicom respeito a outras e uma fragilizac a o, e isso, indiscutivelmente, afeta o seu podade de atuac a o necessita ter mais der de decis ao. Por isso, uma instituic a consci encia das ferramentas de trabalho que precisa. Isso exige antecipar (antever) as suas necessidades institucionais no tempo. Dentro do quesito qualidade de vida para uma o, o momento presente requer an instituic a alise da com o e uso de produtos e servic pra, instalac a os b asicos de in es devem atender a: form atica. Essas aquisic o o; a) aumento ou estabilidade de produtividade na instituic a b) aumento ou garantia de seguranc a intr nseca dos servic os o; da instituic a
o integrada e harmoniosa entre c) garantia de comunicac a servic os; o eciente da instituic o na sociedade j d) inserc a a a reaparelhada tecnologicamente; o de gastos desnecess e) eliminac a arios para permitir eco prefer nomia p ublica ou, o que e vel, reinvestimentos com benef cio p ublico. Assim, algumas perguntas devem ser feitas inteligentemente e respondidas habilmente por todos os membros ati poca e outra, iniciativas indivos da comunidade. Hoje a e viduais t em consequ encias globalizadas. Para as decis oes necess o, transpar e ario haver negociac a encia, responsabili o de serventia de produtos dade, retreinamentos e avaliac a e servic os. Quanto a quest oes gerais, pergunta-se: Que o deve-se ter perante essa inevit o tecposic a avel revoluc a o nol ogica e de mudanc a de paradigmas? Qual a posic a a se ter perante programas propriet arios comprados e pro o com licenc gramas de livre distribuic a a p ublica geral? Que crit erios de custo/benef cio devem ser atendidos na o de produtos com nanciamento p aquisic a ublico? Do ponto de vista pr atico, escolhas adequadas de ferramentas de inform atica representam diferenc as de milh oes de reais ao longo do tempo. Ressalta-se ainda que a escolha adequada de plataformas de trabalho traduz-se em perspectivas de real produtividade, seguranc a, eci encia e de o para a formac o de compet colaborac a a encia local. o nal, ressalta-se que o uso desComo uma considerac a o possibilita ao futuro sas alternativas de livre distribuic a o) leprossional (aluno formado ou mesmo em formac a var com ele esses programas em que est a sendo treinado. Isso garante continuidade mais facilitada de projetos e a o das soluc es dentro do universo das ferramentas ampliac a o adotadas. Essas s ao oportunidades que abrem perspectivas no trabalho cient co ou de ensinoaprendizagem muito signicativas.
Agradecimentos
Os autores agradecem a SBMAC e aos organizadores do o e a FAPESP o suERMAC de Natal de 2002 a motivac a ` s pesquisas do Projeto Via-Lux (FAporte nanceiro dado a PESP 1998/3860-9). Agradecem tamb em ao revisor deste artigo as sugest oes muito oportunas.
Refer encias
o a pro[1] M. O. Domingues and O. Jr. Mendes. Introduc a o gratuita: GNU/Octave, gramas cient cos de distribuic a A GNU/Maxima,L TEX e GNU/RCS. Technical Report INPE9381-PRE/5041, INPE, 2002. <http://www.dge.inpe.br/wotan>. [2] J. Eaton. Octave manual. <http://www.octave.org/doc/>, 2001. [3] P. L. C ortes. C auto explicativo. Erica, S ao Paulo, 1992. pp. 17-54. [4] T. Williams, C. Kelley, R. Lang, D. Kotz, J. Campbell, G. Elber, A. Woo, and et al. Gnuplot FAQ. <http://www.ucc.ie/gnuplot/>, 2001. [5] W. Schelter. Maxima manual. <http://www.ma.utexas.edu/users/wfs/maxima.html>, 2001.
156
[6] W. Schelter. Basic Maxima commands. <http://math.cochise.cc.az.us/Doc/maxima/ basic maxima.html>, 2001. [7] ICM Institute for Computational Mathematics. Interactive demos of mathematical computations. <http://icm.mcs.kent.edu/research/demo.html>, 2002. [8] D. Thompsom, J. Braun, and R. Ford. Paths to Visualization. Visualization and Imagery Solutions,Inc, Estados Unidos, 2001. <http://www.vizsolutions.com>. o ao IBM Data Explorer. Tech[9] E.C. Silva. Introduc a
nical report, CENAPAD-SP, Campinas, SP, Ago 1997. <http://www.cenapad.unicamp.br>. o [10] R. Blaz, M. O. Domingues, and O. Jr. Mendes. Introduc a ` entrada de dados no OpenDX: formatos dx, general e grib. a Technical Report INPE-9558-NTC/351, INPE, 2003. [11] GNU. RCS manual. <http://www.gnu.org>, 2002. [12] R. Petersen. Linux - Programers Reference. Mc-Graw-Hill, Berkeley, 1998. [13] M. Loukides and A. Oram. Ferramentas GNU. OReilly, 1998.