Cálculo Numérico Resolução Numérica de Equações Métodos Parte II Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br MATERIAL ADAPTADO DOS SLIDES DA DISCIPLINA CÁLCULO NUMÉRICO DA UFCG - www.dsc.ufcg.edu.br/~cnum/
Cálculo Numérico Bissecção Métodos Iterativos para a Obtenção de Zeros Reais de Funções Bissecção Falsa Posição Ponto Fixo Newton-Raphson Secante 2
Cálculo Numérico Bissecção Método da Bissecção 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. 3
Cálculo Numérico Bissecção Definição do Intervalo Inicial Atribui-se [a,b] como intervalo inicial a 0 = a b 0 = b Condições de Aplicação f(a)*f(b) < 0 Sinal da derivada constante 4
Cálculo Numérico Bissecção Análise Gráfica f(x) x 2 = (a + x 1 )/2 f(x) a = a 1 ξ x 2 x 1 = b 1 x x 1 = (a + b)/2 a = a 0 ξ x 1 b = b 0 x f(x) x 3 = (x 2 + x 1 )/2 x 2 =a 2 ξ Repete-se o processo até que o valor de xatenda às condições de parada. x 3 x 1 =b 2 x 5
Cálculo Numérico Bissecção Definição de Novos Intervalos Determina-se qual o subintervalo [a, x 1 ] ou [x 1, b] que contém a raiz Calcula-se o produto f(a)*f(x 1 ) Verifica-se se f(a)*f(x 1 ) < 0 Se verdadeiro ξ (a, x 1 ) (Logo a = ae b = x 1 ) Caso contrario ξ (x 1, b) (Logo a = x 1 e b = b) Repete-se o processo até que o valor de x atenda às condições de parada. 6
Cálculo Numérico Bissecção Tolerância (ε) Aproximação de zero, dependente do equipamento utilizado e da precisão necessária para a solução do problema A tolerânciaé uma estimativa para o erro absolutodesta aproximação. 7
Cálculo Numérico Bissecção Condições de Parada Se os valores fossem exatos f(x) = 0 (x k x k+1 )/x k = 0 Uma vez que são aproximados f(x) tolerância (x k x k+1 )/x k tolerância 8
Cálculo Numérico Bissecção Exemplo 06: Resgatando o Exemplo 05, f(x) = xlogx - 1 y h(x) 2 ξ 3 g(x) ξ 1 2 3 4 5 6 x Verificou-se que ξ [2, 3] 9
Cálculo Numérico Bissecção Exemplo 06: f(x) = xlogx - 1 Considerando o método da bissecção com tol = 0,002 e adotando [a 0,b 0 ] = [2, 3]como intervalo inicial, tem-se: Cálculo da 1 ª aproximação x 1 = (a 0 + b 0 )/2 = (2,00000+ 3,00000)/2 x 1 = 2,50000 f(x 1 ) = f(2,50000) =-0,00510 f(a 0 ) = f(2,00000) = -0,39794 Teste de Parada f(x 1 ) = -0,00510 =0,00510>0,002 10
Cálculo Numérico Bissecção Exemplo 06: f(x) = xlogx - 1 Cálculo da 2 ª aproximação Novo Intervalo f(a 0 ).f(x 1 ) = (-0,39794).(-0,00510) > 0 logo: a 1 = x 1 = 2,50000e b 1 = b 0 = 3,00000 x 2 = (2,50000 + 3,00000)/2 = x 2 = 2,75000 f(2,50000) = -0,05100 < 0 f(3,00000) = 0,43140 > 0 f(2,75000) = 0,20820 > 0 ξ [2,5 ; 2,75] a 2 = a 1 = 2,50000e b 2 = x 2 = 2,75000 11
Cálculo Numérico Bissecção Exemplo 06: x 3 = (2,50000+ 2,75000)/2 = 2,62500 f(2,50000) = -0,05100< 0 f(2,75000) = 0,20820> 0 f(2,62500) = 0,10020> 0 x 4 = (2,50000+ 2,62500)/2 = 2,56250 f(2,50000) = -0,05100< 0 f(2,62500) = 0,10020> 0 f(2,56250) = 0,04720> 0 ξ [2,5, 2,625] a 3 = a 2 = 2,50000 b 3 = x 3 = 2,62500 ξ [2,5, 2,5625] a 3 = a 2 = 2,50000 b 3 = x 4 = 2,56250 12
Cálculo Numérico Bissecção Exemplo 06: f(x) = xlogx - 1 k a k b k f(a k ) f(b k ) x k+1 f(x k+1 ) 0 2,00000 3,00000-0,39794 0,43136 2,50000-0,00510 1 2,50000 3,00000-0,00515 0,43136 2,75000 0,20820 2 2,50000 2,75000-0,00515 0,20816 2,62500 0,10021 3 2,50000 2,62500-0,00515 0,10021 2,56250 0,04720 4 2,50000 2,56250-0,00515 0,04720 2,53125 0,02090 5 2,50000 2,53125-0,00515 0,02094 2,51563 0,00790 6 2,50000 2,51563-0,00515 0,00787 2,50781 0,00140 f(x 7 ) ε=0,002 13
Cálculo Numérico Bissecção Algoritmo k := 0; a 0 := a; b 0 := b; x 0 := a; x k+1 := (a k + b k )/2; while critério de parada não satisfeito and k L if f(a k )f(x k+1 ) < 0 then /* raiz em [a k, x k+1 ] */ a k+1 := a k ; b k+1 := x k+1 ; else /* raiz em [x k+1, b k ] */ a k+1 := x k+1 ; b k+1 := b k ; endif k := k +1; x k+1 := (a k + b k )/2; endwhile if k > L parada falhou endif 14
15 Após niterações, a raiz estará contida no intervalo: Generalização = k k k 2 a b a b 0 0 Cálculo Numérico Bissecção 2 a b ] a [b 1 k 1 k k k =
Cálculo Numérico Bissecção Estimativa do número de iterações Deve-se obter o valor de K, tal que b k a k < ε, ou seja, b a 2k 0 0 k.log(2) < ε > 2 log(b k 0 > a b 0 0 ε a 0 ) log( ε) k > log(b a0) log( log(2) 0 ε ) 16
Cálculo Numérico Bissecção Estimativa do número de iterações Ex.: Considerando um intervalo [2,3] e ε=10-2, calcular o número mínimo de iterações para que tenhamos b-a< ε(critério de Parada). k > log(b a0) log( log(2) 0 ε ) k > log(3 2) log(10 log(2) 2 ) k > log(1) + 2log(10) log(2) = 2 0.3010 6.64 k = 7 17
Cálculo Numérico Bissecção Vantagens: Facilidade de implementação; Estabilidade e convergência para a solução procurada; Desempenho regular e previsível. O número de interações é dependente da tolerância considerada 18
Cálculo Numérico Bissecção Desvantagens: Lentidão do processo de convergência (requer o cálculo de f(x)em um elevado número de iterações); Necessidade de conhecimento prévio da região na qual se encontra a raiz de interesse (o que nem sempre é possível); Complexidade da extensão do método para problemas multivariáveis. 19
Cálculo Numérico Bissecção Exemplo 07: Seja f(x) = x 3 x 1 Intervalo inicial atribuído: [1, 2] Considerando-se ε = 0,002 f(a 0 ) =-1 y 4 3 2 f(b 0 ) =5 1 f (x) =3x 2 1 f(a 0 ) * f(b 0 ) =-5 < 0-4 -3-2 -1 0-1 1 2 3 4 5 x Sinal da derivada constante (f (a 0 ) =2e f (b 0 ) =11) -2-3 -4 20
Cálculo Numérico Bissecção Exemplo 07: f(x) = x 3 x 1 Cálculo da 1ª aproximação x 1 = (a 0 +b 0 )/2 = (1,000000+2,000000)/2 = x 1 = 1,500000 f(x 1 ) =1,5 3 1,5 1=0,875000 Teste de Parada f(x 1 ) = 0,875 =0,875000>0,002 Escolha do Novo Intervalo f(a 0 ).f(x 1 ) = (-1).0,875=-0,875 logo: a 1 =a 0 =1,000000 e b 1 =x 1 =1,50000 21
Cálculo Numérico Bissecção Exemplo 07: f(x) = x 3 x 1 k a k b k f(a k ) f(b k ) x k+1 f(x k+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 ε=0,002 22
Exercício: Encontre uma estimativa para a raiz de f(x) = e x + x, com ε 0,050. - + -1-0,5 0
Cálculo Numérico Falsa Posição Método da Bissecção Calcula a média aritméticados limites do intervalo que contém a raiz ([a, b] ) Método da Falsa Posição Calcula a média ponderadados limites do intervalo que contém a raiz ([a, b] ) 24
Método da Falsa Posição f(x) Cálculo Numérico Falsa Posição Calcula a média ponderadados limites do intervalo que contém a raiz ([a, b] ) f(b) X = af(b) f(b) + + bf(a) f(a) a ξ X b x X = af(b) f(b) bf(a) f(a) f(a) f(a) e f(b) têm sinais opostos 25
Cálculo Numérico Falsa Posição Definição do Intervalo Inicial Atribui-se [a,b] como intervalo inicial a 0 = a b 0 = b Condições de Aplicação f(a)*f(b) < 0 Sinal da derivada constante 26
Cálculo Numérico Falsa Posição Definição dos Subintervalos Subdivide-se o intervalo pelo ponto de intersecçãoda reta que liga f(a)a f(b)e o eixo das abscissas Verifica-se se, através do teste de parada, se x 1 é uma aproximação da raiz da equação (ξ) Se verdadeiro x 1 é a raizprocurada Caso contrário define-se um novo intervalo 27
Cálculo Numérico Falsa Posição Definição do Novo Intervalo Determina-se qual subintervalo - [a 0, x 1 ] ou [x 1, b 0 ] -contém a raiz ξ Calcula-se o produto f(a)*f(x 1 ) Verifica-se se f(a)*f(x 1 ) < 0 Se verdadeiro ξ (a 0, x 1 ) Logo: a 1 = a 0 e b 1 = x 1 Caso contrario ξ (x 1, b 0 ) Logo a 1 = x 1 e b 1 = b 0 Repete-se o processo até que o valor de x atenda às condições de parada. 28
Cálculo Numérico Falsa Posição Análise Gráfica f(x) X 2 a1f(b) 1 = f(b) 1 b1f(a) 1 f(a) 1 f(x) X 1 = a 0 f(b0) f(b0) b0f(a0) f(a0) a = a 1 x 2 ξ x 1 = b 1 x a = a 0 ξ x 1 b = b 0 x f(x) X 3 = a2f(b2) f(b2) b2f(a2) f(a2) Repete-se o processo até que o valor de xatenda às condições de parada. ξ x 2 = a 2 x 3 x 1 = b 2 x 29
Cálculo Numérico Falsa Posição Algoritmo k := 0; a 0 := a; b 0 := b; x 0 := a; F 0 := f(a 0 ); G 0 := f(b 0 ); x k+1 := a k - F k (b k a k )/(G k F k ); ou x k+1 := (a k G k - b k F k )/(G k F k ); while critério de convergência não satisfeito and k L if f(a k )f(x k+1 ) 0 then /* raiz em [a k, x k+1 ] */ a k+1 := a k ; b k+1 := x k+1 ; else /* raiz em [x k+1, b k ] */ a k+1 := x k+1 ; b k+1 := b k ; endif k := k +1; x k+1 := a k - F k (b k a k )/(G k F k ); endwhile if k>l convergência falhou endif 30
Cálculo Numérico Falsa Posição Exemplo 08: Considerando f(x) = xlogx - 1 Intervalo inicial atribuído: [2, 3] Considerando-se ε = 0,002 f(a 0 ) =-0,3979 f(b 0 ) =0,4314 y h(x) g(x) f (x) =logx+1/xln10 f(a 0 ) * f(b 0 ) =-0,017165<0 Sinal da derivada constante (f (a 0 ) = 0,52e f (b 0 ) = 0,622) ξ 1 2 3 4 5 6 x 31
Cálculo Numérico Falsa Posição Exemplo 08: Cálculo da 1ª aproximação:a 0 = 2 b 0 = 3 f(a 0 ) =-0,3979 <0 f(b 0 ) = 0,4314>0 x 1 = [2.0,4314 3.(-0,3979)] = 2,4798 [0,4314 (-0,3979)] Teste de Parada f(x 1 ) = -0,0219 =0,0219>tolerância Escolha do Novo Intervalo f(a 0 ).f(x 1 )=(-0,3979).(-0,0219)>0 logo:a 1 =x 1 =2,4798 eb 1 =b 0 =3 32
Cálculo Numérico Falsa Posição Exemplo 08: Cálculo da 2ª aproximação: a 1 =2,4798b 1 =3 f(a 1 ) =-0,0219<0 f(b 1 ) =0,4314 >0 x 2 = [2,4798.0,4314 3.(-0,0219)] = 2,5049 Teste de Parada [0,4314 (-0,0219)] f(x 2 ) = -0,0011 = 0,0011< tolerância Escolha do Novo Intervalo f(a 1 ).f(x 2 )=(-0,0219).(-0,0011)>0 logo: a 2 =x 2 =2,5049 eb 2 =b 1 =3 33
Cálculo Numérico Falsa Posição Exemplo 08: Cálculo da 3ª aproximação a 2 = 2,5049b 2 =3 f(a 2 ) = -0,0011 < 0 f(b 2 ) = 0,4314 > 0 x 3 = [2,5049.0,4314 3.(-0,0011)] = 2,5061 Teste de Parada [0,4314 (-0,0011)] f(x 3 ) = -7,0118.10-5 = 7,0118.10-5 < tol 34
Cálculo Numérico Falsa Posição Exemplo 08: f(x) = xlogx - 1 k a k b k f(a k ) f(b k ) x k+1 f(x k+1 ) 0 2,000000 3,000000-0,3979000 0,431400 2,4798000-0,021900 1 2,479800 3,000000-0,0219000 0,431400 2,5049000-0,001100 2 2,504900 3,000000-0,0011000 0,431400 2,5061000-0,000070 ε=0,002 35
Cálculo Numérico Falsa Posição Exemplo 09: Seja a função do Exemplo 07, f(x) = x 3 x 1 Intervalo inicial atribuído: [1, 2] tol =0,002 f(a 0 ) =-1 f(b 0 ) =5 y 4 3 2 1-4 -3-2 -1 0 1 2 3 4 5 x f (x) =3x 2 1 f(a 0 )*f(b 0 ) =-5<0 Sinal da derivada constante (f (a 0 ) = 2e f (b 0 ) = 11) -1-2 -3-4 36
Cálculo Numérico Falsa Posição Exemplo 09: Cálculo da 1ª aproximaçãoa 0 = 1 b 0 = 2 f(a 0 ) =-1<0 f(b 0 ) = 5 >0 x 1 = [1.5 2.(-1)] = 1,16667 [5 (-1)] Teste de Parada f(x 1 ) = -0,5787037 = 0,5787037> tol Escolha do Novo Intervalo f(a 0 ).f(x 1 )=(-1).(-0,5787037)>0 logo: a 1 =x 1 =1,16667 eb 1 =b 0 =2 37
Cálculo Numérico Falsa Posição Exemplo 09: f(x) = x 3 x 1 k a k b k f(a k ) f(b k ) x k+1 f(x k+1 ) 0 1,000000 2,000000-1,0000000 5,000000 1,1666667-0,578704 1 1,166667 2,000000-0,5787037 5,000000 1,2531120-0,285363 2 1,253112 2,000000-0,2853630 5,000000 1,2934374-0,129542 3 1,293437 2,000000-0,1295421 5,000000 1,3112812-0,056588 4 1,311281 2,000000-0,0565885 5,000000 1,3189885-0,024304 5 1,318988 2,000000-0,0243037 5,000000 1,3222827-0,010362 6 1,322283 2,000000-0,0103618 5,000000 1,3236843-0,004404 7 1,323684 2,000000-0,0044039 5,000000 1,3242795-0,001869 ε=0,002 38
Cálculo Numérico Falsa Posição Vantagens: Estabilidade e convergência para a solução procurada; Desempenho regular e previsível; Cálculos mais simples que o método de Newton. 39
Cálculo Numérico Falsa Posição Desvantagens: Lentidão do processo de convergência (requer o cálculo de f(x)em um elevado número de iterações); Necessidade de conhecimento prévio da região na qual se encontra a raiz de interesse (o que nem sempre é possível). 40
Exercício: Encontre uma estimativa para a raiz de f(x) = e x + x, com ε 0,050, usando o método da falsa posição. - + -1-0,5 0