Escolar Documentos
Profissional Documentos
Cultura Documentos
Tcnico
ISSN 1677-8464
Dezembro, 2010
Campinas, SP
Foto: <www.sxc.hu>
Introduo
A modelagem matemtica desempenha um importante
papel na pesquisa biolgica. Uma vez que o sistema
estudado representado em linguagem matemtica,
torna-se possvel prever seu comportamento por meio
de simulaes. Nesse contexto, surge a necessidade
do uso de softwares robustos, capazes de computar,
construir grficos, resolver sistemas e equaes, assim
como gerar aproximaes numricas.
Existe, no mercado, uma infinidade de softwares matemticos, sistemas computacionais numricos e
algbricos e ferramentas de simulao. H produtos
comerciais muito utilizados pela comunidade cientfica
como Mathematica (WOLFRAM, 1999) e Matlab (THE
MATHWORKS, 1998), e softwares no comerciais que
podem ser utilizados como alternativa s ferramentas
proprietrias. Alm disso, as ferramentas no comerciais esto disponveis sob uma licena de software livre
(WEBER, 2004), possibilitando que qualquer usurio
possa copiar, alterar e distribuir sem restries, contribuindo para complementao e consequente melhoria
da ferramenta, alm de permitir a autonomia tecnolgica.
Seppelt e Richter (2005) mostraram que resultados diferentes podem ser encontrados dependendo do software
1
2
Metodologia
Primeiramente, foram pesquisadas e selecionadas as
principais plataformas de softwares comerciais e no
comerciais disponveis para a comunidade cientfica. Os
requisitos observados foram organizados numa tabela
contendo: nome, software livre equivalente/software
proprietrio equivalente, sistema operacional (Windows,
Linux, MacOS X), tipo de licena, tipo de interface
Command Line Interface (CLI) ou Graphical User
Interface (GUI), vantagem, desvantagem e forma de
aquisio. Aps ampla pesquisa, foram selecionadas,
para avaliao, as plataformas Maxima, Octave, Scilab
e Sage, descritos resumidamente na Tabela 1.
O modelo utilizado para teste foi uma modificao do
sistema presa-predador proposto por Lotka-Volterra
(VOLTERRA, 1927), que descreve a dinmica da
predao de uma espcie sobre outra por um sistema
CLI/GUI
CLI
CLI/GUI
GNU/GPL
Windows/Linux/
MacOS X
Sage
Scilab
Mathematica/
Matlab/Magma/
Maple
GNU/GPL
Windows/Linux/
MacOS X
Matlab
GNU/GPL
Octave
Matlab
Windows/Linux/
MacOS X
http://www.sagemath.org/
http://www.gnu.org/software/octave
Possui menos pacotes
especficos que Matlab. No
h uma ferramenta
equivalente ao Simulink,
presente no Matlab
Linguagem com grande
compatibilidade com Matlab.
Assim como Matlab, possui
vrios pacotes, inclusive
de biomatemtica
http://www.scilab.org/
http://maxima.sourceforge.net/
Possui menos pacotes
especficos que Mathematica
Manipulao simblica,
interface simples
CLI/GUI
GNU/GPL
Mxima
Mathematica
Windows/Linux/
MacOS X
Interface
Licena
Sistema
operacional
Software
equivalente
Nome
Vantagem
Desvantagem
Forma de aquisio
(1)
dy/dt = af(x)y - y
No sistema descrito em (1), todos os parmetros so
positivos, r a taxa de crescimento da presa, K a
capacidade do meio em relao presa na ausncia
de predadores, a a taxa mxima de consumo de
presas por um nico predador , o coeficiente de
eficincia da predao, a taxa de mortalidade de
predadores. Para f(x), que representa a resposta da
populao de presas em relao predao, foi utilizada uma resposta funcional sigmal do tipo Holling III
(HOLLING, 1959), porque respostas sigmais podem
estabilizar o equilbrio presa-predador em modelos
de Lotka-Volterra (MAY, 1974; MURDOCH; OATEN,
1975; TAKAHASHI, 1964). Assim:
f(x) = x2/ (x2+L)
(2)
Softwares testados
Maxima
A ferramenta Maxima tem como objetivo efetuar manipulao algbrica, diferenciao, integrao, sries,
transformadas, equaes diferenciais ordinrias, e operaes com matrizes, alm da construo de grficos
em 3D.
A sua linguagem de programao possui sintaxe baseada em ALGOL (WEXELBLAT, 1981) e semntica em
Lisp (MCCARTHY, 1958). Como Maxima foi desenvolvido em Lisp, comandos puros dessa linguagem podem
ser executados diretamente no software.
Para aplicar o mtodo de Runge-Kutta de 4 ordem,
fez-se uso da funo rk( ). Para utiliza-la foi preciso
carregar o pacote dynamics.lisp pelo comando load( ).
O cdigo para resoluo do sistema (1), via algoritmo
de Runge-Kutta e plotagem dos valores, mostrado na
Figura 1.
Descrio
Valor
Unidade
r
K
a
L
xo
yo
T
0.006
1000
5
50
0.2
0.9
10
0.02
2000
[tempo-1]
[no. de pres.]
[tempo-1]
[no. de pres.]
[-]
[tempo-1]
[no. de pres.]
[no. de pred.]
[tempo]
Octave
A ferramenta Octave tem como objetivo encontrar solues numricas para problemas lineares e no lineares,
manipular polinmios, EDOs, diferenciao, integrao,
realizar experimentos numricos. Plotagem 2D e 3D.
Octave uma linguagem de alto nvel, voltada para
computao numrica. praticamente idntica
linguagem Matlab, os programas e funes possuem
extenso .m assim como no Matlab. Rotinas em linguagem C, C++ e Fortran podem ser escritas em Octave
utilizando mdulos dinamicamente carregados.
No teste da ferramenta, utilizou-se trechos de cdigo
implementados previamente para execuo no software Matlab, visando testar a compatibilidade entre os
dois softwares.
Nesse cdigo, o sistema (1) definido como uma funo vetorial, conforme mostrado na Figura 2a.
Em seguida, aplicou-se o mtodo de RK4, chamando a
funo ode45( ) e plotou-se os resultados, conforme os
comandos da Figura 2b.
O cdigo acima no pode ser executado inicialmente
no Octave. O erro foi gerado devido a funo ode45.
Embora esta funo exista em Octave, com o mesmo
nome no pacote odepkg1, seus argumentos so diferentes. A alternativa usada para que o cdigo escrito
em linguagem Matlab funcionasse em Octave, sem
alterao, foi realizar uma busca na internet pela fun-
Scilab
A ferramenta Scilab tem como objetivo encontrar solues numricas para problemas lineares e no lineares,
manipular polinmios, EDOs, realizar experimentos
numricos e construir grficos 2D e 3D.
Scilab uma linguagem de alto nvel. Embora seja
parecida com o Matlab, seu desenvolvimento independente e no tem como objetivo ser compatvel com
Matlab, ao contrrio da Octave. Os arquivos escritos
em Scilab possuem extenso sci.
O sistema (1) definido como funo vetorial na linguagem do Scilab, conforme o trecho de cdigo mostrado
pela Figura 3a.
Em Scilab, para resolver sistemas de equaes diferenciais ordinrias, deve-se usar a funo ode.sci. Nesta,
o primeiro argumento refere-se ao mtodo de soluo
numrica. Para aplicar o algoritmo RK4, por exemplo, o
argumento usado rk, conforme mostrado na Figura
3b.
Sage
Sage uma ferramenta para uso em matemtica pura
e aplicada, lgebra, clculo, teoria dos nmeros, criptoa)
b)
Figura 2. a) sistema (1) escrito em forma de funo vetorial. b) Corpo do programa feito
em Octave.
a)
b)
Resultados
Resolver sistemas de equaes ordinrias no lineares, como o caso do sistema (1), tarefa extremamente difcil, por isso foram utilizados mtodos
numricos. A simulao foi feita com tempo igual a
2000 iteraes. Nas quatro ferramentas avaliadas, o
resultado foi de oscilao entre as populaes simuladas de presas e predadores (Figura 5).
Figura 5. Plotagens das populaes de presas x(t) e predadores y(t), em funo do tempo, geradas pelo mtodo de RK4 nas
ferramentas avaliadas.
Perodo T
Max x
Max y
Mxima
Octave
Scilab
Sage
515
412
515
515
1000
1000
1000
1000
22
22
16
22
Discusso
Uma importante questo a ser levantada sobre as
ferramentas livres disponveis para a comunidade
cientfica se elas podem substituir eficientemente as
ferramentas proprietrias. Testes de comparao so
necessrios para avaliao da eficincia de ferramentas livres.
Sistemas no lineares complexos podem no ter solues analticas e, dessa forma, preciso confiar nas
solues obtidas por meio de software de resoluo
numrica. As quatro ferramentas avaliadas neste trabalho tiveram resultados satisfatrios: a implementao
do mtodo de Runge-Kutta de 4 ordem foi facilmente
encontrada e foram obtidos, como resultado, o bem
conhecido comportamento oscilatrio do sistema presapredador em todas as ferramentas (Figura 5).
Maxima, Octave, Scilab e Sage so ferramentas
robustas, bastante usadas pela comunidade cientfica,
com centenas de pacotes aplicveis s mais diversas
reas, como modelagem ambiental, bioinformtica,
matemtica financeira, inteligncia artificial, pesquisa
Referncias
BASSANEZI, R. Modelagem Matemtica. Blumenau: Dynamis, 1997. 389 p.
HARRISON, G. W. Comparing predator-prey models to
Luckinbills experiment with didinium and paramecium. Ecology, v. 76, n. 2, p. 357-374, Mar. 1995.
MATHWORKS Simulink users guide: the mathworks.Natick,
1998.
MATLAB ReferenceGuide: the MathWorks. Natick, MA, 1992.
Paginao irregular.
MCCARTHY, J. History of lisp. SIGPLAN Notices, 1978.
MURRAY, J.D. Mathematical Biology. Seattle: Springer,
1989.
PRESS W. H.; FlANNERY, B. P.; TEUKOLSKY, S. A.; VETTERLING, W. T. Runge-Kutta method and adaptive step size
control for Runge-Kutta. 16.1 and 16.2. In: NUMERICAL
recipes in fortran: the art of scientific computing, 2nd ed.
Cambridge, England: Cambridge University Press, 1992. p.
704-716.
RITCHIE, D. M. The development of the C programming
language. ACM, 1996.
RUGGIERO, M. A.G.; LOPES, V. L. R. Clculo numrico
aspectos tericos e computacionais. 2 ed. So Paulo:
Makron Books, 1996. 406 p.
SEPPELT, R.; RICHTER, O. It was an artefact not the
results - a note on system dynamic model development.
Environmental Modelling and Software, v. 20, 1543-1548.
2005.
Comunicado
Tcnico, 104
Ministrio da
Agricultura, Pecuria
e Abastecimento
CGPE 9101