Baixe o app para aproveitar ainda mais
Prévia do material em texto
Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todos para equac¸o˜es na˜o-lineares Ricardo Biloti biloti@g.unicamp.br Ca´lculo Nume´rico – UNICAMP 2S/2018 http://goo.gl/rYq41 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Licenc¸a Este trabalho e´ licenciado sob os termos da Licenc¸a Internacional Creative Commons Atribuic¸a˜o-Na˜oComercial-CompartilhaIgual 4.0. Para ver uma co´pia desta licenc¸a, visite http://creativecommons.org/licenses/by-nc-sa/4.0/. http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Seus direitos e deveres sa˜o: • Voceˆ e´ livre para copiar e redistribuir este material, em qualquer meio ou formato, para adapta´-lo, transforma´-lo ou utiliza´-lo para construir seu pro´prio material. • Voceˆ deve dar os cre´ditos apropriados, fornecendo link para a licenc¸a e indicando se alterac¸o˜es foram feitas. Voceˆ pode fazer isto de qualquer forma razoa´vel, pore´m sem tentar passar a ideia ou sugerir que o autor endosse suas alterac¸o˜es ou seu uso do material. • Voceˆ na˜o pode utilizar este material para fins comerciais. • Se voceˆ alterar, transformar ou construir seu pro´prio material com base neste trabalho, voceˆ devera´ distribu´ı-lo sob a mesma licenc¸a usada no original. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo d θ y ′′(t) = −g y(0) = 0, y ′(0) = v0 sin θ y(t) = (v0 sin θ)t − g 2 t2 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Suponha que um canha˜o dispara proje´teis a uma velocidade v0. O objetivo e´ calibrar o aˆngulo de tiro para que o proje´til acerte um alvo a` distaˆncia d conhecida. Apo´s o disparo, a u´nica forc¸a agindo sobre o proje´til e´ a forc¸a da gravidade. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo y(t) = (v0 sin θ)t − g 2 t2 Impacto: y(T ) = 0⇒ T = 2v0 sin θ g Distaˆncia percorrida: (v0 cos θ)T = d f (θ) ≡ 2v 2 0 sin θ cos θ g − d = 0 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares O momento do impacto pode ser encontrado resolvendo-se y(T ) = 0. Feito isso, sabendo- se que a distaˆncia horizontal percorrida e´ (v0 cos θ)T , para calibrar o aˆngulo de tiro basta resolver a equac¸a˜o na˜o-linear em θ, f (θ) = 0. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo f (θ) ≡ 2v 2 0 sin θ cos θ g − d = 0 I Pode na˜o ter soluc¸a˜o (d > v20 /g) I Pode na˜o haver unicidade I Nem todas as soluc¸o˜es fazem sentido I f pode ser simplificada? I f pode ser diferenciada? http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Antes de tentar resolver uma equac¸a˜o como esta, devemos pensar sobre algumas questo˜es: • A equac¸a˜o tem soluc¸a˜o? O que poderia acontecer com um me´todo nume´rico para aproximar a soluc¸a˜o de equac¸o˜es quando aplicado a uma equac¸a˜o que na˜o tenha soluc¸a˜o? • Havendo soluc¸a˜o, sera´ que ela e´ u´nica? Como um me´todo nume´rico se comportaria se a equac¸a˜o que ele tenta resolver tivesse mais de uma soluc¸a˜o? Ele deveria encontrar todas? Ele encontraria alguma? Ele ficaria indeciso sobre qual soluc¸a˜o aproximar? • Sera´ que todas as soluc¸o˜es da equac¸a˜o fazem sentido f´ısico? O me´todo nume´rico tem obrigac¸a˜o de encontrar a soluc¸a˜o que eu quero? E´ poss´ıvel guiar o me´todo para buscar uma soluc¸a˜o espec´ıfica? • Sera´ que na˜o tem como simplificar a equac¸a˜o, antes de aplicar um me´todo nume´rico? Isto pode fazer a diferenc¸a entre o me´todo ser bem sucedido ou na˜o, ou mesmo na velocidade com que a uma aproximac¸a˜o e´ obtida. • Por fim, como muito me´todos (como veremos) utilizam informac¸a˜o de derivada, e´ preciso saber se f pode ou na˜o ser diferenciada. Isso influencia a escolha do me´todo nume´rico. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Existeˆncia Teorema de Bolzano Seja f e´ cont´ınua em [a, b]. Se f (a) · f (b) < 0, enta˜o existe x ∈ (a, b) tal que f (x) = 0. a x b http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Uma func¸a˜o cont´ınua que troca de sinal nos extremos de um intervalo, tem que ter atravessado o eixo das ordenadas. Essa e´ a esseˆncia do Teorema de Bolzano. Esse e´ o principal resultado utilizado para garantir a existeˆncia de um ponto onde a func¸a˜o se anula. Esse teorema e´ consequeˆncia direta do Teorema do Valor Intermedia´rio. Mesmo que a func¸a˜o na˜o troque de sinal nos extremos de um intervalo, ainda pode haver pontos onde a func¸a˜o se anula. Observe o gra´fico e imagine que o intervalo de interesse, ao inve´s de ser [a, b] fosse [0, b]. A func¸a˜o e´ positiva tanto em 0 como em b, mas mesmo assim, se anula em dois pontos no interior deste intervalo. A dificuldade em aplicar esse resultado e´ conseguir exibir um intervalo [a, b] onde f (a) e f (b) teˆm sinais opostos. Isso e´ feito principalmente por tentativa e erro. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo f (x) = x3 − 6x + 3 f (−3) = −6, f (3) = 12 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Como todo polinoˆmio e´ cont´ınuo e exibimos dois pontos, −3 e 3, onde o valor de f troca de sinal, pelo Teorema de Bolzano, e´ poss´ıvel garantir que ha´ pelo menos um zero de f nesse intervalo. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Unicidade Teorema Seja f e´ diferencia´vel em [a, b]. Se f (a) · f (b) < 0 e f ′(x) na˜o troca de sinal em (a, b), enta˜o existe um u´nico x ∈ (a, b) tal que f (x) = 0. a x b http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Enquanto que a existeˆncia de zeros para func¸o˜es cont´ınuas e´ garantida examinando-se apenas os extremos de intervalos, a unicidade na˜o pode ser assegurada sem que todo o intervalo seja analisado. Note que garantir que na˜o exista apenas um zero em um intervalo e´ o mesmo que pedir que a func¸a˜o corte o eixo das ordenadas uma u´nica vez. Uma maneira de garantir isso e´ pedir que a func¸a˜o seja estritamente crescente (se f (a) < 0 < f (b)) ou estritamente decrescente (se f (a) > 0 > f (b)). Dessa forma, apo´s cruzar o eixo uma vez na˜o haveria como cruza´-lo novamente. Essa e´ a esseˆncia do teorema apresentado. Atenc¸a˜o: para dizer que uma func¸a˜o e´ estritamente crescente no intervalo (a, b) e´ preciso verificar se f ′(x) > 0 para todo x ∈ (a, b), e na˜o apenas nos pontos a e b. O mesmo vale para func¸o˜es estritamente decrescentes. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo f (x) = x3 − 6x + 3, f ′(x) = 3x2 − 6 f (−3) = −6, f (3) = 12 f ′(−3) > 0, f ′(0) < 0 Pore´m f ′(x) > 0, se x > √ 2, e f (1.5) < 0, f (3) > 0 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares No exemplo anterior, hav´ıamos conclu´ıdo que f tinha zeros no intervalo [−3, 3]. Entretanto f ′ troca de sinal nesse intervalo. Logo, na˜o e´ poss´ıvel assegura a unicidade da soluc¸a˜o da equac¸a˜o f (x) = 0. Pore´m e´ fa´cil verificar que f ′(x) > 0 se x > √ 2, isto e´ f e´ estritamente crescente depois de√ 2. Como f (1.5) < 0 < f (3), podemos assegurar que no intervalo (1.5, 3) ha´ apenas um zero de f . Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exerc´ıcio Para a func¸a˜o abaixo, tente localizar seus zeros. Dentro de cada intervalo que voceˆ encontrou, e´ poss´ıvel garantir que a func¸a˜o tem apenas um zero? f (x) = x2 − √ 5x + 1 4 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares A func¸a˜o f na˜o esta´ definda para x < 0. Observe que f (1) < 0 < f (2). Ale´m disso, f ′(x) = 2x − 5 2 √ 5x e na˜o e´ dif´ıcil perceber que f ′(x) > 0 se x> 1. Logo, existe um u´nico zero de f no intervalo (1, 2). Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo da bissecc¸a˜o a b http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares No me´todo da bissecc¸a˜o, parte-se de um intervalo inicial [a, b] onde f (a) · f (b) < 0. Calcula-se enta˜o o valor da func¸a˜o no ponto me´dio e com base nisso reduz-se o intervalo de maneira a ficar com o subintervalo da direita ou da esquerda onde ainda e´ poss´ıvel observar a alternaˆncia de sinal da func¸a˜o. Dessa forma, sucessivamente o intervalo de confinamento do zero da func¸a˜o e´ contra´ıdo. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo da bissecc¸a˜o a b http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo da bissecc¸a˜o a a b http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo da bissecc¸a˜o a a b http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo da bissecc¸a˜o a a bb http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo da bissecc¸a˜o a a bb http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo da bissecc¸a˜o a a a bb http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo da bissecc¸a˜o a a a bb http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo da bissecc¸a˜o a a a bb http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Caracter´ısticas I [a, b]? I Convergeˆncia assegurada (dado [a, b]) I Convergeˆncia lenta http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares A grande dificuldade para a aplicac¸a˜o do me´todo da bissecc¸a˜o e´ a sua inicializac¸a˜o, que requer a determinac¸a˜o de um intervalo inicial [a, b] onde haja a alternaˆncia de sinal no valores da func¸a˜o. Uma vez iniciado, o me´todo a bissecc¸a˜o tem convergeˆncia assegurada, pore´m a obtenc¸a˜o de uma aproximac¸a˜o com a precisa˜o desejada pode implicar numa grande quantidade de iterac¸o˜es. O grande problema disso e´ que, em algumas situac¸o˜es de interesse real, a avaliac¸a˜o da func¸a˜o f pode ser muito cara. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Aproximac¸a˜o linear xkxk+1 x y r(x) = f (xk) + f ′(xk)(x − xk) r(xk+1) = 0 ⇒ xk+1 = xk − f (xk) f ′(xK ) http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares O me´todo de Newton parte do fato de que encontrar o zero de uma reta e´ simples e uma func¸a˜o diferencia´vel pode ser aproximada pela reta tangente, pelo menos pro´ximo do ponto de tangeˆncia. Desta forma, se xk e´ uma aproximac¸a˜o para o zero de f , no me´todo de Newton, a func¸a˜o e´ aproximada pela reta tangente no ponto xk e depois e´ computado o zero da reta tangente. Esse ponto e´ enta˜o definido como a nova aproximac¸a˜o para o zero da func¸a˜o, denotada por xk+1. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo de Newton I Seja x0 uma aproximac¸a˜o razoa´vel de x∗ I Para k = 0, 1, 2, . . . I Se f ′(xk) 6= 0, xk+1 = xk − f (xk) f ′(xk) http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Em linhas gerais, o algoritmo para o me´todo de Newton e´ bem simples. Parte-se de uma aproximac¸a˜o inicial para o zero da func¸a˜o, denominada x0. Depois, sucessivamente computam-se as aproximac¸o˜es seguintes pela fo´rmula de iterac¸a˜o, desde que em nenhum dos iterandos a derivada seja nula. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo: aproximando √ 3 xk+1 = xk − f (xk) f ′(xk) f (x) = x2 − 3, f ′(x) = 2x xk+1 = xk − x 2 k − 3 2xk = 1 2 ( xk + 3 xk ) x0 = 2, f (x0) = 1 x1 = x0 − x 2 0 − 3 2x0 = 1.7500, f (x1) = 0.0625 x2 = x1 − x 2 1 − 3 2x1 = 1.7321, f (x2) = 0.0002 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares O problema de computar √ 3 pode ser formulado como encontrar o zero da func¸a˜o f (x) = x2 − 3. Desta forma a iterac¸a˜o de Newton e´ dada por xk+1 = (xk + 3/xk )/2. Como aproximac¸a˜o inicial, escolhemos x0 = 2. Apo´s duas iterac¸o˜es de Newton ja´ temos uma aproximac¸a˜o para a qual f (x) ≈ 2 · 10−4 e |x2 − √ 3| ≈ 5 · 10−5. Observe o qua˜o ra´pido conseguimos progredir de uma aproximac¸a˜o inicial grosseira para uma aproximac¸a˜o aceita´vel. De fato, uma grande vantagem do me´todo de Newton e´ sua velocidade de convergeˆncia. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Taylor ⇒ Newton Se f ∈ C 2 enta˜o f (x∗) = f (x) + f ′(x)(x∗ − x) +O(|x∗ − x |2) Se x for uma aproximac¸a˜o razoa´vel para x∗, enta˜o |x∗ − x | e´ pequeno. Logo 0 = f (x∗) ≈ f (x) + f ′(x)(x∗ − x) ou, se f ′(x) 6= 0, x∗ ≈ x − f (x) f ′(x) http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Outra maneira de chegarmos ao me´todo de Newton e´ atrave´s da expansa˜o de Taylor de primeira ordem. Ao utilizar tal caminho e´ poss´ıvel estimar tambe´m a taxa de convergeˆncia do me´todo. Teorema de Taylor: Seja f : [a, b] → R uma func¸a˜o com n derivadas cont´ınuas em [a, b] e f (n+1) cont´ınua em (a, b). Enta˜o existe c ∈ (a, b) tal que f (b) = f (a) + f ′(a)(b − a) + f ′′(a) 2 (b − a)2 + · · ·+ f (n)(a) n! (b − a)n︸ ︷︷ ︸ Tn(b) + f (n+1)(c) (n + 1)! (b− a)n+1. Isto significa que |f (b)− Tn(b)| ≤ K(b − a)n+1. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Histo´ria 1600 Franc¸ois Vie`te proˆpos te´cnica de perturbac¸a˜o para soluc¸a˜o de equac¸o˜es polinomiais escalares. 1664 Newton conhece o trabalho de Vie`te. 1669 Newton aperfeic¸oa Vie`te, linearizando os sucessivos polinoˆmios. 1687 O me´todo e´ aplicado a` primeira equac¸a˜o na˜o polinomial. 1690 Joseph Raphson transforma o me´todo em iterativo. 1740 Thomas Simpson introduz derivadas e extende o me´todo para sistemas de equac¸o˜es. http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Algoritmo I Seja x0 uma aproximac¸a˜o razoa´vel de x∗ E se na˜o for? I Para k = 0, 1, 2, . . . Ate´ quando? I Se f ′(xk) 6= 0, xk+1 = xk − f (xk) f ′(xk) E se f ′(xk) = 0? http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares O nu´cleo do algoritmo para o me´todo de Newton e´ bem simples. Ele consiste apenas de computar sucessivamente uma aproximac¸a˜o linear para a func¸a˜o e resolver o problema de encontrar o zero dessa aproximac¸a˜o, tomando-o como nova estimativa para o zero da func¸a˜o. Entretando, ao sair do campo teo´rico para o computacional, devemos nos atentar a algumas questo˜es perguntas importantes. Vimos que a convergeˆncia do Me´todo de Newton e´ asseguranda apenas quando partimos de um ponto inicial pro´ximo. E se este na˜o for o caso? Na˜o temos como ter certeza, pois em geral na˜o conhecemos uma vizinhac¸a onde a soluc¸a˜o deve estar. Quando dissemos que as aproximac¸o˜es sa˜o computadas sucessivamente, precisamos especi- ficar ate´ quando ou por quanto tempo, visto que na pra´tica na˜o e´ poss´ıvel interar ao infinito. Por fim, como a fo´rmulade interac¸a˜o do Me´todo de Newton realiza uma divisa˜o, pode acontecer do denominador ser zero. O que fazer enta˜o nessa situac¸a˜o? Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares E se x0 na˜o for razoa´vel? I Aplicar um me´todo menos restritivo para comec¸ar I Globalizar o me´todo de Newton I Busca linear I Regia˜o de confianc¸a http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Como o me´todo de Newton precisa de uma boa estimativa inicial, uma estrate´gia pode ser utilizar um me´todo menos exigente, que funcione mesmo que essa aproximac¸a˜o inicial na˜o seja ta˜o boa. Depois desse me´todo melhora´-la um pouco, enta˜o emprega-se o Me´todo de Newton. O me´todo da Bissecc¸a˜o poderia ser utilizado com essa finalidade. Outra estrate´gia e´ Globalizar o me´todo de Newton, ou seja, modifica-lo para que o me´todo convirja independentemente de ponto de partida. As duas principais formas de globalizar o me´todo de Newton sa˜o atrave´s da inserc¸a˜o de uma busca linear na direc¸a˜o apontada pelo me´todo de Newton ou atrave´s da definic¸a˜o de uma Regia˜o de confianc¸a, dentro da qual a aproximac¸a˜o linear e´ va´lida. Ambas as estrate´gias sa˜o melhor discutidas no contexto de me´todos de otimizac¸a˜o e fogem ao escopo desta notas. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Crite´rios de parada Gostar´ıamos de parar as iterac¸o˜es quando |ek | ≤ �|e0| Pore´m, na˜o temos como medir ek diretamente! ek = xk − x∗ http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Um algoritmo computacional na˜o pode deixar de explicitar o crite´rio de parada de execuc¸a˜o. O deseja´vel seria pedir que o erro ficasse abaixo de um certo n´ıvel aceita´vel. Pore´m o problema e´ como medir o erro absoluto, sem o conhecimento do zero de f , x∗? Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Crite´rios de parada |f (xk)| ≤ � � −� |f ′(x∗)| � 1 � −� |f ′(x∗)| ≈ 1 � −� |f ′(x∗)| � 1 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Um dos crite´rios que sim podemos aplicar e´ sobre o valor da f (xk ). O ideal seria relacionar um decre´scimo no valor de f (xk ) com um decre´scimo em ek . Quando a soluc¸a˜o existe, esta relac¸a˜o de fato pode ser estabelecida. Pore´m, a constante de proporcionalidade esta´ relacioanda ao valor de f ′(x∗). Pelos treˆs gra´ficos e´ poss´ıvel observar que se |f ′(x∗)| � 1, a func¸a˜o corta o eixo x muito “rasante”, o que significa que mesmo para pontos ainda relativamente distantes de x∗, ja´ ter´ıamos a condic¸a˜o |f (xk )| ≤ � satisfeita. Por outro lado, se |f ′(x∗)| � 1, a func¸a˜o cortaria o eixo x muito abruptamente. Desta forma, apenas quando xk estivesse realmente muito pro´ximo de x∗ e´ que o crite´rio de parada seria satisfeito. Podemos ver isso expandido f em torno de x∗, em primeira ordem: f (xk ) ≈ f (x∗) + f ′(x∗)(xk − x∗) = f ′(x∗)(xk − x∗), pois f (x∗) = 0. Logo |ek | = |xk − x∗| ≈ ∣∣∣∣ f (xk )f ′(x∗) ∣∣∣∣ / �|f ′(x∗)| , se |f (xk )| ≤ �. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Crite´rios de parada I |f (xk)| ≤ �|f (x0)| I |f (xk)| ≤ �1|f (x0)|+ �2 I |sk | ≤ �|s0|, para sk = xk+1 − xk http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Na pra´tica, os crite´rios mais usados, ale´m de um limite ma´ximo para o nu´mero de iterac¸o˜es, sa˜o: 1. Uma reduc¸a˜o relativa no valor de func¸a˜o: O problema deste crite´rio e´ que se f (x0) for muito grande, o me´todo pode parar ainda com f (xk ) muito grande. Por outro lado, se f (x0) ja´ for muito pequeno, enta˜o o me´todo vai se esforc¸ar em demasia para reduzir demais o valor de f (xk ). 2. Uma combinac¸a˜o entre uma toleraˆncia relativa e uma absoluta para o valor de func¸a˜o: A escolha apropriada de �1 e �2 evita as mazelas do crite´rio anterior. 3. Uma reduc¸a˜o relativa no comprimento dos passos dados pelo me´todo: Isso evita prosseguir quando o me´todo parece estagnar. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Derivada nula I Trocar de ponto I Fazer uma iterac¸a˜o de outro me´todo I Utilizar a derivada do passo anterior http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares A iterac¸a˜o de Newton para ser computada precisa de uma divisa˜o pela derivada de f em xk . Se essa derivada for nula, a u´nica possibilidade e´ evitar isso, quer seja pela escolha de outro ponto, quer seja pela troca do me´todo de iterac¸a˜o. Claro que a change de voceˆ acertar um ponto, no curso das iterac¸o˜es de Newton, que tenha a derivada exatamente nula, e´ muit´ıssima pequena. Sera´ que podemos nos tranquilizar enta˜o? Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Derivada quase nula x0 x1 x2 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Na pra´tica, a derivada ser quase nula ja´ e´ um problema. Como a reta tangente, num ponto onde a derivada e´ muito pequena, e´ praticamente paralela ao eixo horizontal, sua intersec¸a˜o com o eixo (pro´ximo iterando do Me´todo de Newton) acontecera´ muito distante. Com isto o iterando pode se afastar da regia˜o onde procura´vamos por um zero da func¸a˜o, levando a` convergeˆncia para outro zero ou mesmo a` divergeˆncia. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Taxas de convergeˆncia Convergeˆncia linear |ek+1| ≤ C |ek |, 0 < C < 1, ∀k > K Convergeˆncia superlinear lim k→∞ ek+1 ek = 0 Convergeˆncia quadra´tica lim k→∞ |ek+1| |e2k | = C , C > 0 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares A taxa de convergeˆncia linear e´ observada quando o erro em cada passo e´ aproximadamente um frac¸a˜o do erro no passo anterior. A convergeˆncia superlinear acontece quando essa frac¸a˜o, ao inve´s de ser aproximadamente fixa, vai progressivamente reduzindo, ao longo das iterac¸o˜es. Ja´ a taxa de convergeˆncia quadra´tica e´ observada quando o erro em cada passo e´, a grosso modo, o quadrado do erro no passo anterior. Na pra´tica, e´ como se a cada passo o nu´mero de d´ıgitos corretos na aproximac¸a˜o dobrasse. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Resultado Convergeˆncia do me´todo de Newton Hipo´teses: I f tem segunda derivada cont´ınua I f (x∗) = 0 e f ′(x∗) 6= 0 Enta˜o existe uma vizinhanc¸a V de x∗ tal que para qualquer x0 ∈ V , a sequeˆncia gerada pelo me´todo de Newton converge quadraticamente para x∗. Pro´ximo da soluc¸a˜o: ek+1 ≈ C e2k http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Convergeˆncia do me´todo de Newton Seja f ∈ C2, uma func¸a˜o com segunda derivada cont´ınua. Suponha que x∗ e´ tal que f (x∗) = 0, f ′(x∗) 6= 0. Enta˜o existe uma vizinhanc¸a V de x∗ tal que para qualquer x0 ∈ V , a sequeˆncia gerada pelo me´todo de Newton converge quadraticamente para x∗. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exerc´ıcio Estime pi aplicando o me´todo de Newton para f (x) = 1 + cos(x) I Partindo de x0 = 3, quantas iterac¸o˜es sa˜o necessa´rias para obter uma aproximac¸a˜o xˆ para pi, tal que |xˆ − pi| ≤ 10−2? I Qual a taxa de convergeˆncia observada? I Explique o comportamento do me´todo e proponha outra func¸a˜o que se anule em pi e seja mais adequada para o me´todo de Newton. http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Propriedades I Necessidade de uma aproximac¸a˜o inicial I Convergeˆncia local I Taxa de convergeˆncia quadra´tica, se pro´ximo da soluc¸a˜o I Necessidade da derivada a cada passo http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-NewtonSistemas na˜o-lineares Exemplo f (z) = z3 − 1 = 0, z ∈ C Quantas soluc¸o˜es existem? http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares As treˆs soluc¸o˜es de z3 = 1, sa˜o 1 e − 1 2 ± i√3. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Fractal http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Nesta figura, cada uma das treˆs ra´ızes esta´ associada a um cor (laranja, azul escuro e azul claro). Cada ponto do plano foi pintado com uma dessas treˆs cores para indicar para qual zero a sequeˆncia gerada pelo me´todo de Newton converge quando iniciado naquele ponto. A intencidade da cor indica a quantidade de iterac¸o˜es necessa´rias para declara convergeˆncia. Se a sequeˆncia gerada na˜o convergir o ponto e´ pintado de preto. Repare que pro´ximo a cada um dos zeros, na˜o ha´ du´vida e o me´todo converge como esperado. Pore´m se o ponto inicial na˜o esta´ assim ta˜o pro´ximo de um dos zeros, e´ imposs´ıvel saber para onde o me´todo convergira´. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todos Quase-Newton Me´todos Quase-Newton sa˜o aqueles que utilizam uma aproximac¸a˜o da derivada. http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Como a operac¸a˜o mais cara do me´todo de Newton e´ a avaliac¸a˜o da derivada, uma classe de me´todos, conhecidos como me´todos quase-Newton, barateam as iterac¸o˜es, evitando computar a derivada da func¸a˜o, que e´ trocada por uma aproximac¸a˜o. Os me´todos diferem entre si, pela forma como a derivada e´ aproximada. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo das cordas x0x1x2 x y xk+1 = xk − f (xk) f ′(x0) http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares No me´todo das cordas, a derivada e´ computada apenas no iterando inicial e depois mantida fixa no decorrer das iterac¸o˜es. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo da secante x0x1x2 x y xk+1 = xk − f (xk) gk gk = f (xk)− f (xk−1) xk − xk−1 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares No me´todo da secante, a inclinac¸a˜o da reta secante ao gra´fico da func¸a˜o nas u´ltimas duas iterac¸o˜es e´ utilizada como aproximac¸a˜o para o valor da derivada. Esse me´todo tem convergeˆncia superlinear e precisa de dois pontos para ser inicializado. Observe que o ponto x2 obtido pelo me´todo da secante foi melhor que o ponto x2 do me´todo das cordas. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo de Newton x1x2 x y xk+1 = xk − f (xk) f ′(xk) http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Para efeito de comparac¸a˜o, veja qual seria o ponto x2 obtido pelo me´todo de Newton. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo: aproximando √ 3 (Newton) xk+1 = xk − f (xk) f ′(xk) f (x) = x2 − 3, f ′(x) = 2x x0 = 2, f (x0) = 1 x1 = x0 − x 2 0 − 3 2x0 = 1.7500, f (x1) = 0.0625 x2 = x1 − x 2 1 − 3 2x1 = 1.7321, f (x2) = 0.0002 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo: aproximando √ 3 (Secante) xk+1 = xk − f (xk) gk , gk = f (xk)− f (xk−1) xk − xk−1 f (x) = x2 − 3, f ′(x) = 2x x0 = 2, f (x0) = 1 x1 = 1.7500, f (x1) = 0.0625 x2 = x1 − x 2 1 − 3 g1 = 1.7333, f (x2) = 0.0044 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exerc´ıcio: Resolver f (x) = 0 f (x) = 3x2 − ex I Identifique intervalos que contenham uma u´nica ra´ız. I Quantas ra´ızes a equac¸a˜o admite? I Aplique o me´todo de Newton para encontrar todas as ra´ızes (utilize � = 10−5). http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Sistemas na˜o-lineares Queremos agora resolver o sistema na˜o-linear f1(x1, x2, . . . , xn) = 0 f2(x1, x2, . . . , xn) = 0 ... fn(x1, x2, . . . , xn) = 0 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares A extensa˜o do problema de encontrar uma soluc¸a˜o de uma u´nica equac¸a˜o real e´ procurar uma soluc¸a˜o para um sistema de equac¸o˜es na˜o-lineares. As varia´veis agora sa˜o x1, x2, . . . , xn. Para na˜o confundir (ou ja´ confundindo), o sub´ındice j em xj indica a j-e´sima varia´vel e na˜o mais a aproximac¸a˜o computada na j-e´sima iterac¸a˜o. Para discriminar iterac¸o˜es, utilizaremos ı´ndices acima, por exemplo x (2) 3 representa a aproximac¸a˜o para a varia´vel x3 computada na segunda iterac¸a˜o. Cada func¸a˜o fj que compo˜e o sistema e´ uma func¸a˜o escalar, ou seja, fj : Rn → R, que a cada (x1, x2, . . . , xn) 7→ f (x1, x2, . . . , xn) ∈ R. Atenc¸a˜o: Na discussa˜o que se segue, vamos nos restringir a sistema com igual nu´mero de equac¸o˜es e varia´veis. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo { (x − x0)2 + (y − y0)2 − 1 = 0 ax + by + c = 0 x0 y0 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Caracter´ısticas I Pode ter ou na˜o soluc¸a˜o I Pode ter uma, algumas ou infinitas soluc¸o˜es I Na˜o e´ ta˜o simples localizar soluc¸o˜es http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Sistemas na˜o-lineares Em notac¸a˜o vetorial, x ∈ Rn, x = (x1, x2, . . . , xn)T , e F : Rn → Rn, F (x) = (f1(x), f2(x), . . . , fn(x))T . Queremos encontrar x∗ ∈ Rn tal que F (x∗) = 0 Hipo´tese: F e´ diferencia´vel http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares A maneira de simplificar a notac¸a˜o e poder perceber as semelhanc¸as e diferenc¸as entre o problema unidimensional e multidimensional, e´ reescrever um sistema na˜o-linear usando notac¸a˜o vetorial. 1-D n-D x ∈ R x ∈ Rn f : R→ R F : Rn → Rn Queremos x∗ tal que: f (x∗) = 0 F (x∗) = 0 Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo { x21 − e−x1x2 = 0 x1x2 + sin x1 = 0 Neste caso, F (x) = ( x21 − e−x1x2 x1x2 + sin x1 ) http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Neste caso, f1(x) = x21 − e−x1x2 e f2(x) = x1x2 + sin x1 sa˜o as componentes de F (x). Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Taylor ⇒ Newton F (x + s) = F (x) + J(x)s +O(‖s‖2) J(x) e´ a matriz Jacobiana de F J(x) = ∇T f1(x) ∇T f2(x) ... ∇T fn(x) http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Em 1-D: f (x + s) = f (x) + f ′(x)s +O(s2), f ′(x)s ≈ f (x + s)− f (x) Em n-D: F (x + s) = F (x) + J(x)s +O(‖s‖2), Js ≈ F (x + s)− F (x) Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo F (x) = ( x21 − e−x1x2 x1x2 + sin x1 ) J(x) = ( 2x1 + x2e −x1x2 x1e−x1x2 x2 + cos x1 x1 ) http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Observe as linhas da matriz Jacobiana sa˜o os gradientes das componentes de F . Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Me´todo de Newton para sistemas F (x + s) = F (x) + J(x)s +O(‖s‖2) F (x + s) ≈ F (x) + J(x)s Impondo que F (x + s) = 0, temos que J(x)s = −F (x) Nova aproximac¸a˜o x + s = x − J(x)−1F (x) http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares O me´todo de Newton para sistemas e´ constru´ıdo de maneira ana´loga ao me´todo de Newton para uma equac¸a˜o escalar, ou seja, considerando-se a aproximac¸a˜ode Taylor de primeira ordem apenas. Em cada iterac¸a˜o, um sistema linear deve ser resolvido para descobrir s, denominado passo. Esse passo e´ enta˜o somado a` aproximac¸a˜o atual para obter a nova aproximac¸a˜o. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Algoritmo I Seja x (0) uma aproximac¸a˜o razoa´vel de x∗ I Para k = 0, 1, 2, . . . I Se J(x (k)) for na˜o-singular, resolver J(x (k))s(k) = −F (x (k)) I x (k+1) = x (k) + s(k) http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Repare a semelhanc¸a entre esse algoritmo e o algoritmo para o me´todo de Newton no caso de uma u´nica equac¸a˜o escalar. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo: ponto inicial F (x) = ( x21 − e−x1x2 x1x2 + sin x1 ) J(x) = ( 2x1 + x2e −x1x2 x1e−x1x2 x2 + cos x1 x1 ) Se x (0) = (2, 1)T , enta˜o F (x (0)) = ( 3.8647 2.9093 ) J(x (0)) = ( 4.1353 0.2707 0.5839 2.0000 ) ‖F (x (0))‖∞ = 3.8647 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Abritrariamente foi escolhido como ponto inicial x(0) = (2, 1)T . Nesse ponto, avaliar a func¸a˜o F e da matriz Jacobiana J. Observe que a ‖F (x(0))‖ da uma medida de qua˜o perto x(0) esta´ de satisfazer F (x) = 0. Aqui usamos a norma infinito apenas por ser mais simples. Outras normas poderiam ser usadas tambe´m. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo: primeira iterac¸a˜o ( 4.1353 0.2707 0.5839 2.0000 ) s(0) = − ( 3.8647 2.9093 ) s(0) = (−0.8557,−1.2049)T , x (1) = x (0)+s(0) = (1.1443,−0.2049)T F (x (1)) = ( 0.0453 −0.6760 ) ‖F (x (1))‖∞ = 0.6760 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Para progredir de x(0) a x(1) e´ necessa´rio resolver o sistema linear que determina o passo s(0). Feito isso, obtemos a nova aproximac¸a˜o. Repare que nesse novo ponto, o valor de ‖F (x(1))‖ < ‖F (x(0))‖, indicando que houve melhora em satisfazer o sistema na˜o-linear. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo: segunda iterac¸a˜o ( 2.0297 1.4466 0.2088 1.1443 ) s(1) = − ( 0.0453 −0.6760 ) s(1) = (0.4584,−0.6744)T , x (2) = x (1)+s(1) = (1.6026,−0.8793)T F (x (2)) = ( −1.5239 −0.4097 ) ‖F (x (2))‖∞ = 1.5239 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Estranhamente, nesta segunda iterac¸a˜o parece que tivemos uma piora na aproximac¸a˜o visto que ‖F (x(2))‖ > ‖F (x(1))‖. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo: terceira iterac¸a˜o ( −0.3930 6.5589 −0.9111 1.6027 ) s(2) = − ( −1.5239 −0.4097 ) s(2) = (0.0457, 0.2296)T , x (3) = x (2)+s(2) = (1.5569,−0.6497)T F (x (3)) = ( −0.3256 −0.0115 ) ‖F (x (3))‖∞ = 0.3256 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Nesse exemplo, temos que k ‖F (x(k))‖ 0 3.8647 1 0.6760 2 1.5239 ← aumentou! 3 0.3256 Esse comportamento significa o queˆ? Da´ para confiar que a sequeˆncia esta´ convergindo? Pense em um exemplo em uma dimensa˜o, isto e´, um exemplo com uma u´nica equac¸a˜o na˜o- linear, onde esse mesmo comportamento e´ observado. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exemplo: trajeto´ria x0 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Observe que neste exemplo, mesmo com o valor de func¸a˜o tendo aumentado, em todos os iterandos se aproximaram gradativamente da soluc¸a˜o do sistema. De fato, a partir da terceira iterac¸a˜o e´ poss´ıvel perceber que os iterandos devem estar dentro da regia˜o de convergeˆncia quadra´tica do me´todo de Newton. k ‖F (x(k))‖∞ ‖x(k) − x∗‖∞ 0 3.8647 1.6057 1 0.6760 0.5021 2 1.5239 0.2734 3 0.3256 0.0894 ← conv. quadra´tica 4 0.0210 0.0061 5 0.0001 0.0000 Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Crite´rios de parada I ‖s(k)‖ ≤ �‖s(0)‖ I ‖F (x (k))‖ ≤ �‖F (x (0))‖ I ‖F (x (k))‖ ≤ �1‖F (x (0))‖+ �2 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Os crite´rios de parada sa˜o totalmente ana´logos aos crite´rios utilizados no caso de uma u´nica equac¸a˜o na˜o-linear. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Algoritmo I Seja x (0) uma aproximac¸a˜o razoa´vel de x∗ I Enquanto ‖F (x (k))‖ > �‖F (x (0))‖ e k < K I Se J(x (k)) for na˜o-singular, resolver J(x (k))s(k) = −F (x (k)) I x (k+1) = x (k) + s(k) I k ← k + 1 http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Subproblema – Sistema Linear J(x (k))s(k) = −F (x (k)) I Me´todos diretos I Me´todos iterativos I Soluc¸a˜o exata I Soluc¸a˜o aproximada (Newton Inexato) http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares No caso do me´todo de Newton para sistemas na˜o-lineares surge a questa˜o de como re- solver o sistema linear gerado em cada iterac¸a˜o. Esse problema e´ denominado de subproblema. Para o subproblema, tanto me´todos diretos quanto iterativos podem ser utilizados, e no caso de me´todos iterativos, pode-se emprega´-los ate´ atingir convergeˆncia na soluc¸a˜o ou para em uma soluc¸a˜o aproximada. Neste caso deve-se apenas tomar o cuidado de exigir que a qualidade dessas soluc¸o˜es aproximadas aumentem a medida que progredimos nas iterac¸o˜es do me´todo de Newton. Me´todo de Newton Me´todos Quase-Newton Sistemas na˜o-lineares Exerc´ıcio { x21 + x 2 2 − 2 = 0 x1x2 − 1 = 0 I Analisando graficamente, discuta a existeˆncia e unicidade de soluc¸o˜es. I Obtenha a matriz jacobiana, J. I Exiba o sistema linear a ser resolvido em cada iterac¸a˜o do me´todo. http://goo.gl/rYq41 Ricardo Biloti Me´todos para equac¸o˜es na˜o-lineares Método de Newton Métodos Quase-Newton Sistemas não-lineares
Compartilhar