Você está na página 1de 7

Comunicado 104

Tcnico
ISSN 1677-8464
Dezembro, 2010
Campinas, SP

Foto: <www.sxc.hu>

Modelagem e soluo numrica


de sistemas biolgicos
utilizando ferramentas open
source

Rafael de Oliveira Silva1


Snia Ternes2

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

de modelagem escolhido. Nesse artigo avaliado o


potencial das ferramentas livres Maxima, Octave, Scilab
e Sage em encontrar solues numricas para sistemas de equaes diferenciais no lineares, problemas
frequentes em modelagem de sistemas biolgicos.

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

Bolsista PIBIC/Embrapa Informtica Agropecuria, Campinas, SP


Doutora em Engenharia Eltrica, Pesquisadora da Embrapa Informtica Agropecuria, Campinas, SP; sonia@cnptia.embrapa.br

Possui menos pacotes


especficosque Matlab.
Ainda no h interface
grfica

Possui menos pacotes


especficos que Matlab.
Ainda no h interface
grfica

Possui extensa biblioteca com


aplicaes em diversas reas,
como biologia, medicina,
energia, finanas, qumica, etc.
Ferramenta Scicos para
simulao em bolcos
(semelhante ao Simulink do
Matlab)

Propes ser uma alternativa


s ferramentas Magma, Maple,
Mathematica and Matlab.
Consegue tirar proveito de
processadores multicore

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

Tabela 1. Caractersticas das ferramentas escolhidas para avaliao.

Vantagem

Desvantagem

Forma de aquisio

Embrapa Informtica Agropecuria. Comunicado Tcnico, 104

de equaes diferenciais no lineares. Dado x como


o nmero de presas, e y o nmero de predadores, o
sistema de equaes diferenciais ordinrias descrito
pelas frmulas em (1) descreve a dinmica da interao entre as duas espcies:
dx/dt = r(1 - x/K)x - af(x)y

(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)

onde L a constante de meia-saturao, isto , o


nvel de presa em que ocorre metade da taxa de
consumo.
O modelo dado por (1) e (2) o mesmo utilizado por
Seppelt e Richter (2005), e por motivo de comparao tambm foram utilizados os mesmos valores para
as constantes do sistema (1), assim como os valores
iniciais das populaes de presa e predadores.
O modelo proposto resolvido numericamente pelo
mtodo de Runge-Kutta (RUGGIERO; LOPES, 1996),
que uma famlia de mtodos iterativos para resoluo numrica (aproximao) de solues de equaes diferenciais ordinrias. Tais mtodos requerem
apenas derivadas de primeira ordem e podem fornecer aproximaes precisas com erros de truncamento
da ordem h2, h3, h4 etc, onde h o passo.
Considere a seguinte equao diferencial ordinria:
f = f(t ,z) com z(b) = t0 = , no intervalo de tempo b
t c, [b, c] R
O mtodo de Runge-Kutta de 4 ordem (Press et al.
1992), conhecido tambm como RK4, usa as frmulas:
t(j+1) = t(j) + h,
z(j+1) = z(j) + h/6(k1+2k2+ 2k3+k4)

Modelagem e soluo numrica de sistemas biolgicos utilizando ferramentas open source

onde z(j+1) a aproximao por RK4 de z(k+1), e:



k1 = f( t(j),z(j) )

k2 = f( t(j)+h/2 , z(j)+hk1/2)

k3 = f( t(j)+h/2 , z(j)+hk2/2)

