Escolar Documentos
Profissional Documentos
Cultura Documentos
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!
0 0
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/).
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!