Você está na página 1de 7

EP1 - MAP2121 - 1o Sem.

2012 Bacia de atra c ao do M etodo de Newton em duas dimens oes e Fractais


Data de entrega: 02/05/2012 no sistema http://map2121.ime.usp.br

Instru co es
O exerc cio-programa dever a ser feito individualmente. Haver a controle de c opias (totais ou parciais) e caso estas sejam detectadas os envolvidos ter ao nota zero no programa e o caso ser a levado ` a coordena c ao do bi enio O EP deve ser feito em linguagem C (extens ao .c). Voc e pode utilizar qualquer compilador e sistema, mas garanta ao nal que ele compila no CodeBlocks 10.05 (http://www.codeblocks.org/downloads/ binaries) para que n ao tenha problemas de compila c ao na hora de corrigirmos. EPs atrasados n ao ser ao aceitos. N ao deixe para entregar muito em cima da hora. Voc e dever a entregar apenas um arquivo com o c odigo fonte do seu programa cujo nome deve ser seu nome e n umero usp (com extens ao .c). Ex: Jo aodaSilva123435.c Ser ao levados em conta na corre ca o organiza ca o e coment arios, portanto voc e deve usar fun c oes no seu programa. Cuidado com divis oes por zero. Boa sorte e divirta-se!

Objetivos
O objetivo deste exerc cio-programa e resolver sistemas de equa co es n ao lineares pelo M etodo de Newton e determinar a bacia de atra ca o de cada raiz encontrada. Usaremos imagens para representar a bacia de atra ca o, e veremos que com isso e poss vel construir fractais. 1

O M etodo de Newton 2D
Considere o problema de se encontrar uma solu ca o para um sistema de equa co es n ao lineares f (x, y ) = 0 (1) g (x, y ) = 0 Analogamente ao caso unidimensional, o M etodo de Newton bidimensional e dado pela recorr encia xk+1 yk+1 = xk yk
f x g x f y g y 1

f (xk , yk ) g (xk , yk )

(2)

A converg encia da seq u encia (xk , yk ) para uma solu ca o do sistema n ao linear e de an alise delicada, diferente do caso unidimensional. Em geral, a aproxima ca o inicial (x0 , y0 ) precisa estar razoavelmente pr oxima da solu ca o para que o m etodo funcione. Neste programa voc e vai usar 2 crit erios de parada para o M etodo de Newton: N umero m aximo de itera c oes IT M AX N Limite inferior para a varia ca o relativa > 0. Onde a varia c ao relativa ser a dada por (3) V Rk = (xk+1 xk )2 + (yk+1 yk )2 As derivadas parciais ser ao calculadas numericamente com diferen cas nitas centradas, descrita a seguir. A invers ao da matriz ser a feira explicitamente, anal de contas, e uma matriz 2 2!

Aproxima c ao num erica da derivada


f (x + h) f (x) . h0 h f (x) f (x h) Trocando h por h, a derivada e escrita tamb em como o limite f (x) = lim h0 h de modo que temos tamb em a f ormula de diferen ca central Dada uma fun ca o f (x) diferenci avel, sua derivada e o limite f (x) = lim f (x + h) f (x h) h0 2h Logo, podemos aproximar a derivada em um ponto x como f (x) = lim f ( x) f (x + h) f (x h) 2h 2

Representa c ao de imagens em arquivos texto


Esta se ca o descreve alguns formatos de representa c ao de imagens em arquivos de tipo texto. Tais formatos, apesar de n ao serem t ao populares como os formatos bin arios que ocupam muito menos espa co, s ao usados por uma s erie de programas de convers ao e s ao convenientes para serem usados como formatos intermedi arios para sa da de programas. Originalmente este formatos eram usados para transmiss ao de imagens por correio eletr onico. Estaremos interessados nos chamados formatos PNM (portable anymap), em particular no tipo PPM (portable pixmap le format), que permite imagens coloridas. A deni ca o de um arquivo PPM e a seguinte: Um n umero m agico para identicar o tipo de arquivo. Um arquivo PPM usa os caracteres P3. Espa co ou troca de linha Uma largura, em caracteres texto decimais. Espa co ou troca de linha Uma altura, em caracteres texto decimais. Espa co ou troca de linha O m aximo n vel de componente de cor, em caracteres texto decimais. Largura*Altura triplas de n veis de cor entre 0 e o valor m aximo especicado separados por espa co, come cando do canto superior esquerdo da imagem. Cada valor das triplas corresponde, respectivamente, aos n veis de vermelho, verde e azul. O valor 0 signica que a cor n ao aparece enquanto que o valor m aximo signica que a cor est a no n vel m aximo. Linhas que come cam com # s ao coment arios e portanto s ao ignoradas. Nenhuma linha pode ser mais longa que 70 caracteres. Por exemplo: P3 # The P3 means colors are in ASCII, then 3 columns and 2 rows, # then 255 for max color, then RGB triplets 3

3 2 255 255 0 255 255

0 0

0 255 0 255 255 255

0 0

0 255 0 0

corresponde ` a imagem (ampliada) . Para evitar problemas com o n umero m aximo de caracteres por linha voc e pode imprimir cada pixel em uma nova linha. H a diversos programas que abrem imagens PPM, para o Windows voc e pode usar o software gratuito chamado IrfanView (http://www.irfanview.com/).

Bacia de atra c ao de uma raiz


Considere um sistema de equa c oes como em (1). Dizemos que um ponto (x0 , y0 ) est a na bacia de atra c ao de uma solu ca o ( x, y ) se a sequ encia correspondente do M etodo de Newton (2) for convergente a ( x, y ). Dado um sistema (1) e um ret angulo R = [a, b] [c, d], o objetivo deste exerc cioprograma e mapear a bacia de atra ca o das solu co es do sistema em R. Usaremos cores para diferenciar as bacias para cada raiz. Para isso voc e dever a escrever um programa que cria um arquivo de imagem colorida PPM de tamanho N M correspondente ao ret angulo R. Assim teremos os pontos (xi , yj ) dados por xi = a + (i 1)/M, yj = a + (j 1)/N. Voc e deve associar a cada raiz obtida com o m etodo de Newton uma cor. Cada ponto de malha (xi , yj ) ser a um chute inicial do m etodo de Newton, e deve ser pintado com a cor relativa da raiz para qual o m etodo converge com esse chute inicial. Pinte de preto o pixel que tiver: Chegado em erro no m etodo de Newton por excesso de itera co es Chegado em erro no m etodo de Newton por zeros na matriz de derivada (determinante nulo) Levar a pontos fora do ret angulo 4

Para podermos identicar mais facilmente as ra zes, pinte de branco RGB = (255, 255, 255) os pontos muito perto das ra zes (2 ou menos pixels de dist ancia). Os outros pontos podem ser pintados com o esquema que voc e preferir, mas tente n ao usar cores muito parecidas. O n vel m aximo de cada componente deve ser 255. Como sugest ao, voc e pode usar a tabela abaixo. Acrescente mais cores se voc e achar necess ario. RGB Cor Raiz 1 (255, 0, 0) Vermelho 2 (0, 255, 0) Verde (0, 0, 255) Azul 3 4 (255, 255, 0) Amarelo (255, 165, 0) Laranja 5 6 (159, 95, 159) Violeta Para que a gura que mais interessante, vamos pintar os pixels de forma proporcional ao n umero de itera c oes do m etodo de Newton. Logo voc e deve multiplicar a cor (cada uma das componentes) por um fator que ser a dado por = IT M AX IT , IT M AX (4)

onde IT M AX e n umero m aximo de itera c oes denida para o m etodo de Newton, e IT e o n umero de itera co es obtida para aquele chute inicial (pixel). Note que se o m etodo atingir o n umero m aximo de itera c oes (o m etodo diverge), ent ao o fator ser a zero, e logo a cor ser a preta.

Testes
Para as derivadas num ericas, utilize h = 104 . Para o m etodo de Newton, use 5 IT M AX = 40 e = 10 . Considere o ret angulo com N = 800 M = 800. Teste seu programa para: 1. x3 3xy 2 1 = 0 3x2 y y 3 =0 no ret angulo [0.7, 1.1] [1, 1].

2. x4 6x2 y 2 + y 4 1 = 0 4x3 y 4xy 3 =0 no ret angulo [3, 3] [3, 3]. 3. cos(3x2 )y = 0 cos(3y 2 )x = 0 no ret angulo [1, 1] [1, 1].

Entrada
O seu programa deve ler os os par ametros de uma arquivo de entrada, demoninado entrada.txt. este arquivo deve conter as seguintes informa co es, nesta ordem e por linhas: N umero do teste (fun ca o a ser testada) Os extremos dos intervalos de deni ca o da fun ca o (a, b, c, d), onde f est a denida em [a, b] [c, d] O espa camento para a derivada discreta (h) O n umero m aximo de itera co es (IT M AX ) e a toler ancia () do m etodo de Newton N umero de linhas e colunas da imagem Um arquivo de exemplo para o teste 1 e: 1 -1.0 1.0 -1.0 1.0 1e-4 40 1e-5 800 800 # # # # # Numero do teste (funcao) a, b, c, d (caixa do problema) Espa camento para derivada discreta Num max de itera c~ oes e toler^ ancia (Newton) Num linhas, num colunas

Sa da
A sa da do seu programa deve conter uma impress ao de um cabe calho com seu nome e n umero usp, e para cada teste, a impress ao de cada uma das ra zes encontradas e qual a cor que ser a atribu da a ela. Al em disso, o seu programa deve gerar a gura, em formato PPM, correspondente ao teste executado (ex: saida.ppm). As imagens obtidas ter ao caracter sticas bem interessantes, sendo que os dois primeiros testes geram fractais. Um exerc cio interessante e rodar o m etodo para sub-ret angulos da imagem, e vericar que os padr oes se repetem innitamente (pode ser preciso ajustar os par ametros para ver os detalhes dos sub-n veis do fractal). Fique ` a vontade para usar sua criatividade e criar outras imagens al em dessas!

Dicas
A princ pio voc e n ao conhece o n umero de ra zes de cada problema, portanto voc e deve ir armazenando em uma lista (vetor) cada nova ra z encontrada. Voc e pode assumir que o seu m etodo acha no m aximo 20 ra zes, para poder denir um tamanho m aximo inicial para essa lista. Para saber para qual ra z o seu chute inicial convergiu, voc e pode testar se a dist ancia do ponto para o qual voc e teve converg encia at e uma das ra zes j a encontradas e sucientemente pequeno. Pode usar uma toler ancia de = 105 . Abuse do f orum de discuss ao. Voc es podem postar imagens para comparar resultados entre voc es (convertam para jpg para diminuir o tamanho). Bons Estudos!

Você também pode gostar