k4 = f( t(j)+h , z(j)+k3)
Ento, o prximo valor, z(j+1) determinado pelo valor
atual, z(j), somado ao produto do tamanho do intervalo
h e uma inclinao estimada. A inclinao uma mdia
ponderada de inclinaes:
- k1 a inclinao no incio do intervalo;
- k2 a inclinao no ponto mdio do intervalo, usando a inclinao k1 para determinar o valor de z no
ponto t(j) + h/2 pelo mtodo de Euler (RUGGIERO;
LOPES, 1996);
- k3 novamente a inclinao no ponto mdio do intervalo, mas agora usando a inclinao k2 para determinar o valor de z;
- k4 a inclinao no final do intervalo, com seu valor z
determinado usando k3.
Ao fazer a mdia das quatro inclinaes, um peso
maior dado para as inclinaes no ponto mdio:
inclinao = 1/6(k1+2k2+2k3+k4)
O mtodo RK4 um mtodo de quarta ordem, significando que o erro por passo da ordem de h5, enquanto o erro total acumulado tem ordem h4. Neste artigo
ser utilizado passo h = 0.1.
A Tabela 2 mostra a descrio, os valores escolhidos e
as dimenses para as constantes do sistema (1).
Em posse do modelo escolhido para teste, dos valores

das constantes (Tabela 2) e do mtodo numrico para


soluo do sistema (1), as ferramentas selecionadas
foram testadas com relao eficincia para solucionar
o problema estudado. Para cada ferramenta foi implementado o mtodo de Runge-Kutta de 4 ordem (RK4)
e foram construdos os grficos para os valores das
populaes de presas x(t) e predadores y(t), para um
tempo de simulao de T=2000 passos.

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.

Tabela 2. Valores dos parmetros do sistema(1).


Parmetros

Descrio

Valor

Unidade

r
K
a
L

xo
yo
T

Taxa de crescimento da presa


Capacidade de presas
Taxa de predao
Limitao de sucesso de predao
Coeficiente de eficincia de predao
Taxa de mortalidade do predador
Populao inicial de presas
Populao inicial de predadores
Tempo de simulao

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]

Figura 1. Cdigo para soluo


numria e plotagem dos resultados do sistema (1) utilizando
o mtodo de RK4 no software
Maxima.

Embrapa Informtica Agropecuria. Comunicado Tcnico, 104

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-

o ode45.m que foi encontrada no endereo2. Dessa


forma o cdigo da Figura 2b funcionou perfeitamente.

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)

Figura 3. a) sistema (1) escrito em forma de funo vetorial. b) Corpo do programa


feito em Scilab.
1
2

Disponvel em: <http://octave.sourceforge.net/odepkg/index.html>


Disponvel em: <http://cns.bu.edu/~tanc/pub/matlab_octave_compliance/ode_v1.11/ode45.m>

b)

Modelagem e soluo numrica de sistemas biolgicos utilizando ferramentas open source

grafia, computao numrica, grafos, e construo de


grficos 2D e 3D.
O sistema Sage utiliza a linguagem de alto nvel Phyton.
Portanto, para domnio do ambiente Sage, preciso ter
conhecimentos dessa linguagem de programao.
Nessa ferramenta a implementao do mtodo de
Runge Kutta de 4 ordem a funo desolve_system_
rk4( ), conforme mostrado na Figura 4.

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 4. Cdigo feito em ambiente Sage, linguagem python.

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.

Embrapa Informtica Agropecuria. Comunicado Tcnico, 104

Observa-se pelas plotagens que com os parmetros


utilizados e as condies iniciais do modelo PresaPredador, as populaes se encontram em equilbrio.
possvel interpretar os grficos da Figura 5 da
seguinte forma: com disponibilidade de presas, o
nmero de predadores aumenta; as presas tm, ento,
menor taxa de crescimento e sua populao diminui.
Depois de um certo tempo, a populao de predadores
atinge um mximo, e, por falta de alimento, comea
tambm a diminuir. Diminuda a populao de predadores, o nmero de presas comea a aumentar e o
ciclo se repete.
Embora o passo h do mtodo de Runge-Kutta tenha
sido controlado nas ferramentas avaliadas, com h=0.1,
a preciso de ponto flutuante no foi controlada, ou
seja, foram utilizados os valores default de cada um
dos softwares, o que pode ter resultado nas diferenas
dos valores aproximados para os valores mximos de
y(t) e o perodo T das oscilaes (Tabela 3).
Tabela 3. Valores aproximados do perodo de oscilao e
valores mximos de x(t) e y(t).
Ferramenta

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

