Baixe o app para aproveitar ainda mais
Prévia do material em texto
Cálculo Numérico Raízes de Equações Não Lineares Professores Marcelo Alves de Barros Bruno C. N. Queiroz J. Antão B. Moura José Eustáquio R. de Queiroz Ulrich Schiel Cálculo Numérico Raízes de Equações Não Lineares Métodos Iterativos para a Obtenção de Zeros Reais de Funções Bissecção (ou de Bolzano) Falsa Posição Ponto Fixo x1 Newton-Raphson Secante 2 x1 = (a+b)/2 x1 = ( a f(b) - b f(a) ) / (f(b) - f(a)) xk+1 = g(xk), x = g(x) xk+1 = [xk-1 .f(xk) – xk . f(xk-1)]/[f(xk) - f(xk-1)] xk+1 = xk – f(xk)/f’(xk) Cálculo Numérico Raízes de Equações Não Lineares 1. Define-se o intervalo inicial a partir da aplicação do teorema de Bolzano (encontrar a e b tal que f(a)*f(b) < 0 2. Calcula-se o ponto médio de a e b ● x1 = (a+b)/2 3. Calcula-se um erro absoluto f(x1) ou um erro relativo |(xk – xk+1)/xk| para verificar se x1 é uma aproximação aceitável da raiz da equação. Método da Bissecção (ou de Bolzano) Dada uma função f(x) contínua no intervalo [a,b] onde existe uma raiz única , é possível determinar tal raiz subdividindo sucessivas vezes o intervalo que a contém pelo ponto médio de a e b. 4. Compara-se o erro desta aproximação com uma tolerância dada (se erro de x1 < tol) ● Se verdadeiro x1 é a raiz procurada (raíz aceitável) ● Caso contrário define-se um novo intervalo para calcular x2 5º) Calcula-se o produto f(a)*f(x1) para determinar em qual dos subintervalos - [a, x1] ou [x1 , b] - se encontra a raiz ● Verifica-se se f(a)*f(x1) < 0 ● Se verdadeiro (a, x1) (Logo a = a e b = x1) ● Caso contrario (x1 , b) (Logo a = x1 e b = b) Volta-se ao passo 2 e repete-se os passos 2 a 5 até que o método atenda à condição de parada ● |f(x)| tolerância ● |(xk – xk+1)/xk| tolerância Cálculo Numérico Raízes de Equações Não Lineares x a = a0 f(x) b = b0 x1 = (a + b)/2 x1 x a = a1 f(x) x1 = b1 x2 = (a + x1)/2 x2 x f(x) x1 = b2 x3 = (x2 + x1)/2 x2 = a2 x3 Repete-se o processo até que o valor de x atenda às condições de parada (tolerância). Tolerância (aproximação de zero): é um nível de precisão exigido pela aplicação do cálculo numérico. Depende do equipamento de cálculo e principalmente do cliente do cálculo. Cálculo Numérico Raízes de Equações Não Lineares Algoritmo k := 0; a0 := a; b0 := b; x0 := a; xk+1 := (ak + bk)/2; while critério de convergência não satisfeito and k L if f(ak)f(xk+1) < 0 then /* raiz em [ak , xk+1] */ ak+1 := ak; bk+1 := xk+1; else /* raiz em [xk+1, bk] */ ak+1 := xk+1; bk+1 := bk ; endif k := k +1; xk+1 := (ak + bk)/2; endwhile if k > L convergência falhou endif Método da Bissecção (ou de Bolzano) Dada uma função f(x) contínua no intervalo [a,b] onde existe uma raiz única , é possível determinar tal raiz subdividindo sucessivas vezes o intervalo que a contém pelo ponto médio de a e b. Cálculo Numérico Raízes de Equações Não Lineares 6 Oficina Considere que temos um sistema computacional de aritmética de ponto não flutuante de quatro dígitos, sem circuito arredondador, com base decimal e com acumulador de precisão dupla, para fazer cálculo numérico das raízes da função abaixo: 1. Encontre uma raiz desta função com 3 iterações do método da Bisecção, usando este computador. 2. Comente sobre os erros produzidos neste cálculo numérico f(x) = 1,7 x3 – 70,85x – 1,0934 Cálculo Numérico Raízes de Equações Não Lineares Exemplo 6: Resgatando o Exemplo 5, no qual f(x) = xlogx – 1 7 Verificou-se que [2, 3] g(x) x 1 2 3 4 h(x) y 5 6 2 3 Cálculo Numérico Raízes de Equações Não Lineares Exemplo 6: Considerando o método da bissecção e adotando [2, 3] como intervalo inicial 8 x1 = (2 + 3)/2 = 2,5 f(2) = -0,3979 < 0 f(3) = 0,4314 > 0 f(2,5) = -5,15.10-3 < 0 [2,5 , 3] a1 = x1 = 2,5 b1 = b0 = 3 x2 = (2,5 + 3)/2 = 2,75 f(2,5) = -5,15.10-3 < 0 f(3) = 0,4314 > 0 f(2,75) = 0,2082 > 0 [2,5 , 2,75] a2 = a1 = 2,5 b2 = x2 = 2,75 Cálculo Numérico Raízes de Equações Não Lineares Exemplo 6: 9 x3 = (2,5 + 2,75)/2 = 2,625 f(2,5) = -5,15.10-3 < 0 f(2,75) = 0,2082 > 0 f(2,625) = 0,1002 > 0 [2,5 , 2,625] a3 = a2 = 2,5 b3 = x3 = 2,625 x4 = (2,5 + 2,625)/2 = 2,5625 f(2,5) = -5,15.10-3 < 0 f(2,625) = 0,1002 > 0 f(2,5625) = 0,0472 > 0 [2,5 , 2,5625] a3 = a2 = 2,5 b3 = x4 = 2,5625 Cálculo Numérico Raízes de Equações Não Lineares Exemplo 7: Considere-se f(x) = x3 – x – 1 10 x 1 2 3 4 y 5 0 -1 -2 -3 -4 1 2 3 4 -4 -3 -2 -1 Intervalo inicial atribuído: [1, 2] tol = 0,002 f(a0) = -1 f(b0) = 5 f’(x) = 3x2 – 1 f(a0) * f(b0) = -5 < 0 Sinal da derivada constante (f’(a0) = 2 e f’(b0) = 11) Cálculo Numérico Raízes de Equações Não Lineares Exemplo 7 11 Cálculo da 1ª aproximação x1 = (a0 + b0)/ 2 = (1 + 2)/2 = 1,5 f(x1) = 1,5 3 – 1,5 – 1 = 0,875 Teste de Parada ● |f(x1)| =|0,875| = 0,875 > 0,002 Escolha do novo intervalo ● f(a0).f(x1) = (-1).0,875 = -0,875 logo: a1 = a0 = 1,0 e b1 = x1 = 1,5 Cálculo Numérico Raízes de Equações Não Lineares Exemplo 7 12 Cálculo da oitava aproximação x8 = (1,32032 + 1,32813) /2 = 1,32423 Teste de parada !f(x8)! = ! – 0,002! = 0,002 k ak bk f(ak) f(bk) xk+1 f(xk+1 ) 0 1,0000000 2,0000000 -1,000000 5,000000 1,50000000 0,875000 1 1,0000000 1,5000000 -1,000000 0,875000 1,25000000 -0,296875 2 1,2500000 1,5000000 -0,296875 0,875000 1,37500000 0,224609 3 1,2500000 1,3750000 -0,296875 0,224609 1,31250000 -0,051514 4 1,3125000 1,3750000 -0,051514 0,224609 1,34375000 0,082611 5 1,3125000 1,3437500 -0,051514 0,082611 1,32812500 0,014576 6 1,3125000 1,3281250 -0,051514 0,014576 1,32031250 -0,018711 7 1,3203125 1,3281250 -0,018700 0,014576 1,32421875 -0,002128 tol = 0,002 Cálculo Numérico Raízes de Equações Não Lineares Método da Falsa Posição Dada uma função f(x) contínua no intervalo [a,b] onde existe uma raiz única, é possível determinar tal raiz a partir de subdivisões sucessivas do intervalo que a contém, substituindo f(x) no intervalo [a,b] de cada iteração por uma reta e tomando como aproximação da raiz a intersecção da reta com o eixo das abscissas. MB: calcula a média aritmética entre a e b, e MPF: calcula a média ponderada entre a e b com pesos lf(b)l e lf(a)l, respectivamente. 13 Cálculo Numérico Raízes de Equações Não Lineares MPF: calcula a média ponderada entre a e b com pesos l(b)l e lf(a)l, respectivamente. X = ( a lf(b)l + b lf(a)l ) / (lf(b)l + lf(a)l) = ( a f(b) - b f(a) ) / (f(b) - f(a)) Observe que f(a) e f(b) têm sinais opostos. 14 Cálculo Numérico Raízes de Equações Não Lineares Definição do intervalo inicial Atribui-se [a,b] como intervalo inicial ● a0 = a ● b0 = b Condições de aplicação ● f(a)*f(b) < 0 ● Sinal da derivada constante 15 Cálculo Numérico Raízes de Equações Não Lineares Definição dos subintervalos Subdivide-se o intervalo pelo ponto de intersecção dareta que liga f(a) a f(b) e o eixo das abscissas Verifica-se se x1 é uma aproximação da raiz da equação () ● Se verdadeiro x1 é a raiz procurada ● Caso contrário define-se um novo intervalo 16 Cálculo Numérico Raízes de Equações Não Lineares Determina-se em qual dos subintervalos - [a0, x1] ou [x1, b0] - se encontra a raiz ●Calcula-se o produto f(a)*f(x1) ●Verifica-se se f(a)*f(x1) < 0 Se verdadeiro (a0, x1) Logo: a1 = a0 e b1 = x1 Caso contrario (x1, b0) Logo a1 = x1 e b1 = b0) 17 Definição do novo intervalo Repete-se o processo até que o valor de x atenda às condições de parada. Cálculo Numérico Raízes de Equações Não Lineares 18 Análise gráfica x a = a0 f(x) b = b0 x1 = (a|f(b)| + b|f(a)| )/ (|f(b)| + |f(a)|) x1 Repete-se o processo até que o valor de x atenda às condições de parada. x a = a1 f(x) b1 = x1 x2 = (a|f(x1)| + x1|f(a)| )/ (|f(x1)| + |f(a)|) x2 x a = a2 f(x) b2 = x1 x3 = (a|f(x2)| + x2|f(a)| )/ (|f(x2)| + |f(a)|) x2 Cálculo Numérico Raízes de Equações Não Lineares 19 Condições de parada Se os valores fossem exatos ● f(x) = 0 ● (xk – xk+1)/xk = 0 Não o sendo ● |f(x)| tolerância ● |(xk – xk+1)/xk| tolerância Cálculo Numérico Raízes de Equações Não Lineares Algoritmo k := 0; a0 := a; b0 := b; x0 := a; F0 := f(a0); G0 := f(b0); xk+1 := ak - Fk(bk – ak)/(Gk – Fk); ou xk+1 := (akGk- bkFk)/(Gk – Fk); while critério de convergência não satisfeito and k L if f(ak)f(xk+1) ≤ 0 then /* raiz em [ak , xk+1] */ ak+1 := ak; bk+1 := xk+1; else /* raiz em [xk+1, bk] */ ak+1 := xk+1; bk+1 := bk ; endif k := k +1; xk+1 := ak - Fk(bk – ak)/(Gk – Fk); endwhile if k > L convergência falhou endif 20 Cálculo Numérico Raízes de Equações Não Lineares Utilizando o método da falsa posição e adotando [a0, b0] = [2, 3] como intervalo inicial 21 1ª iteração a0 = 2 b0 = 3 f(a0) = -0,3979 < 0 f(b0) = 0,4314 > 0 x1 = [2.0,4314 – 3.(-0,3979)]/[0,4314 – (-0,3979)] = = 2,4798 f(x1) = -0,0219 < 0 Exemplo 8: Considerando f(x) = xlogx – 1 (Exemplo 6) Cálculo Numérico Raízes de Equações Não Lineares 22 Exemplo 8: 2ª iteração a1 = x1 = 2,4798 b1 = b0 = 3 f(a1) = -0,0219 < 0 f(b1) = 0,4314 > 0 x2 = [2,4798.0,4314 – 3.(-0,0219)]/[0,4314 – (-0,0219)] = = 2,5049 f(x2) = -0,0011 < 0 Cálculo Numérico Raízes de Equações Não Lineares 23 Exemplo 8: 3ª iteração a2 = x2 = 2,5049 b1 = b0 = 3 f(a2) = -0,0011 < 0 f(b2) = 0,4314 > 0 x3 = [2,5049.0,4314 – 3.(-0,0011)]/[0,4314 – (-0,0011)] = = 2,5061 f(x3) = -7,0118.10 -5 < 0 Cálculo Numérico Raízes de Equações Não Lineares Exemplo 9: Resgatando a função do Exemplo 7, f(x) = x3 – x – 1 24 x 1 2 3 4 y 5 0 -1 -2 -3 -4 1 2 3 4 -4 -3 -2 -1 Intervalo inicial atribuído: [1, 2] tol = 0,002 f(a0) = -1 f(b0) = 5 f’(x) = 3x2 – 1 f(a0) * f(b0) = -5 < 0 Sinal da derivada constante (f’(a0) = 2 e f’(b0) = 11) Cálculo Numérico Raízes de Equações Não Lineares Exemplo 9 25 Cálculo da 1ª aproximação x1 = [(a0.f(b0) - b0.f(a0)] / [f(b0) - f(a0)] = [1.5 – 2.(-1)]/[5 – (-1)] = 1,166667 f(x1) = 1,166667 3 – 1,166667 – 1 = -0,578703 Teste de Parada ● |f(x1)| =|-0,578703| = 0,578703 > 0,002 Escolha do novo intervalo ● f(a0).f(x1) = (-1).(-0,578703) = 0,578703 logo: a1 = x1 = 1,166667 e b1 = b0 = 2 Cálculo Numérico Raízes de Equações Não Lineares 26 Cálculo da oitava aproximação x8 = (1,32032 + 1,32813) /2 = 1,32423 Teste de parada !f(x8)! = ! – 0,002! = 0,002 k ak bk f(ak) f(bk) xk+1 f(xk+1 ) 0 1,00000000 2,00000000 -1,00000000 5,00000000 1,16666667 -0,57870370 1 1,16666667 2,00000000 -0,57870370 5,00000000 1,25311203 -0,28536303 2 1,25311203 2,00000000 -0,28536303 5,00000000 1,29343740 -0,12954209 3 1,29343740 2,00000000 -0,12954209 5,00000000 1,31128102 -0,05658849 4 1,31128102 2,00000000 -0,05658849 5,00000000 1,31898850 -0,02430375 5 1,31898850 2,00000000 -0,02430375 5,00000000 1,32228272 -0,01036185 6 1,32228272 2,00000000 -0,01036185 5,00000000 1,32368429 -0,00440395 7 1,32368429 2,00000000 -0,00440395 5,00000000 1,32427946 -0,00186926 tol = 0,002 Cálculo Numérico Raízes de Equações Não Lineares Oficina 1. Crie uma função Polinomial f(x) de grau maior que 2, encontre uma raiz desta função usando 3 iterações do método da Bisecção e determine o erro absoluto e erro relativo deste resultado 2. Faça o mesmo com o método da Falsa Posição. 27 Cálculo Numérico Raízes de Equações Não Lineares Método da Falsa Posição Modificado Dada uma função f(x) contínua no intervalo [a,b], o qual contém uma raiz única, é possível determinar tal raiz a partir de subdivisões sucessivas do intervalo que a contém, evitando, ao mesmo tempo, que as aproximações geradas pela fórmula de iteração se aproximem da raiz por um único lado. 28 Cálculo Numérico Raízes de Equações Não Lineares Definição do intervalo inicial Atribui-se [a,b] como intervalo inicial ● a0 = a ● b0 = b Condições de aplicação ● f(a)*f(b) < 0 ● Sinal da derivada constante 29 Cálculo Numérico Raízes de Equações Não Lineares Definição dos subintervalos Subdivide-se o intervalo pelo ponto de intersecção da reta que liga f(a) a f(b) e o eixo das abscissas Verifica-se se x1 é uma aproximação da raiz da equação () ● Se verdadeiro x1 é a raiz procurada ● Caso contrário define-se um novo intervalo 30 Cálculo Numérico Raízes de Equações Não Lineares Determina-se em qual dos subintervalos - [a0, x1] ou [x1, b0] - se encontra a raiz ●Calcula-se o produto f(a)*f(x1) ●Verifica-se se f(a)*f(x1) < 0 Se verdadeiro (a0, x1) Logo: a1 = a0 e b1 = x1 Caso contrario (x1, b0) Logo a1 = x1 e b1 = b0) 31 Definição do novo intervalo Repete-se o processo até que o valor de x atenda às condições de parada. Cálculo Numérico Raízes de Equações Não Lineares 32 Análise gráfica x a = a0 f(x) b = b0 x1 = (a|f(b)| + b|f(a)| )/ (|f(b)| + |f(a)|) x1 Repete-se o processo até que o valor de x atenda às condições de parada. x a = a1 f(x) b1 = x1 x2 = (a|f(x1)| + x1|f(a)| )/ (|f(x1)| + |f(a)|) x2 x2 f(a1)/2 Cálculo Numérico Raízes de Equações Não Lineares 33 Condições de parada Se os valores fossem exatos ● f(x) = 0 ● (xk – xk+1)/xk = 0 Não o sendo ● |f(x)| tolerância ● |(xk – xk+1)/xk| tolerância Cálculo Numérico Raízes de Equações Não Lineares Algoritmo k := 0; a0 := a; b0 := b; x0 := a; F0 := f(a0); G0 := f(b0); xk+1 := ak - Fk(bk – ak)/(Gk – Fk); while critério de convergência não satisfeito and k L if f(ak)f(xk+1) ≤ 0 then /* raiz em [ak , xk+1] */ ak+1 := ak; bk+1 := xk+1; Gk+1 = f(xk+1) if f(xk)f(xk+1) > 0 then Fk+1 = Fk/2 endif else /* raiz em [xk+1, bk] */ ak+1 := xk+1; bk+1 := bk ; Fk+1 = f(xk+1) if f(xk)f(xk+1) > 0 then Gk+1 = Gk/2 endif endif k := k +1; xk+1 := ak - Fk(bk – ak)/(Gk – Fk); endwhile if k L xk+1 é umaaproximação aceitável para a raiz endif 34 Cálculo Numérico Raízes de Equações Não Lineares Oficina 3 Dada a função : A. Determine o intervalo em x que contém pelo menos uma raiz de f(x) (graficamente ou aritmeticamente usando o Teorema de Bolzano); B. Partindo-se desse intervalo, utilize o método da falsa posição para determinar o valor dessa raiz após 3 iterações. C. Qual é o erro no seu resultado final? 35 4sen 2 xxxf Cálculo Numérico Raízes de Equações Não Lineares Método do Ponto Fixo (MPF) Dada uma função f(x) contínua no intervalo [a,b] onde existe uma raiz única, f(x) = 0, é possível transformar tal equação em uma equação equivalente x = g(x) e, a partir de uma aproximação inicial x0, gerar uma seqüência {xk} de aproximações para pela relação xk+1 = g(xk), uma vez que g(x) é tal que f() = 0 se e somente se g() = . 36 xk+1 = g(xk), x = g(x) Cálculo Numérico Raízes de Equações Não Lineares Método do Ponto Fixo (MPF) Implicação de tal procedimento: 37 Problema de determinação de um zero de f(x) Problema de determinação de um ponto fixo de g(x) função de iteração Cálculo Numérico Raízes de Equações Não Lineares Exemplo 9: Seja a equação x2 + x – 6 = 0 . Funções de iteração possíveis: g1(x) = 6 - x 2 g2(x) = ±√6 - x 2 g3(x) = 6/x – 1 g4(x) = 6/(x + 1) 38 Dada uma equação do tipo f(x) = 0, há para tal equação mais de uma função de iteração g(x), tal que: f(x) = 0 x = g(x) Cálculo Numérico Raízes de Equações Não Lineares 39 Análise gráfica da Convergência x {xk} quando k inf y x1 g(x) x0 y = x x2 Situação 1 Cálculo Numérico Raízes de Equações Não Lineares 40 Análise gráfica da Convergência x {xk} quando k inf y x1 g(x) x0 y = x x2 Situação 2 x3 Cálculo Numérico Raízes de Equações Não Lineares 41 Análise gráfica da Convergência x y x1 g(x) x0 y = x x2 Situação 3 {xk} Cálculo Numérico Raízes de Equações Não Lineares 42 Análise gráfica da Convergência x y x1 g(x) x0 y = x x2 Situação 4 {xk} x3 Cálculo Numérico Raízes de Equações Não Lineares Exemplo 10: Resgatando o Exemplo 9, no qual x2 + x – 6 = 0 : 43 Não há necessidade de uso de método numérico para a determinação das raízes 1 = -3 e 2 = 2 Aproveitamento do Exemplo 9 puramente para demonstração numérica e gráfica da convergência ou não do processo iterativo Seja a raiz 2 = 2 e g1 (x) = 6 - x2 Considere-se x0= 1,5 e g(x) = g1 (x) Cálculo Numérico Raízes de Equações Não Lineares Exemplo 10: A partir de x0 = 1,5 e g(x) = g1 (x) : 44 x1 = g(x0) = 6 – 1,5 2 = 3,75 x2 = g(x1) = 6 – 3,75 2 = -8,0625 x3 = g(x2) = 6 – (-8,0625) 2 = -59,003906 Conclui-se que {xk} não convergirá para 2 = 2 x4 = g(x3) = 6 – (-59,003906) 2 = -3475,4609 Cálculo Numérico Raízes de Equações Não Lineares Exemplo 10: Análise Gráfica: 45 x 2 y x1 g(x) x0 y = x {xk} 2 x2 1 Cálculo Numérico Raízes de Equações Não Lineares Exemplo 10: Seja ainda a raiz 2 = 2, g2 (x) = √6 - x e x0 = 1,5 46 x1 = g(x0) = √6 – 1,5 = 2,121320343 x2 = g(x1) = √6 – 2,121320343 = 1,969436380 x3 = g(x2) = √6 – 1,969436380 = 2,007626364 Conclui-se que {xk} tende a convergir para 2 = 2 x4 = g(x3) = √6 – 2,007626364 = 1,998092499 x5 = g(x4) = √6 – 1,998092499 = 2,000476818 Cálculo Numérico Raízes de Equações Não Lineares Exemplo 10: Análise Gráfica 47 g(x) x y y = x 2 x1 x0 x2 {xk} 2 quando k inf Cálculo Numérico Raízes de Equações Não Lineares 48 TEOREMA 2: Sendo uma raiz de f(x) = 0, isolada em um intervalo I centrado em e g(x) uma função de iteração para f(x) = 0. Se 1. g(x) e g’(x) são contínuas em I 2. |g’(x)| M < 1, x I e 3. x1 I então a seqüência {xk} gerada pelo processo iterativo xk+1 = g(xk) convergirá para . Cálculo Numérico Raízes de Equações Não Lineares Exemplo 11: Resgatando o Exemplo 10, verificou-se que: g1 (x) geração de uma seqüência divergente de 2=2 g2 (x) geração de uma seqüência convergente p/ 2=2 49 g1 (x) = 6 - x 2 e g’1 (x) = - 2x contínuas em I |g’1 (x)| < 1 |-2x| < 1 -½ < x < ½ Não existe um intervalo I centrado em 2=2, tal que |g’(x)| < 1, x I g1 (x) não satisfaz a condição 2 do Teorema 2 com relação a 2=2 . Cálculo Numérico Raízes de Equações Não Lineares Exemplo 11: 50 g2 (x) = √ 6 - x e g’2 (x) = - (1/2 )√ 6 - x g2 (x) é contínua em S = {x R | x 6} g’2 (x) é contínua em S’ = {x R | x < 6} |g’2 (x)| < 1 |1/2 √ 6 - x | < 1 x < 5,75 É possível obter um intervalo I centrado em 2=2, tal que todas as condições do Teorema 2 sejam satisfeitas. Cálculo Numérico Raízes de Equações Não Lineares 51 Critérios de parada Se os valores fossem exatos ● f(xk) = 0 ● |xk – xk-1| = 0 Não o sendo ● |f(xk)| tolerância ● |xk – xk-1| tolerância Cálculo Numérico Raízes de Equações Não Lineares Algoritmo k := 0; x0 := x; while critério de interrupção não satisfeito and k L k := k +1; xk+1 := g(xk); endwhile 52 Cálculo Numérico Raízes de Equações Não Lineares Algoritmo Completo (1) Seja f(x)= 0 e a equação Equivalente x=g(x) Dados: x0 (aprox. inicial) e 1 e 2 (precisões) Supor que as hipóteses do Teorema 2 foram satisfeitas (2) Se: lf(x0)l < 1, Então: x´= x0. FIM (3) Senão: k = 0; NI = 1; (4) xk+1 = g(xk); (5) Se ( lf(xk+1)l < 1 ou l xk+1 – xk l < 2 ou NI >L ) Então x´= xk+1. FIM (6) Xk = xk+1 ; NI = NI+1 Volta para (4) 53 X´= raiz aproximada (NI = No. de iterações) Cálculo Numérico Raízes de Equações Não Lineares Método de Newton-Raphson Dada uma função f(x) contínua no intervalo [a,b] onde existe uma raiz única, é possível determinar uma aproximação de tal raiz a partir da interseção da tangente à curva em um ponto x0 com o eixo das abscissas. x0 - atribuído em função da geometria do método e do comportamento da curva da equação nas proximidades da raiz. 54 Cálculo Numérico Raízes de Equações Não Lineares Considerações Iniciais Método do Ponto Fixo (MPF) ● Uma das condições de convergência é que |g’(x)| M < 1, x I , onde I é um intervalo centrado na raiz ● A convergência será tanto mais rápida quanto menor for |g’(x)| O método de Newton busca garantir e acelerar a convergência do MPF ● Escolha de g(x), tal que g’() = 0, como função de iteração 55 Cálculo Numérico Raízes de Equações Não Lineares Considerações Iniciais Dada a equação f(x) = 0 e partindo da forma geral para g(x) g(x) = x + A(x)f(x) busca-se obter a função A(x) tal que g’() = 0 g(x) = x + A(x)f(x) g’(x) = 1 + A’(x)f(x) + A(x)f’(x) g’() = 1 + A’()f() + A()f’() g’() = 1 + A()f’() 56 Cálculo Numérico Raízes de Equações Não Lineares Considerações Iniciais Assim g’() = 0 1 + A()f’()= 0 A() = -1/f’() donde se toma A(x) = -1/f’(x) Então, dada f(x), a função de iteração g(x) = x - f(x)/f’(x) será tal que g’() = 0, posto que g’(x) = 1 – {[f’(x)]2 – f(x)f”(x)}/[f’(x)]2 e, como f() = 0, g’() = 0 (desde que f’() 0 ) 57 Cálculo Numérico Raízes de Equações Não Lineares Considerações Iniciais Deste modo, escolhido x0 , a seqüência {xk} será determinada por xk+1 = xk – f(xk)/f’(xk) onde k = 0, 1, 2, ... 58 Cálculo Numérico Raízes de Equações Não Lineares Motivação Geométrica Dado o ponto (xk , f(xk)) ● Traça-se a reta Lk(x) tangente à curva neste ponto: Lk(x) = f(xk) + f’(xk)(x-xk) ● Determina-se o zero de Lk(x), um modelo linear que aproxima f(x) em uma vizinhança xk Lk(x) = 0 x = xk - f(xk)/f’(xk) ● Faz-se xk +1 = x 59 Cálculo Numérico Raízes de Equações Não Lineares 60 x f(x) x1 x0 x2 x3 1a iteração 2a iteração 3a iteração 4a iteração Repete-se o processo até que o valor de x atenda às condições de parada. xk+1= xk – f(xk)/f’(xk) onde k = 0, 1, 2, ... Método de Newton-Raphson Cálculo Numérico Raízes de Equações Não Lineares Exemplo 12: Resgatando o Exemplo 9, no qual x2 + x – 6 = 0 : 61 Seja a raiz 2 = 2 e x0 = 1,5 Assim: x1 = g(x0) = 1,5 – (1,5 2 + 1,5 – 6)/(2.1,5 + 1) = = 2,062500000 x2 = g(x1) = 2,000762195 x3 = g(x2) = 2,000000116 g(x) = x - f(x)/f’(x) = x – (x 2 + x – 6)/(2x + 1) e Cálculo Numérico Raízes de Equações Não Lineares Exemplo 12: Comentários: 62 A parada poderá ocorrer na 3a iteração (x = 2,000000116), caso a precisão do cálculo com 6 casas decimais for satisfatória para o contexto do trabalho Observe-se que no Exemplo 10, o MPF com g(x) = √6 - x só veio a produzir x = 2,000476818 na 5a iteração Cálculo Numérico Raízes de Equações Não Lineares 63 Estudo da Convergência TEOREMA 3: Sendo f(x), f’(x) e f”(x) contínuas em um intervalo I que contém uma raiz x = de f(x) = 0 e supondo f’() 0, existirá um intervalo Ī I contendo a raiz , tal que se x0 Ī , a seqüência {xk} gerada pela fórmula recursiva xk+1 = xk - f(xk)/f’(xk) convergirá para a raiz. Cálculo Numérico Raízes de Equações Não Lineares Exemplo 13: Considere-se a função f(x) = x3 - 9x + 3 , cujos zeros encontram-se nos intervalos: 64 1 I1 = (-4, -3), 2 I2 = (0, 1) e 3 I3 = (2, 3) Seja x0 = 1,5 xk+1 = xk - f(xk)/f’(xk) xk+1 = xk – (xk 3 - 9xk + 3)/(3xk 2 – 9) Cálculo Numérico Raízes de Equações Não Lineares Exemplo 13: A seqüência {xk} gerada pelo método de Newton será: 65 f(x) 13,37037028 x -1,66666667 18,38888989 12,36601106 8,40230714 5,83533843 4,23387371 3,32291104 2,91733895 2,82219167 2,81692988 Iteração 1 2 3 4 5 6 7 8 9 10 6055,72648668 1782,69441818 520,57174528 149,18208182 40,79022981 9,78451301 1,57303193 0,07837072 0,00023432 Cálculo Numérico Raízes de Equações Não Lineares Exemplo 13: Comentários: 66 Constata-se nas primeiras iterações uma divergência da região em que se encontram as raízes, a qual é revertida a partir da 7a iteração Tal divergência inicial deve-se à proximidade de x0 de √3 , que é um zero de f’(x). Tal proximidade inicial gera x1 = -1,66666667 ≈ -√3, outro zero de f’(x). Cálculo Numérico Raízes de Equações Não Lineares Cálculo das aproximações As aproximações subseqüentes serão determinadas a partir da equação 67 |(f(x0).f”(x0))/f’(x0) 2)| = |(f(xk).f’(xk+1))/f’(x0) 2)| onde xk+1 = xk – (f(xk)/f’(xk+1)) Cálculo Numérico Raízes de Equações Não Lineares Testes de Parada A cada iteração, testa-se se a aproximação encontrada poderá ser considerada como a solução do problema. ●|f(xk)| tolerância ●|((xk+1 – xk)/xk+1 )| tolerância 68 Cálculo Numérico Raízes de Equações Não Lineares Algoritmo k := 0; x0 := x; while critério de interrupção não satisfeito and k L k := k +1; xk+1 := xk – f(xk)/f’(xk) endwhile 69 Cálculo Numérico Raízes de Equações Não Lineares Método da Secante Dada uma função f(x) contínua no intervalo [a,b] onde existe uma raiz única, é possível determinar uma aproximação de tal raiz a partir da interseção da secante à curva em dois pontos x0 e x1 com o eixo das abscissas. x0 e x1 - atribuídos em função da geometria do método e do comportamento da curva da equação nas proximidades da raiz. 70 Cálculo Numérico Raízes de Equações Não Lineares Método de Newton-Raphson Um grande inconveniente é a necessidade da obtenção de f’(x) e o cálculo de seu valor numérico a cada iteração Forma de desvio do inconveniente: Substituição da derivada f’(xk) pelo quociente das diferenças f’(xk) ≈ [f(xk) - f(xk-1)]/(xk - xk-1) onde xk-1 e xk são duas aproximações para a raiz 71 Cálculo Numérico Raízes de Equações Não Lineares A função de iteração será g(x) = xk - f(xk)/[(f(xk) - f(xk-1))/(xk - xk-1)] = (xk - xk-1) . f(xk)/[f(xk) - f(xk-1)] = [xk-1 .f(xk) – xk . f(xk-1)]/[f(xk) - f(xk-1)] 72 g(x) = [xk-1 .f(xk) – xk . f(xk-1)]/[f(xk) - f(xk-1)] Cálculo Numérico Raízes de Equações Não Lineares Interpretação Geométrica 73 A partir de duas aproximações xk-1 e xk ● Obtém-se o ponto xk+1 como sendo a abscissa do ponto de intersecção do eixo ox e da reta que passa pelos pontos (xk-1, f(xk-1)) s (xk, f(xk)) (secante à curva da função) Cálculo Numérico Raízes de Equações Não Lineares Análise Gráfica 74 x f(x) x1 x0 x2 x3 1a iteração 2a iteração 3a iteração 4a iteração Repete-se o processo até que o valor de x atenda às condições de parada. x4 x5 Cálculo Numérico Raízes de Equações Não Lineares Exemplo 12: Resgatando o Exemplo 9, no qual x2 + x – 6 = 0 : 75 Sejam x0 = 1,5 e x1 = 1,7 Assim: x3 = [x1 .f(x2) – x2 . f(x1)]/[f(x2) - f(x1)] = 1,99774 x2 = [x0 .f(x1) – x1 . f(x0)]/[f(x1) - f(x0)] = [1,5.(-1,41) – 1,7.(2,25)]/(-1,41 + 2,25) = 2,03571 x4 = [x2 .f(x3) – x3 . f(x2)]/[f(x3) - f(x2)] = 1,99999 Cálculo Numérico Raízes de Equações Não Lineares Testes de Parada A cada iteração, testa-se se a aproximação encontrada poderá ser considerada como a solução do problema. |f(xk)| tolerância |((xk+1 – xk)/xk+1 )| tolerância 76 Cálculo Numérico Raízes de Equações Não Lineares Algoritmo k := 0; x0 := X0; x1 := X1 while critério de interrupção não satisfeito and k L k := k +1; xk+1 := (xk-1*f(xk) - xk*f(xk-1))/(f(xk) - f(xk-1)) endwhile 77 Cálculo Numérico Raízes de Equações Não Lineares Oficina 1. Encontre uma raiz da função 3x2 + 2x – 12 = 0 usando 4 iterações do método da Bisecção e determine um erro absoluto e um erro relativo deste resultado 2. Faça o mesmo usando o método de Newton Raphson. 3. Comente as diferenças dos erros dos dois cálculos numéricos. 78 Cálculo Numérico Raízes de Equações Não Lineares 79 Critérios de comparação Garantiade convergência Método da Bissecção e Falsa Posição - têm convergência garantida desde que a função seja contínua num intervalo [a,b], tal que f(a)f(b)<0. Método de Ponto Fixo, de Newton e Secante – têm condições mais restritivas de convergência. Se as condições de convergência são satisfeitas, os dois últimos métodos são mais rápidos que os três primeiros. Para todos os métodos deve-se considerar que o intervalo contém uma única raiz. Rapidez de Convergência O número de iterações é, normalmente, a medida utilizada para determinar a rapidez de convergência de um método (esta não deve ser uma medida conclusiva sobre o tempo de execução do programa, pois o tempo gasto na execução de uma iteração veria de método para método). Esforço Computacional Medido através de: número de operações efetuadas a cada iteração, da complexidade destas operações, do número de decisões lógicas, do número de avaliações de função a cada iteração e do número total de iterações. Cálculo Numérico Raízes de Equações Não Lineares 80 Esforço Computacional É difícil tirar conclusões gerais sobre a eficiência computacional de um método. Por exemplo: Bissecção - efetua cálculos mais simples por iteração. Newton - requer cálculos mais elaborados. Porém, O número de iterações da Bissecção é, na grande maioria das vezes, muito maior que o número de iterações efetuadas por Newton. Considerando que o método ideal deve satisfazer as condições: convergência assegurada ordem de convergência alta cálculos por iteração simples Deve-se escolher: Método de Newton - se for fácil verificar as condições de convergência e calcular f´(x). Método da Secante - se for trabalhoso obter e/ou avaliar f´(x), pois não é preciso obter f´(x). Deve-se evitar o uso do Método de Newton e da Secante quando: a curva tende a ser paralela a qualquer um dos eixos. a função tangencia o eixo das abscissas em um ou mais pontos. Conclusão A escolha do método está diretamente relacionada com a equação que se quer resolver, no que diz respeito ao comportamento da função na região da raiz exata, às dificuldades com o cálculo de f´(x), ao critério de parada, etc Cálculo Numérico Raízes de Equações Não Lineares 81 Exemplo 1 4 21 -x 10εε (1,2);ξ ;)(cose)(f 2 xx Tolerância para |f(x)|<1 ou |xk- xk-1|< 2 Cálculo Numérico Raízes de Equações Não Lineares 82 Exemplo 2 6 21 3 10εε (1,2);ξ 1;-x-x)(f x Cálculo Numérico Raízes de Equações Não Lineares 83 Exemplo 3 5 21 x 10εε (0,1);ξ ;e-4sen(x))(f x Cálculo Numérico Raízes de Equações Não Lineares 84 Exemplo 4 7 21 10εε (2,3);ξ 1;-xlog(x))(f x Cálculo Numérico Raízes de Equações Não Lineares Métodos Iterativos para a Obtenção de Zeros Reais de Funções Bissecção (ou de Bolzano) Falsa Posição Ponto Fixo Newton-Raphson Secante 85 x1 = (a+b)/2 x1 = ( a f(b) - b f(a) ) / (f(b) - f(a)) xk+1 = g(xk), x = g(x) xk+1 = [xk-1 .f(xk) – xk . f(xk-1)]/[f(xk) - f(xk-1)] xk+1 = xk – f(xk)/f’(xk) Cálculo Numérico Raízes de Equações Não Lineares 1. Descreva um problema (uma questão) em que é necessário um cálculo de uma raíz para encontrar uma solução (uma resposta). Deixe claro qual é a variável dependente (a questão) e as variáveis independentes (os fatores que influenciam direta ou inversamente o problema). 2. Descreva um modelo matemático para o problema. Use o seu conhecimento do problema para propor relações coerentes de dependência direta e inversa das variáveis. Explicite o significado prático de todas as variáveis envolvidas. 3. Descreva um cenário (um conjunto de dados) que representa uma situação particular deste problema e que permite encontrar sua resposta para o problema encontrando uma raiz por meio de um método numérico 4. Encontre uma resposta para o problema usando 3 iterações do método numérico estudado bisecção. 5. Calcule o erro relativo do resultado obtido pelo método usado. Desafio de MathVille (60 min) Cálculo Numérico Raízes de Equações Não Lineares Oficina Visita à Fetech2014 - Data: 26 de Nov. Você é o líder do seu grupo. Você quer criar uma história (uma narrativa) na qual você é um herói porque salva a sua cidade de uma problema eliminando alguma coisa que aflige a cidade. Responda a este tópico com o seu relatório da visita do seu grupo à Fetech 2014, contendo os seguintes ítens: 1. Nome do Grupo, 2. Nome do líder. 3. Nomes dos demais membros do grupo. 4. Dentre as soluções tecnológicas vistas na Fetech2014, qual foi aquela que você (o seu herói da sua história) poderia usar como recurso para eliminar um problema da sua cidade. 5. Um resumo da história (meia página) que tem uma parte onde o herói usa esta solução tecnológica e outra parte onde ele usa um método numérico qualquer de cálculo de raízes para calcular o valor de um fator que vai zerar o problema da cidade. 87
Compartilhar