Equação Logística
Descobri esta função matemática no momento em que estudava teoria do caos, muito
interessante e me deu vários momentos de pura excitação. O biólogos a usam para
estudar a evolução de espécies, mas além disso fazer um simple programa que
mostre as caracteristicas desta função cai como uma luva para o nosso propósito.
Na matemática temos duas facetas, as equaçõe lineares e as não-lineares, e do
outro lado temos os físicos. Estes por sua vez adoram os sistemas lineares e
fogem do sistema não-lineares como o diabo corre da cruz, porque isso ? É
simples de explicar, os sistemas não-lineares geralmente não tem solução
algébrica e somente é possivel trabalhar soluções numéricas (ae entra os
computadores), além disso caso você tenha uma série matemática como solução
(caso existe uma solução algébrica), você não poderá usufruir da propriedade de
que a somatória do termos de uma série também é solução, isso só procede para
sistema lineares. Por ironia do destino, quase tudo na natureza se comporta e
muito mais fácil de ser descrita usando sistema não-lineares, até o pêndulo que
é representado como algo preciso e periódico, tem na sua equação um sistema
não linear, que é brutalmente cancelado com "aproximações", será sorte ou azar
do pêndulo?.
As equações não-lineares são caçadas até ao extremos e afugentadas , pois só
trazem dificuldades no momento da abordagem, sendo assim, os sistemas ideais ou proximo
do ideal, descritos sempre que possível tem na sua, essência o ato de
expurgar e arrancar de uma vez por todas qualquer resquicios de não-linearidade
de uma equação. Hoje em dia tanto os físicos como os matemáticos estão perdendo
este medo e encarando de frente,pois fica cade vez mais claro que para
termos uma abordagem realmente adequada de um problema físico não devemos abrir
mão desse tipo de
equações, somente neste século é que conseguimos recursos adequados para analizar
e técnicas mais apuradas para trabalhar este classe de equaçoes, partindo to estudos
de poincaré. Tendo isso em mente, voltamos e olhamos para tras e vemos que
aqueles mais simples problemas de física que esta totalmente revirado, que não
podia trazer mais nada de novo, volta com novas abordagens, dessa forma temos
algo no mínimo cômico, do lado de artigos de fisica nuclear, plasma e coisas
mais avançadas, uma descrição de processos caóticos gerado por um função
intriseca de natureza não-linear no simples gotejar de uma toneira ou quicar
de uma bola. Uma goteira, ainda hoje guarda seu segredos! Porque não uma
simples equação diferencial, é isto que veremos agora, eis que apresendo uma
simples equacao do segundo grau de nome até invocado, senhores, eis a equação
logistica.
O segredo pra se observar um comportamento caótico nesta função matemática é
simples, basta alimenta-la com os próprios valores gerados, apartir de uma
semente, em outras palavras, digamos que eu escolhe um valor inicial para x= 0.3,
com este valor, teremos um valor para f(x), que é a imagem da função, alimente a
função com a sua própria imagem, o processo é simples assim. Se a
constante k assumir valores menores que k=3.9 teremos uma convergência para
um valor especifico, que se trata da rais da função matemática, mas caso o valor
de K seja, maior ou igual a $k=3.9$, teremos um comportamento caótico, os
valores gerados serão aleatórios e nao convergira jamais para um ponto ou um
valor específico.
O algoritmo
Pra visualizarmos o gráfico caótico da função lógistica que adoro enfatizar se
tratar de uma função simples do segundo grau, basta duas abordagens. Ou você
olha a evolução para vários valores de k, testando um por um, ou elabora
um gráfico que mostre a evolucão do valores de f(x) em função de k, que é
muito mais promissor e didático.
O processo é jogar começar com um valor de k pequeno, entrar com uma
semente e rodar várias iterações, logo em seguida acrecentar um incremento a
k e executar o processo de iteração novamente, assim sucesivamente.
O Código
Bem, depois que visualizamos e motamos como seria aproximadamente o algoritmo
para visualizar os dados, partimos para a parte mais braçakm que é escrever os
códigos. Embaixo temos o programa funcionando perfeitamente, escrito em
python
Python
x = input("entre com a semente\n-->")
incremento = input("entre com o incremento\n-->")
arq = open("dados.txt", 'w')
k=2
i=1
print "gravando..."
while k <= 4:
i=0
while i<=50:
x = k*x*(1-x)
coletando = "%f %f\n" %(x,k)
arq.write(coletando)
i=i+1
k=k+incremento
arq.close()
print "\tconcluido..."
Este programa está completo, apesar de demorar alguns segundos a mais para gerar
um arquivo de texto com o valores da equação logística, isso deve ao falto de se
tratar de uma linguagem interpretada. O similar em C apesar de feio e
incompleto segue abaixo:
C
main(){
float x,k=2,i=1,incremento;
printf("Entre com a semente:\n-->");
scanf("%f",&x);
printf("Entre com incremento:\n-->");
scanf("%f",&incremento);
while(k<=4){
i=0;
while (i<=10){
x = k*x*(1-x);
printf("%f %f\n",x,k);
i++;
}
k+=incremento;
}
}
Ambos fazem a mesma coisa, só que está escrito em C e outro em Python, o segundo
está bem mais completo, até hoje não aprendi a exportar para um arquivos os
dados gerados por um programa escrito em C (tenho que aprender ponteiro), no
caso do programa em C, é necessário fazer um redirecionamento para um arquivo
usando conceitos muito simples de shell script.
Visualizando os dados
Mais uma vez fiz uso do programa gnuplot pra visualizar os dados, com o arquivo
em mão gerados pelo programa acima, basta carregar o gnuplot na pasta corrente e
digitar o seguinte comando:
$ gnuplot > plot 'dados.txt' u 2:1 with dots
No gráfico fica claro que para valores menores que 3.9 temos uma convergencia
para um valor ou outro valores, mas acima desse intervalo, os valores nao
convergem mais, se tornando caótico.
Caso se interesse pelos dados baixados, voce pode pega-lo aqui (dados.txt), caso queira
se aventurar pelos programinhas descritos acima, sugira que use várias
combinações de sementes e incrementos para conseguir um gráfico mais
elaborado.
Na verdade existe toda um embasamento filosófico e teórico, sobre teoria do
caos, que podemos muito bem demostrar partindo deste exemplos simples, mas foge
o que pretendia mostrar aqui, de qualquer forma acho que isso seja util para
alguem. valeu !
Franklin Anderson de Oliveira Souza <[email protected]> -
Merovigiam
É garantida a permissão para copiar, distribuir e/ou modificar este documento
sobre os termos da GNU Free Documentation Licence. 2004
|