CÁLCULO DE RAÍZES DE EQUAÇÕES NÃO LINEARES Introdução Em diversos campos da Engenharia é comum a necessidade da determinação de raízes de equações não lineares. Em alguns casos particulares, como no caso de polinômio, que são funções algébricas não lineares com propriedades particulares, é possível a solução analítica para o caso de polinômios do 2° grau e certas classes de polinômios de 3º e 4º graus. No caso de funções transcendentais que são funções não lineares e não algébricas a determinação só é possível de forma numérica. x Ex.: f (x ) = e - x ( ) f ( x ) = ln x 2 + sen( x ) Serão apresentados a seguir os principais métodos numéricos para determinação de raízes de equações não lineares. Tais métodos que podem ser divididos em: { { Método da Bisseção; Métodos Fechados Método das cordas; dentre outros ... Método de Newton; Métodos Abertos Método da Secante; e outros ... Seja f(x) uma função não-linear com f(x0) = 0. Encontrar os valore de xo que satisfaçam tal igualdade constitui um problema de determinação das raízes de f(x). Para tanto, são necessárias os seguintes passos: a) Isolar uma raiz, i. e., encontrar um intervalo [a, b], contendo uma única raiz de f(x0) = 0; b) Partindo de uma estimativa inicial da raiz, refiná-la até alcançar a precisão desejada. Isolamento de raízes Teorema 1: Seja f contínua em [a, b]. Se f (a ) ⋅ f (b ) < 0 , então ∃ ε ∈ (a, b) tal que f (ε ) = 0 . Além disso, se f ′( x ) > 0 ou f ′(x ) < 0 ∀ x∈ (a ,b ) , então a raiz é única. Equações Algébricas – Propriedades n −1 n a) Seja p (x ) = a0 + a1 x + L + a n −1 x + a n x uma equação algébrica de grau n (an ≠ 0 ) . Então p( x ) possui n raízes. b) Se os coeficientes são reais, então, as raízes complexas são pares complexos conjugados, de mesma multiplicidade. Limites das raízes n −1 n Consideremos o polinômio p (x ) = a0 + a 1 x + L + a n −1 x + a n x , com an ≠ 0 e ai ∈ R . Seja ε p a maior das raízes positivas de p(x), temos que ε p ≤ L , com: L = 1 + n−k { B onde: K an ÆMaior índice dos coeficientes negativos ÆMáximo módulo dentre os coeficientes negativos B n ainda a seguinte equação auxiliar: p1 ( x ) = x p (1 x ) = 0 , Seja com L1 sendo: 1 ε 1 ,1 ε 2 , L ,1 ε n suas raízes e L1 o limite superior de suas raízes positivas (1 ε p ≤ L1 ∴ ε p ≥ 1 L1 ) . Logo, 1/L1 é o limite inferior das raízes positivas de p(x) (1 L1 ≤ ε p ≤ L ). Seja agora p (x ) = p(− x ) = 0 . Suas raízes são: − ε Sendo − ε (ε < 0 ) a maior das raízes positivas, tem-se: 2 q 1 ,L ,−ε n . q − ε q ≤ L2 ou ε q ≥ − L2 { limite inferior das raízes negativas Por fim, considerando o polinômio: p (x ) = x p(− 1 x ) , tem-se: n 3 − 1 εq ≤ L3 ∴ ε q ≤ − 1 L3 123 limite superior das raízes negativas Exemplo: p(x ) = x 4 − 5 x 3 − 7 x 2 + 29 x + 30 = 0 p1 ( x ) = x 4 p(1 x ) = 1 − 5 x − 7 x 2 + 29 x 3 + 30 x 4 = 0 p 2 ( x ) = p(− x ) = x 4 + 5 x 3 − 7 x 2 − 29 x + 30 = 0 p 3 (x ) = x 4 p (− 1 x ) = 1 + 5 x − 7 x 2 − 29 x 3 + 30 x 4 = 0 para p(x ) : k = 3 , B = 7 ⇒ L = 1 + 4 −3 7 =2 1 7 = 1,483 L1 = 1 + 4 − 2 30 1 L = 0 ,674 1 ⇒ para p1 (x ) : k = 2 , B = 7 29 = 6 ,385 1 para p 2 ( x ) : k = 2 , B = 29 ⇒ L2 = 1 + 4 − 2 ⇒ para p 3 ( x ) : k = 3 , B = 29 29 = 1,967 L3 = 1 + 4 − 3 30 − 1 L = −0 ,508 3 Portanto: 4000 3500 0 ,674 ≤ ε p ≤ 8 − 6 ,385 ≤ ε n ≤ −0 ,508 3000 2500 2000 1500 1000 500 0 -500 -6 -4 -2 0 2 4 6 8 Número de raízes Teorema de Bolzano p( x ) = 0 ; x ∈ (a ,b ) p (a ) ⋅ p (b ) < 0 ⇒ se p (a ) ⋅ p (b ) > 0 ⇒ nº ímpar de raízes nº par de raízes Relações entre raízes e coeficientes (Relações de Girard) n n −1 Seja p (x ) = a n x + a n −1 x + L + a1 x + a0 = 0 na forma fatorada: p( x ) = a n ( x − ε 1 )( x − ε 2 )L ( x − ε n ) = 0 . Efetuando algumas operações algébricas (somas e multiplicações) e igualando os coeficientes dos termos de mesmo expoente, obtemos as seguintes relações: ε 1 + ε 2 + L + ε n = − a n −1 a n (ε 1ε 2 + ε 1ε 3 + L + ε 1ε n ) + (ε 2 ε 3 + L + ε 2 ε n ) + L + ε n −1ε n = a n −2 a n ε 1ε 2 ε 3 + L L L + ε n − 2 ε n −1 ε n = − a n − 3 a n M ε 1ε 2ε 3 L L ε n = (−1) n a0 an Equações Transcedentes: Funções de Naturezas Distintas Isolamento de raízes – Método gráfico Exemplo: f ( x ) = e x − sen( x ) − 2 Outra forma: f ( x ) = g (x ) − h( x ) = 0 g (x ) = e x h( x ) = sen( x) + 2 Exatidão da Raiz Teorema: Seja ε uma raiz exata de f ( x ) = 0 e x n uma aproximação sua. Seja ainda: m = mín f ′( x ) a ≤ x ≤b i.e.: f ′(x ) ≥ m > 0 , ∀ b ≤ x ≤ a . Então: x n − ε ≤ f (x n ) m Prova: De acordo com o teorema do valor médio, tem-se: f ( x n ) − f (ε ) = ( x n − ε ) ⋅ f ′(c ) , sendo ε < c < x n f ( x n ) − f (ε ) = x n − ε ⋅ f ′(c ) ; f (ε ) = 0 f ′(c ) = f (x n ) xn − ε Logo: x n − ε ≤ ≥m f (x n ) m Como o cálculo da derivada, para determinação de m nem sempre é possível, costuma-se usar um dos critérios abaixo, para teste de convergência: ∈ { 1º) f ( x n ) ≤ tolerância prefixada 2º) x n − x n −1 ≤ ∈ xn − xn−1 ≤∈ 3º) xn Método da Bisseção Seja f ( x ) contínua no intervalo [a ,b] , com f (a ) ⋅ f (b ) < 0 , conforme mostra o gráfico a seguir: Divide-se o intervalo ao meio, definindo o ponto x0 e calcula-se o valor de f ( x0 ) , comparando o seu sinal com f (a ) e com f (b ) . Concentra-se a atenção naquele subintervalo com f ( xi ) ⋅ f (x f ) < 0 . O processo é repetido até se alcançar a convergência. • O método possui uma taxa de convergência linear; • Sempre converge para uma solução, e; • Possui fácil implementação computacional. Algoritmo: 1 - Encontrar xi e x f , tal que f ( xi ) f (x f ) < 0 ; 2 - Determinar xm = xi + x s ; 2 3- Comparar o sinal da função em x m 3.1 - Se f ( x m ) = 0 então x m é a raiz da função, pare os cálculos 3.2 - Se f ( xi ) f ( x m ) < 0 a raiz está no subintervalo [xi , x m ] ; assim o x f = x m e xi permanece [ ] Caso contrário a raiz está no subintervalo x m , x f ; assim xi = x m e x f permanece; 4 - Retornar para o passo 2 e calcular o novo x m ; 5 - Verificar se o tamanho do intervalo é inferior à precisão desejada. Caso isso não aconteça, retornar ao passo 3. 6 - Apresentar o resultado do cálculo. −x -2 Ex.: Determine a raiz de f ( x ) = e − x com tol = 10 , xi = 0 e x f = 1 . Já que: xi − x f = 1 − 0 > tol , ,calcular: xm = xi + x f 2 = 0 ,5 Como f ( xi ). f ( x m ) = f (0 ). f (0 ,5 ) = 0 ,10653 > 0 , então descartar xi = 0. Como f ( x m ). f (x f ) = f (0 ,5 ). f (1) < 0 e 1 − 0 ,5 > tol xi =← x m e calcular novamente xm = 0 ,5 + 1 = 0 ,75 2 Como f ( xi ). f ( x m ) = f (0 ,5 ). f (0 ,75 ) < 0 e 0 ,75 − 0 ,5 > tol então x f =← x m e calcular novamente: xm = 0 ,5 + 0 ,75 = 0 ,625 2 Como f ( xi ). f ( x m ) = f (0 ,5 ). f (0 ,625 ) = −0 ,01 < 0 e 0 ,625 − 0 ,5 > tol então x f =← x m e calcular novamente: xm = 0 ,5 + 0 ,625 = 0 ,5625 2 Como f (0 ,5625). f (0 ,625) < 0 e 0 ,625 − 0 ,5625 < tol Então x m = raiz = 0 ,5625 Convergência Na n-ésima iteração, o comprimento do intervalo a considerar é: b−a 2n Para o 1º subintervalo: x0 − a = b−a 21 Para o 2º subintervalo: x1 − x0 = Generalizando: x n − x n −1 = b−a 2 n +1 Como x n − x n −1 ≤ ∈ tem-se: ou: n ≥ b−a 22 b−a ≤∈ 2 n +1 ln[(b − a ) ∈] −1 ln( 2 ) Como b−a lim x n − x n −1 = lim n +1 = 0 , tem-se que o processo n →∞ n →∞ 2 converge, i. e., x n = x n −1 = ε , pois f ( x n ) ⋅ f ( x n −1 ) ≤ 0 Método das Cordas Aplica-se a uma função contínua f ( x ) com raiz única ε ∈ [a ,b] , com f ′′(x ) com sinal constante. (1) (2) Realiza-se uma interpolação linear entre os pontos extremos do intervalo e calcula-se a raiz ( x1 ) da reta interpoladora. (x1 , f (x1 )) substituirá o ponto com ordenada de mesmo sinal que f (x1 ) , a fim de repetir o processo, até que haja convergência. x1 − a b−a = − f (a ) f (b ) − f (a ) ou: b − x1 b−a b−a x = b − ⋅ f (b ) = 1 f (b ) f (b ) − f (a ) ⇔ f (b ) − f (a ) (1) (2) Para a figura (1), tem-se: x1 = a − f (a ) ⋅ (a − b ) f (a ) − f (b ) → xn+1 = xn − f ( xn ) ⋅ ( xn − b ) f ( xn ) − f (b ) Para a figura (2), tem-se: x1 = b + f (b ) ⋅ (b − a ) f (a ) − f (b ) → xn+1 = xn − f ( xn ) ⋅ ( xn − a ) f (xn ) − f (a ) f (x n ) x = x − ⋅ (x n − c ) n Generalizando: n +1 f ( x n ) − f (c ) onde c é um ponto da função onde esta tem o mesmo sinal de sua derivada segunda, i.e., f (c ) ⋅ f ′′(c ) > 0 . Resumindo: • O ponto fixado (a ou b) é aquele onde o sinal da função ( f ( x ) ) coincide com o sinal de sua derivada segunda ( f ′′( x ) ) . • A aproximação xn se faz do lado da raiz ε, onde o sinal da função ( f ( x ) ) segunda ( f ′′( x ) ) . é oposto ao sinal de sua derivada Convergência A aproximação xn+1 estará sempre mais próxima que a anterior xn. Considerando: lim( xn ) = ε ; n→∞ (a < ε < b) tem-se: f ( xn ) lim(xn+1 ) = lim( xn ) − lim ⋅ (a − xn ) n →∞ n →∞ n→∞ f (a ) − f ( x ) n ↓ ε ↓ = ε − f (ε ) ⋅ (a − ε ) f (a ) − f (ε ) ⇒ f (ε ) = 0 Portanto, como a raiz é única, ε = ε e o processo converge. Método de Newton Interpretação Gráfica Dedução pela geometria: f ′( xi ) = f ( xi ) − 0 x i − x i +1 x i +1 = x i − f ( xi ) f ′( xi ) Dedução pela série de Taylor: 2 ( xi +1 − xi ) f (xi +1 ) = f (xi ) + f ′( xi )(xi +1 − xi )+ f ′′( xi ) +K 2! truncando a série e considerando f ( xi +1 ) ≈ 0 então 0 ≈ f ( xi ) + f ′( xi )(xi +1 − xi ) obtendo-se: x i +1 = x i − f ( xi ) f ′( xi ) Observações: • O método pode divergir caso existam pontos de máximo ou mínimo da função no intervalo de busca. • Se a função possuir múltiplos zeros, a convergência tornar-se-á lenta. −x Ex.: Determine a raiz da equação: e − x = 0 , pelo método de Newton. f ′( x ) = −e −x − 1 , xi +1 e − xi − xi = xi − ; considere i = 0 , x0 = 0 − e − xi − 1 Iterações xi |ε| % 0 0 100 1 0.50000000 11.8 2 0.56631103 0.147 3 0.56714316 0.000022 4 0.56714329 < 10-8 Ex.: (Exemplo de convergência lenta do método de Newton), cálculo da 10 raiz real positiva da equação: x - 1 = 0 , (Considere x0 = 0.5 ). Iterações xi 0 0.5 1 51.65 2 46.485 3 41.8365 4 37.65285 5 33.887565 Método da Secante É uma modificação do método de Newton. A derivada é substituída por uma estimada de forma numérica. f ′(xi ) ≈ f ( x i −1 ) − f ( x i ) x i −1 − x i Interpretação Gráfica do Método: Substituindo a estimativa numérica da derivada na expressão iterativa do método de Newton, tem-se: x i +1 = x i − f ( xi )( xi −1 − xi ) f ( x i −1 ) − f ( x i ) -x Ex.: Determine a raiz da equação f ( x ) = e - x ; xr = 0.56714329 . 1a iteração, x-1 = 0 , x0 = 1 , f (x-1 ) = 1.0 , f ( x0 ) = - 0.63212 x1 = 1 − − 0.63212(0 − 1) = 0.61270 1 − (− 0.63212 ) 2a iteração, x0 = 1 , x1 = 0.61270 , f ( x0 ) = - 0.63212 , f ( x1 ) = - 0.07081 x 2 = 0.61270 − − 0.63212(1 − 0.61270 ) = 0.5684 − 0.63212 − (− 0.07081) O método converge um pouco mais lentamente que o método de Newton e com mais esforço computacional.