08.02.2015 Views

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

notas de aula - Jerônimo C. Pellegrini<br />

( lambda (f x n stop )<br />

(if (or ( zero n)<br />

( stop x))<br />

x<br />

( function-iterate f (f x) (- n 1) stop ))))<br />

Testaremos o iterador de funções: primeiro definimos uma função /2, que retorna<br />

a metade de um número; depois, pedimos dez iterações de /2 para o número um, mas<br />

somente até o valor ser menor que 0.2:<br />

( define (/2 x) (/ x 2))<br />

( function-iterate /2 1 10 ( lambda (x) (< x 0.2)))<br />

1/8<br />

O procedimento iterou a função até 0.25, mas parou em 1/8 = 0.125, que é menor<br />

que 0.2. Se usarmos (lambda (x) #f) para o parâmetro stop, o procedimento somente<br />

terminará após as dez iterações:<br />

(function-iterate /2 1 10 (lambda (x) #f))<br />

1/1024<br />

O conjunto de Julia de uma função f é a borda do conjunto de pontos z no plano<br />

<strong>com</strong>plexo para os quais<br />

lim<br />

n↦→∞ |f(n) (z)| = ∞<br />

É <strong>com</strong>um denotar o conjunto de Julia de uma função por J(f).<br />

Trataremos aqui apenas de funções <strong>com</strong>plexas quadráticas da forma f(z) = z 2 + c,<br />

onde c é uma constante. A norma de um número <strong>com</strong>plexo é a distância entre sua<br />

representação no plano <strong>com</strong>plexo e a origem: |a + bi| = √ a 2 + b 2 . Para as funções<br />

quadráticas <strong>com</strong> as quais lidaremos, se |c| < 2, z ∈ C e existe algum n tal que |f (n) (z)| 2,<br />

então lim n↦→∞ |f (n) (z)| = ∞. Podemos plotar o conjunto de Julia de uma função da<br />

seguinte maneira: Para cada ponto z no plano, calculamos os valores de f(n) para algum<br />

n e verificamos se a norma torna-se maior ou igual a 2.<br />

Versão Preliminar<br />

Construiremos um programa que, a partir de uma função quadrática <strong>com</strong>plexa,<br />

desenha o conjunto de Julia preenchido para aquela função. O conjunto de Julia preenchido<br />

é o conjunto dos pontos para os quais a função iterada da forma que descrevemos não<br />

[ 27 de outubro de 2010 at 15:47 ]<br />

123

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!