operacional etc. Dessa forma, o principal problema que


surge na utilizao ou migrao de softwares a dificuldade de se aprender uma nova linguagem, uma vez
que tempo e dinheiro so investidos no aprendizado e
aperfeioamento da linguagem. Seguindo essa linha, a
ferramenta Octave prope ter o mximo de compatibilidade com o consagrado Matlab, j que a linguagem
muito semelhante a essa ferramenta, inclusive programas inteiros feitos em linguagem Matlab podem ser
facilmente compilados em Octave, gerando eventualmente algum erro ocasionado por diferenas em nomes
ou argumento das funes, como foi o caso verificado
em 3.2. De uma forma geral, a dificuldade quanto
programao nas quatro ferramentas mnima, j
que possuem grande variedade de pacotes e funes
especficas.
No processo de migrao para software livre, preciso avaliar tambm suas vantagens. As ferramentas
avaliadas neste trabalho tm licena do tipo GNU GPL
General Public License, o que quer dizer que cientistas podem compartilhar e modificar livremente o cdigo
fonte, de acordo com suas necessidades especficas.
O suporte criatividade maior do que nos softwares proprietrios, no depende da disponibilidade de
recursos financeiros e permite que quaisquer pessoas
e instituies possam fazer parte do seu desenvolvimento cientfico.
Portanto, considerando os argumentos supra citados
e os resultados obtidos no sistema teste em comparao com trabalhos anteriores, conclui-se que vivel
a migrao para as ferramentas avaliadas, das quais
a ferramenta Octave apresenta o mnimo esforo de
aprendizagem.

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.

Modelagem e soluo numrica de sistemas biolgicos utilizando ferramentas open source

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

Embrapa Informtica Agropecuria


Endereo: Caixa Postal 6041 - Baro Geraldo
13083-886 - Campinas, SP
Fone: (19) 3211-5700
Fax: (19) 3211-5754
http://www.cnptia.embrapa.br
e-mail: sac@cnptia.embrapa.com.br

1 edio on-line - 2010

VOLTERRA, V., Variations and fluctuations in the numbers of


coexisting animal species. In: SCUDO, F. M.; ZIEGLER, J. R.
(Ed.). The Golden Age of Theoretical Ecology: 19231940.
Berlin: Springer-Verlag,1927. p. 65236.
WEBER, S. The success of open source. Harvard University Press, 2004. 320 p.
WEXELBLAT, R. L. (Ed.). History of programming languages. New York: Academic Press, 1981. pp. 758.
WOLFRAM, S. The Mathematica book. 4th ed. Cambridge:
University Press,1999. 1496 p.
ZHU, H.; CAMPBELL, S. A.; WOLKOWICZ, G. S. K. Bifurcation analysis of a predator-prey system with nonmonotonic
functional response. Applied Mathematics, v. 63, n. 2, p.
636682 .

Comit de Presidente: Slvia Maria Fonseca Silveira Massruh


Publicaes Membros: Poliana Fernanda Giachetto,

Roberto Hiroshi Higa, Stanley Robson de Medeiros Oliveira,


Maria Goretti Gurgel Praxedes, Neide Makiko Furukawa,
Adriana Farah Gonzalez, Carla Cristiane Osawa (secretria)
Suplentes: Alexandre de Castro, Fernando Attique Mximo,
Paula Regina Kuser Falco

Expediente Superviso editorial: Neide Makiko Furukawa


Normalizao bibliogrfica: Maria Goretti Gurgel Praxedes
Reviso de texto: Adriana Farah Gonzalez

Todos os direitos reservados.

Editorao eletrnica: Neide Makiko Furukawa

CGPE 9101

Você também pode gostar