Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução aos métodos numéricos Doherty Andrade doherty@uem.br 2012 Indice 1 Alguns resultados básicos 1 1.1 Revendo Cálculo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Revendo Álgebra Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Ponto Fixo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4 Resumo do capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2 Erros 16 2.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2 Aritmética de ponto flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3 Erro absoluto e erro relativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4 Dígitos Significativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5 Propagação de Erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.6 Condicionamento e Estabilidade . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.7 Resumo do capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3 Equações não lineares 28 3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2 O método da bissecção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.3 Usando Maple: o método da bissecção . . . . . . . . . . . . . . . . . . . . . . 32 3.4 Métodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.5 O método do ponto fixo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.6 Usando Maple: o método do ponto fixo . . . . . . . . . . . . . . . . . . . . . . 39 3.7 O método de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.8 Usando Maple: o método do Newton-Raphson . . . . . . . . . . . . . . . . . . 47 3.9 O método da secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.10 Usando Maple: o método da secante . . . . . . . . . . . . . . . . . . . . . . . 52 3.11 Como escolher o melhor método . . . . . . . . . . . . . . . . . . . . . . . . . . 53 i D. Andrade Cálculo Numérico ii 3.12 O Método de Newton-Raphson para raízes múltiplas . . . . . . . . . . . . . . 53 3.13 Raízes de polinômios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.14 Resumo do capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4 Sistemas lineares: métodos diretos 65 4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.2 O método de eliminação de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.3 Usando Maple: sistema triangular . . . . . . . . . . . . . . . . . . . . . . . . 71 4.4 Estratégias de pivoteamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.5 Usando Maple: o método de eliminação de Gauss . . . . . . . . . . . . . . . . 74 4.6 Decomposição LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.7 Usando Maple: decomposição LU . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.8 Decomposição Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.9 O Algoritmo para a decomposição Cholesky . . . . . . . . . . . . . . . . . . . 84 4.10 Usando Maple: decomposição Cholesky . . . . . . . . . . . . . . . . . . . . . 87 4.11 Resumo do capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 5 Sistemas lineares: métodos iterativos 91 5.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.2 O método de Gauss-Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 5.3 O método de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.4 Critérios de Parada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 5.5 Estudo da convergência dos métodos iterativos . . . . . . . . . . . . . . . . . 106 5.6 Usando Maple: o método de Gauss-Jacobi . . . . . . . . . . . . . . . . . . . . 109 5.7 Usando Maple: o método de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . 110 5.8 Resumo do capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 6 Sistemas de equações não lineares 113 6.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.2 O método de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.3 Caso Particular: F = (f, g) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 6.4 Usando Maple: o método Newton-Raphson . . . . . . . . . . . . . . . . . . . 119 6.5 O método do ponto Fixo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 6.6 Resumo do capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 7 Interpolação Polinomial 122 7.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 7.2 Existência do polinômio interpolador . . . . . . . . . . . . . . . . . . . . . . . 123 D. Andrade Cálculo Numérico iii 7.3 Métodos de Interpolação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 7.4 Usando Maple: o método de Lagrange . . . . . . . . . . . . . . . . . . . . . . 129 7.5 O Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 7.6 Usando Maple: interpolação pelo método de Newton . . . . . . . . . . . . . . 137 7.7 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 7.8 O Fenômeno Runge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 7.9 Resumo do capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 8 Aproximação por quadrados mínimos 147 8.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 8.2 Caso discreto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 8.3 Caso contínuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 8.4 Usando Maple: O método dos quadrados mínimos contínuo . . . . . . . . . . 159 8.5 Polinômios ortogonais e o método dos quadrados mínimos . . . . . . . . . . . 160 8.6 Resumo do capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 9 Integração Numérica 168 9.1 Preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 9.2 Fórmulas de Newton-Cotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 9.3 Regra dos Trapézios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 9.4 Regra de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 9.5 Fórmulas compostas: Trapézios e Simpson . . . . . . . . . . . . . . . . . . . 173 9.6 Usando Maple: regras dos trapézios e Simpson . . . . . . . . . . . . . . . . . 176 9.7 Quadraturas de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 9.8 Usando Maple: quadratura de Gauss . . . . . . . . . . . . . . . . . . . . . . . 190 9.9 Resumo do capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 10 Métodos numéricos para EDOs 194 10.1 Introdução às EDOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 10.2 O método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 10.3 O método de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 10.4 Métodos de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 10.5 Métodos numéricos para EDOs: Multistep . . . . . . . . . . . . . . . . . . . . 215 10.6 Usando Maple: métodos para EDOS . . . . . . . . . . . . . . . . . . . . . . . 220 10.7 Resumo do capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 D. Andrade Cálculo Numérico iv 11 Problemas de Fronteira 227 11.1 Introdução . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 11.2 Problemas de valor de fronteira de ordem 2 . . . . . . . . . . . . . . . . . . . 227 11.3 O método das diferenças finitas . . . . . . . . . . . . . . . . . . . . . . . . . . 230 11.4 Método do shooting linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 11.5 Usando Maple: Sturm-Liouville . . . . . . . . . . . . . . . . . . . . . . . . . . 240 11.6 Resumo do capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 12 Método das diferenças finitas para EDPS 245 12.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 12.2 Exemplos de EDP’s mais comuns . . . . . . . . . . . . . . . . . . . . . . . . . 245 12.3 Condições de contorno e iniciais. . . . . . . . . . . . . . . . . . . . . . . . . . 246 12.4 EDP’s lineares de segunda ordem . . . . . . . . . . . . . . . . . . . . . . . . . 247 12.5 Equação de Poisson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 12.6 A equação do calor unidimensional . . . . . . . . . . . . . . . . . . . . . . . . 254 12.7 Equação da onda unidimensional: um caso simples . . . . . . . . . . . . . . 265 12.8 A equação da onda unidimensional: complicando um pouquinho mais . . . . 268 D. Andrade Cálculo Numérico v c© 2010, 2011, 2012 Doherty Andrade All rights reserved. Este texto pode ser livremente distribuído para fins educacionais, mas nunca modificado. Este texto pode ser livremente distribuído para fins educacionais, mas nunca modificado. O autor não pode ser responsabilizado por eventuais erros ou imprecisões contidos no texto ou nos procedimentos em código Maple apresentados nele. Os procedimentos em código Maple apresentados aqui no texto são apenas para fins didáticos e para auxiliar a compreensão da teoria, estes foram testados com cuidado mas não há garantias de utilização para todos os fins. O autor não oferece qualquer garantia sobre os procedimentos e suas aplicações. Introdução Esse texto é destinado a um curso introdutório aos métodos numéricos. É indicado para estudantes de engenharias, matemática, ciência da computação, física e ciências exatas em geral. Procuramos facilitar o entendimento dos métodos incluindo uma grande variedade de exemplos e exercícios. Além disso, apresentamos códigos em Maple para os métodos numéricos mais comuns. Esses códigos permitem ao estudante se familiarizar com o software e realizar novos exemplos ou experimentar os exemplos apresentados com novas aproximações iniciais, com outra tolerância ou outro passo. A ênfase nesse texto é a compreensão dos métodos, isto é, por que os métodos apresen- tados funcionam. As demonstrações explicam porque os métodos funcionam, sem esse entendimento o aproveitamento desse material fica prejudicado. Ao estudante que sentir alguma dificuldade com as justificativas ou demonstrações, sugerimos passar adiante e quando se sentir seguro e com mais maturidade deve retornar a elas. vi 1 Alguns resultados básicos Neste capítulo apresentamos os principais resultados necessários para o desenvolvi- mento do texto. 1.1 Revendo Cálculo Sequências Uma sequência (infinita) de números reais é uma função cujo domínio é o conjunto dos números naturais: x : N→ R. É usual representar a imagem x(n) por xn. Também é usual representar uma sequência por (x1, x2, x3, . . . , xn, . . .) ou resumidamente por (xn). Uma subsequência de uma sequência (xn) é a restrição de (xn) a um subconjunto infinito N ′ de N. Dizemos que a sequência (xn) é: (a) limitada superiormente se existe M ∈ R tal que xn ≤M, ∀n. 1 D. Andrade Cálculo Numérico 2 (b) limitada inferiormente se existe m ∈ R tal que m ≤ xn, ∀n. (c) limitada se existe K ≥ 0 tal que |xn| ≤ K, ∀n. Dizemos a uma sequência (xn) converge para o número real L, se a diferença |xn − L|, a partir de algum índice n0, puder ser feita tão pequena quanto desejado. Em termos matemáticos, dizemos isto com a seguinte definição: Dizemos que a sequência (xn) converge para o número real L, se dado um número ε > 0 qualquer existe um número natural n0 tal que |xn − L| < ε, ∀n ≥ n0. Usamos as notações lim n→∞ xn = L ou xn → L, para dizer que a sequência (xn) converge para L. Se a sequência não é convergente, dizemos que a sequência é divergente. Dizemos que a sequência (xn) é crescente se verifica xn ≤ xn+1 para todo n ≥ 1 natural. Dizemos que a sequência (xn) é decrescente se verifica xn ≥ xn+1 para todo n ≥ 1 natural. Chamamos de sequência monótona toda sequência que é crescente ou decrescente. O seguinte resultado estabelece uma relação entre os conceitos de sequência monótona e sequência convergente. Teorema 1.1.1 Toda sequência monótona e limitada é convergente. Uma sequência é chamada sequência de Cauchy se a partir de algum índice n0 os seus termos estão tão próximos, entre si, quanto desejado. Em termos matemáticos, dizemos que uma sequência (xn) é de Cauchy se dado ε > 0 existe n0 natural tal que se m,n ≥ n0 então tem-se |xn − xm| < ε. Lema 1.1.2 Toda sequência de Cauchy é limitada. Lema 1.1.3 Toda sequência convergente é de Cauchy. Teorema 1.1.4 Em R toda sequência de Cauchy é convergente. Definição 1.1.5 (Pontos de acumulação) Seja X ⊂ R. Dizemos que um ponto a ∈ R é um ponto de acumulação do conjunto X quando todo intervalo de centro a contem algum ponto de X, diferente de a. Em outras palavras, ∀ε > 0, ∃x ∈ X ; 0 < |x− a| < ε. D. Andrade Cálculo Numérico 3 O conjunto de todos os pontos de acumulação de X será denotado por X ′, chamado o derivado do conjunto X. Um ponto que não é de acumulação é chamado isolado. O conceito de ponto acumulação para X ⊂ Rn é análogo. Teorema 1.1.6 Seja X ⊂ R e a ∈ R. São equivalentes: a) a é ponto de acumulação de X. b) existe uma sequência (xk) de pontos de X, como xk 6= a, tal que lim xk = a. c) todo intervalo aberto de centro a contém uma infinidade de pontos de X. Limite de funções Teorema 1.1.7 Seja f : X ⊂ R→ R e a um ponto de acumulação de X. Então, lim x→a f(x) = b se, e somente se, para todo ε > 0, existe δ > 0 tal que 0 < |x− a| < δ, x ∈ X implica que |f(x)− b| < ε. Teorema 1.1.8 (Teorema do Confronto ou Sanduíche) Seja f, g, h : X → R e a ponto de acumulação deX. Suponha que f(x) ≤ g(x) ≤ h(x), ∀x ∈ X. Se lim x→a f(x) = lim x→a h(x) = L, então lim x→a g(x) = L. Seja X ⊆ R. Dizemos que a é um ponto aderente a X se existe uma sequência (xn) de pontos de X que converge para a. Dizemos que o conjunto X é fechado se contém todos os seus pontos de aderência. Ao conjunto de todos os pontos de aderência deX chamamos de o fecho deX e denotamos por X. Note que todo ponto de acumulação de X é também um ponto de aderência de X. Um conjunto X ⊆ R é dito compacto, se for limitado e fechado. Os intervalos [a, b] são conjuntos compactos de R. Funções contínuas D. Andrade Cálculo Numérico 4 Definição 1.1.9 1 Seja f : X ⊂ R→ R. Dizemos que f é contínua em a ∈ X quando ∀ε > 0, ∃δ > 0; |x− a| < δ, x ∈ X ⇒ |f(x)− f(a)| < ε. Ou equivalentemente, dizemos que f é contínua em a quando a) f está definida em a, e b) lim x→a f(x) = f(a). Teorema 1.1.10 (Teorema do valor intermediário) Seja f : [a, b] → R contínua tal que f(a) < 0 < f(b). Então, existe c ∈ (a, b) tal que f(c) = 0. Resultado análogo para o caso em que f(b) < 0 < f(a). -1 0 1 2 3 0.6 0.8 1 1.2 1.4 1.6 1.8 2 x TVI Figura 1.1: Ilustração do Teorema do valor intermediário Seja f : X → X. Se existe c ∈ X tal que f(c) = c dizemos que c é um ponto fixo para f . Teorema 1.1.11 Toda aplicação contínua f : [a, b]→ [a, b] tem pelo menos um ponto fixo. 1aqui supõe-se implicitamente que a ∈ X seja um ponto de acumulação de X . D. Andrade Cálculo Numérico 5 Demonstração: Defina a seguinte aplicação g : [a, b] → R dada por g(x) = f(x) − x. Assimg mede a distância orientada entre x e sua imagem f(x). Um ponto fixo de f é um ponto x onde g(x) = 0. Se um dos extremos do intervalo é ponto fixo nada temos a provar. Então suponha que nenhum deles seja ponto fixo. Como f(a) e f(b) estão no intervalo [a, b] segue que a < f(a) e f(b) < b e portanto g(a) > 0 e g(b) < 0. Como g é contínua, existe x0 ∈ [a, b] tal que g(x0) = 0 e portanto f(x0) = x0. � Definição 1.1.12 Seja f : X → R uma função. Dizemos que f é uniformemente contínua sobre X se para todo ε > 0, existe δ > 0 tal que se |x− y| < δ e x, y ∈ X, então |f(x)− f(y)| < ε. A definição diz que o mesmo δ serve para cada par de pontos x, y ∈ X. Teorema 1.1.13 Seja f : [a, b] → R uma função contínua. Então, f é uniformemente contínua sobre [a, b]. Funções deriváveis Dizemos que f : R→ R é derivável em x, e sua derivada é f ′(x), se f ′(x) = lim h→0 f(x+ h)− f(x) h se o limite existe. Se f ′(x) existe para todo x do seu domínio, dizemos que f é derivável. Teorema 1.1.14 Se f tem derivada em x = a, então f é contínua em x = a. Teorema 1.1.15 (Teorema de Rolle) Seja f : [a, b] → R contínua e derivável em (a, b). Se f(a) = f(b) = 0, então existe x0 ∈ (a, b) tal que f ′(x0) = 0. Outra versão do Teorema de Rolle é dada a seguir, onde a condição f(a) = f(b) = 0 é retirada. Teorema 1.1.16 (Teorema de Rolle) Seja f : [a, b] → R contínua e derivável em (a, b). Se f(a) = f(b), então existe x0 ∈ (a, b) tal que f ′(x0) = 0. D. Andrade Cálculo Numérico 6 Existe uma versão mais geral do Teorema de Rolle, que apresentamos a seguir, cuja prova pode ser feita por indução. Teorema 1.1.17 Seja f : [a, b] → R contínua e n vezes derivável em (a, b). Se existem x0, x1, . . . , xn pontos em [a, b] tais que f(xi) = 0, i = 0, 1, . . . , n, então existe c ∈ (a, b) tal que f (n)(c) = 0. Teorema 1.1.18 (Valor Médio) Seja f : [a, b] → R contínua e derivável em (a, b). Existe c ∈ (a, b) tal que f ′(c) = f(b)− f(a) b− a . Integrais Teorema 1.1.19 (Primeiro teorema fundamental) Seja f : [a, b] → R contínua e F uma primitiva de f em [a, b]. Então,∫ b a f(x)dx = F (b)− F (a). Teorema 1.1.20 (Segundo teorema fundamental) Seja f : [a, b] → R contínua e x ∈ (a, b). Então, d dx ∫ x a f(t)dt = f(x). Teorema 1.1.21 (Teorema do valor Médio para integrais) Seja f : [a, b] → R con- tínua e g : [a, b]→ R integrável que não muda de sinal em (a, b). Então, existe c ∈ (a, b) tal que ∫ b a f(x)g(x)dx = f(c) ∫ b a g(x)dx. Teorema de Taylor Seja f : I → R uma função n vezes derivável. O n-ésimo polinômio de Taylor de f no ponto a ∈ I é o polinômio p(x) = n∑ 0 f (k)(a) k! (x − a)k de grau menor do que ou igual a n. Note que p(k)(a) = f (k)(a). D. Andrade Cálculo Numérico 7 Teorema 1.1.22 (Taylor com resto infinitesimal) Seja f : I → R n vezes derivável no ponto a ∈ I. A funçao definida por r : J → R onde J é o intervalo J = {h ∈ R; a+ h ∈ I} pela igualdade f(a+ h) = f(a) + f ′(a) 1! h+ · · ·+ f (n)(a) n! hn + r(h) satisfaz lim h→0 r(h) hn = 0. Reciprocamente, se p(h) é um polinômio de grau ≤ n tal que r(h) = f(h)− p(h) cumpre lim h→0 r(h) hn = 0, então p(h) é o polinômio de Taylor de f em a. Teorema 1.1.23 (Taylor com resto de Lagrange) Seja f : [a, b]→ R n vezes derivável em (a, b) com f (n−1) contínua em [a, b]. Existe c ∈ (a, b) tal que f(b) = f(a) + f ′(a) 1! (b− a) + · · ·+ f (n−1)(a) (n− 1)! (b− a) n + f (n)(c) n! (b− a)n Teorema 1.1.24 (Taylor com resto integral) Se f : I → R possui a n + 1-é sima derivada contínua no intervalo de extremos a e a+ h pertencentes a I, então f(a+ h) = f(a) + f ′(a) 1! h + · · ·+ f (n)(a) n! hn + ∫ 1 0 (1− t)n n! f (n+1)(a+ th)hn+1dt. Teorema de Taylor para funções de várias variáveis Agora vejamos o caso f : U ⊂ Rn → Rm. Vamos no fixar, por razões óbvias a m = 1. Para simplificar tomemos n = 2. Seja P (a, b) e H = (h, k) tal que P + tH ∈ U onde t ∈ [0, 1]. Seja g(t) = f(P + tH) = f(a+ th, b+ tk). Se g tem n derivadas contínuas, então g(t) = g(0) + g′(0) 1! t+ · · ·+ g (n−1)(0) (n− 1)! t n−1 + g(n)(τ) n! tn. D. Andrade Cálculo Numérico 8 Pela Regra da cadeia, temos g′(t) = (H · ∇) f(P + tH). e g(2)(t) = (H · ∇)2 f(P + tH). Em geral, g(k)(t) = (H · ∇)k f(P + tH). Teorema 1.1.25 (Taylor para n variáveis) Seja f : U ⊂ Rn → R definida no aberto U e tendo derivadas parciais contínuas até ordem n. Então, existe τ entre 0 e 1 tal que f(P +H) = f(P ) + (H · ∇)f(P ) + · · ·+ (H · ∇) n−1 (n− 1)! f(P ) + (H · ∇)n n! f(P + τH). No caso de duas variáveis, a fórmula de Taylor fica: f(a+ h, b+ k) = f(a, b) + ( h ∂ ∂x + k ∂ ∂y ) f(a, b) + 1 2! ( h ∂ ∂x + k ∂ ∂y )2 f(a, b) + · · ·+ 1 (n− 1)! ( h ∂ ∂x + k ∂ ∂y )n−1 f(a, b) + 1 n! ( h ∂ ∂x + k ∂ ∂y )n f(a+ τh, b+ τk) Jacobiana e Hessiana Lembramos que a derivada de F : Ω ⊂ Rn → Rm dada por F (x1, x2, . . . , xn) = (f1(x1, x2, . . . , xn), f2(x1, x2, . . . , xn), . . . , fm(x1, x2, . . . , xn)) é a matriz Jacobiana de F JF (X) = ∂f1 ∂x1 ∂f1 ∂x2 . . . ∂f1 ∂xn ∂f2 ∂x1 ∂f2 ∂x2 . . . ∂f2 ∂xn . . . . . . . . . . . . ∂fm ∂x1 ∂fm ∂x2 . . . ∂fm ∂xn . D. Andrade Cálculo Numérico 9 A matriz Hessiana de f : Ω ⊂ Rn → R é a matriz simétrica de ordem n dada por Hf(X) = ∂2f ∂x21 ∂2f ∂x1∂x2 . . . ∂2f ∂x1∂xn ∂2f ∂x2∂x1 ∂2 ∂x22 . . . ∂2f ∂x2∂xn . . . . . . . . . . . . ∂2f ∂xn∂x1 ∂2f ∂xn∂x2 . . . ∂2f ∂x2n . Máximos e Mínimos Definição 1.1.26 Seja f : I → R e x0 ∈ I. Dizemos que x0 é ponto de máximo absoluto de f em I, se f(x) ≤ f(x0), para todo x ∈ I. Nesse caso, f(x0) é o valor máximo absoluto de f . Dizemos que x0 é ponto de mínimo absoluto de f em I, se f(x0) ≤ f(x), para todo x ∈ I. Nesse caso, f(x0) é o valor mínimo absoluto de f . Definição 1.1.27 Seja f : I → R e x0 ∈ X. Dizemos que x0 é ponto de máximo local de f em I, se existe um intervalo aberto J ⊂ I tal que f(x) ≤ f(x0), para todo x ∈ J . Nesse caso, f(x0) é um valor máximo local de f . Dizemos que x0 é ponto de mínimo local de f em I, se existe um intervalo aberto J ⊂ I tal que f(x0) ≤ f(x), para todo x ∈ J . Nesse caso, f(x0) é um valor mínimo local de f . Máximos e mínimos absolutos também são chamados de extremos globais e máximos e mínimos locais são chamados de extremos locais. Teorema 1.1.28 Seja f : [a, b]→ R contínua e derivável em (a, b). Suponha que f assume seu valor máximo em x0 ∈ (a, b). Então, f ′(x0) = 0. Um resultado análogo vale quando f assume o seu mínimo em algum ponto do interior do domínio. Se f assume máximo ou mínimo no interior de seu domínio, então a derivada se anula nesses pontos. Um ponto x0 tal que f ′(x0) = 0 é chamado de ponto crítico de f . Como vimos acima no teorema 1.1.28, os pontos de máximo e mínimo locais de uma função são pontos críticos. Mas existem pontos críticos que não são pontos de máximo ou mínimo locais. Esse pontos são chamados pontos de inflexão, a função f(x) = x3 tem em x = 0 um ponto de inflexão. D. Andrade Cálculo Numérico 10 Teorema 1.1.29 (Teste da derivada segunda) Seja f : [a, b] → R uma função con- tínua em [a, b] e duas vezes derivável em (a, b). Seja c ∈ (a, b) um ponto crítico de f . a) Se f ′′(c) < 0, então f tem um máximo local em x = c. b) Se f ′′(c) > 0, então f tem um mínimo local em x = c. Teorema 1.1.30 (Teste da derivada segunda) Seja f : U ⊂ R2 → R de classe C2 e (x0, y0) ∈ U um ponto crítico de f . a) Se o determinante da matriz Hessiana H(x0, y0) > 0 e ∂2f(x0, y0) ∂x2 > 0, então (x0, y0) é ponto de mínimo local. b) Se o determinante da matriz Hessiana H(x0, y0) > 0 e ∂2f(x0, y0) ∂x2 < 0, então (x0, y0) éponto de máximo local. c) Se o determinante da matriz Hessiana H(x0, y0) < 0, então (x0, y0) é ponto de sela. 1.2 Revendo Álgebra Linear Vamos denotar por Rn o espaço vetorial real de dimensão n cujos elementos são −→v = (x1, x2, . . . , xn), onde xi ∈ R. Vamos representar −→v simplemente por v. Outros exemplos de espaços vetoriais reais (com as operações usuais): (a) o espaçoMm×n das matrizes reais de dimensão m×n. Esse espaço tem dimensãomn. (b) o espaço dos polinômios com coeficientes reais p(x) = anxn + an−1xn−1 + · · ·+ a1x + a0 de grau menor do que ou igual a n. Esse espaço tem dimensão n+ 1. (b) o espaço das funções contínuas f : [a, b]→ R. Esse espaço tem dimensão infinita. Sistemas lineares Uma equação linear nas variáveis x1, x2, . . . , xn é uma equação da forma a1x1 + a2x2 + a3x3 + · · ·+ anxn = b onde os números a1, . . . , an ∈ R são os coeficientes da equação linear e b ∈ R é o termo constante. Uma n-upla (s1, s2, . . . , sn) ∈ Rn é uma solução da equação se substituindo os números s1, . . . , sn nas variáveis torna a igualdade verdadeira: a1s1 + a2s2 + . . .+ ansn = b. D. Andrade Cálculo Numérico 11 Um sistema de equações lineares é um conjunto de equações lineares a1,1x1 + a1,2x2 + · · ·+ a1,nxn = b1 a2,1x1 + a2,2x2 + · · ·+ a2,nxn = b2 ... ... · · · ... ... am,1x1 + am,2x2 + · · ·+ am,nxn = bm tem solução (s1, s2, . . . , sn) se a n-upla é uma solução de todas as equações do sistema. Se os elementos bi = 0, i = 1, 2, . . . , m, o sistema é chamado de sistema homogêneo. O sistema de equações lineares acima pode ser reescrito na forma matricial a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n ... · · · · · · ... am,1 am,2 · · · am,n x1 x2 ... xn = b1 b2 ... bm A matriz dada por a1,1 a1,2 · · · a1,n b1 a2,1 a2,2 · · · a2,n b2 ... · · · · · · ... ... am,1 am,2 · · · am,n bm é chamada de matriz ampliada do sistema. Determinar o conjunto de todas as soluções é resolver o sistema. Um dos métodos uti- lizados para resolver um sistema de equações lineares emprega operações elementares sobre as linhas (ou colunas) da matriz ampliada do sistema. Operações elementares São operações elementares: (a) Uma linha Li pode ser substituída pela linha Li multiplicada por uma constante k 6= 0. Indicamos essa operação por Li ← kLi. (b) A linha Li pode ser substituída pela soma da linha Li a com a linha Lj . Indicamos essa operação por Li ← Li + Lj . (c) A linha Li pode ser permutada com a linha Lj . D. Andrade Cálculo Numérico 12 Indicamos essa operação por Li ↔ Lj . A utilização adequada dessas propriedades permite obter sistemas lineares equivalentes mais simples de serem resolvidos. Até mesmo o determinante de uma matriz pode ser obtido via operaçoes elementares. Dizemos que uma matriz quadrada L = (lij) de ordem n×n é triangular inferior se lij = 0 para todo i = 1, 2, . . . , j − 1. Dizemos que uma matriz quadrada U = (uij) de ordem n × n é triangular superior se uij = 0 para todo i = j + 1, j + 2, . . . , n. Uma matriz quadrada A é chamada não-singular (ou invertível) se existe uma matriz B tal que AB = BA = I. A matriz B é chamada de a matriz inversa de A, é denotada por A−1. Uma matriz que não admite inversa é chamada de singular. Teorema 1.2.1 Seja A uma matriz não-singular. As propriedades valem: (a) A inversa é única; (b) A−1 é não-singular e (A−1)−1 = A; (c) Se B é também não-singular, então (AB)−1 = B−1A−1. A transposta de uma matriz A = (aij) de ordem n×m é a matriz B = (bij) de ordemm×n tal que bij = aji. A transposta de A é denotada por A′. Uma matriz quadrada A é dita simétrica se A = A′. Determinantes O determinante de uma matriz quadrada A = (aij) de dimensão n× n é definido por detA = ∑ σ sgn(σ)a1σ(1)a2σ(2) . . . anσ(n), onde a soma é estendida a todas as n! permutaçoes σ no conjunto {1, 2, . . . , n} e sgn(σ) é o sinal da permutação σ. Note que da definição acima que em cada fator a1σ(1)a2σ(2) . . . anσ(n) há apenas um ele- mento de cada linha e um único elemento de cada coluna. Matriz de Vandermonde D. Andrade Cálculo Numérico 13 Dados x1, x2, . . . , xn a matriz de Vandermonde é uma matriz quadrada de ordem n dada por V = 1 x1 · · · xn−11 1 x2 · · · xn−12 ... · · · · · · ... 1 xn · · · xn−1n O determinante de uma matriz de Vandermonde tem uma forma simples det V = ∏ i,j, i>j (xi − xj). Note que se os pontos x1, x2, . . . , xn forem distintos, então det V 6= 0. Essa matriz aparece no método dos quadrados mínimos e em interpolação. Dada uma matriz quadrada An×n, para cada k = 1, 2, . . . , n − 1, retirando-se de A as primeiras k linhas e colunas obtemos uma nova matriz Ak denominada submatriz prin- cipal de A. 1.3 Ponto Fixo Seja f : X → X uma aplicação. Dizemos que f tem um ponto fixo x ∈ X se x é tal que f(x) = x. Seja (X, d) um espaço métrico. Dizemos que f : X → X é uma contração se existe 0 ≤ K < 1 tal que d(f(x), f(y)) ≤ Kd(x, y), ∀x, y ∈ X. É fácil ver que toda contração é aplicação uniformemente contínua. O seguinte teorema garante a existência de um único ponto fixo para as contrações. Teorema 1.3.1 (Ponto Fixo das Contrações) Seja (X, d) um espaço métrico completo e f : X → X uma contração. Então, f tem um único ponto fixo. Além disso, a sequência gerada pelo esquema iterativo dado por x0 ∈ X, xn+1 = f(xn), n ≥ 0 converge para o único ponto fixo de f . Embora esse resultado seja enunciado aqui na sua forma mais geral, para aplicações em disciplina da graduação, uma simplificação é suficiente. É o que faremos a seguir, em que usaremos um resultado bem conhecido. D. Andrade Cálculo Numérico 14 Teorema 1.3.2 (Princípio Min-Max) uma aplicação contínua T a valores reais e definida em um conjunto não vazio, limitado e fechado do Rn, assume o seu valor máximo e o seu valor mínimo. Teorema 1.3.3 (Princípio da Contração em Rn) Seja C subconjunto não vazio, limi- tado e fechado do Rn e T : C → C uma contração. Então, T tem um único ponto fixo em C. Isto é, existe x0 ∈ C tal que T (x0) = x0. Demonstração: Defina a plicação f : C → R dada por f(x) = ‖x − T (x)‖. Note que os zeros de f são precisamente os pontos fixos de T . Observamos que |f(x)− f(y)| ≤ (1 + k)‖x− y‖ e assim f é uniformemente contínua. Notamos também que f(T (x)) = ‖T (x)− T (T (x))‖ ≤ k‖x− T (x)‖ = kf(x), ∀x. Como C é limitado e fechado, o princípio Min-Max garante a existência de p ∈ C tais que f(p) ≤ f(x), ∀x ∈ C. Em particular, f(p) ≤ f(T (p)) e portanto, f(p) ≤ f(T (p)) ≤ kf(p). Como k < 1 segue que f(p) = 0 e portanto T (p) = p. � Exercício 1.3.4 Seja f : [a, b]→ R contínua e duas vezes continuamente derivável em [a, b]. Seja xˆ a única raiz de f em (a, b). Mostre que o método definido por xn+1 = g(xn), g(x) = x− f(x) f ′(x) g é uma contração em alguma vizinhança de xˆ. Sugestão: Verifique que g′(xˆ) = 0 e assim existe uma vizinhança de xˆ em que |g′(x)| ≤ k < 1. D. Andrade Cálculo Numérico 15 1.4 Resumo do capítulo Neste capítulo apresentamos os principais resultados teóricos que serão necessários para a compreensão dos métodos apresentados no texto. Dentre os resultados apresentados destacamos: 1. Convergência de sequências; 2. Teorema do valor intermediário; 3. Teorema do ponto fixo; 4. Teorema do valor médio; 5. Teorema de Taylor; 6. Operações elementares em matrizes. 2 Erros 2.1 Introdução No trabalho com métodos numéricos é importante saber que a solução numérica não é solução exata. Portanto, é necessário conhecer o quanto a solução obtida por meio desses métodos está próxima da solução exata. A solução numérica é uma mera aproximação do valor real, não tem valor se não vier acompanhada de alguma informação sobre o seu erro. É preciso ter uma ideia a respeito da distância entre o valor exato e a aproximaçãoconsiderada. Em resumo, é preciso ter alguma informação sobre a qualidade da aproximação. Essa qualidade pode ser expressa pelo erro absoluto ou pelo erro relativo. A precisão da solução numérica pode ser melhorada de várias maneiras e esses conceitos nos ajudarão muito nessa tarefa. 16 D. Andrade Cálculo Numérico 17 2.2 Aritmética de ponto flutuante Um sistema de aritmética de ponto flutuante, representado por F (β, t, emin, emax), é um subconjunto dos números reais F ⊂ R cujos elementos tem a forma: y = ± ( d1 β1 + d2 β2 + d3 β3 + · · ·+ dt βt ) βe = ± (.d1d2d3...dt)βe, onde 0 ≤ di < β, i = 1, 2, . . . , t. A aritmética de ponto flutuante F é caracterizada por quatro números inteiros: base β (binária, decimal, hexadecimal e etc..); a precisão t (número de algarismos da mantissa– aparece depois do ponto); variação do expoente e, inteiro tal que emin ≤ e ≤ emax. Todo computador utiliza algum sistema de aritmética de ponto flutuante para operar com números. A fim de facilitar a interação com o usuário, após os cálculos utilizando a base β os resultados são apresentados em base 10. Vejamos algumas máquinas e seus sistemas de aritmética de ponto flutuante1. Tabela 2.1: Alguns sistemas Sistema β t emin emax IEEE SP 2 24 -126 127 IEEE DP 2 53 -1022 1023 Cray 2 48 -16383 16384 Calculadora HP 10 12 -499 499 IBM 16 6 -64 63 A mantissa é fracionária nesta representação, menor do que 1. A fim de assegurar uni- cidade para a representação para cada y ∈ F , faz-se uma normalização no sistema de forma que d1 6= 0 para y 6= 0. Um número x representado no sistema de aritmética de ponto flutuante é denotado por fl(x). Com a normalização no sistema de ponto flutuante, exige-se que d1 6= 0, para obter uni- cidade na representação, mas infelizmente esta restrição torna impossível representar o zero de modo que este é acrescido ao sistema. Uma maneira natural de representar o zero é com o menor expoente possível da máquina 0.1×βemin . A escolha de uma represen- tação para o zero como sendo uma mantissa nula não é a melhor, pois isto pode acarretar perdas de dígitos significativos corretos em operações. 1O IEEE –Institute of Eletrical and Eletronic Engineers, produz diversos padrões em eletrônica em especial computadores. D. Andrade Cálculo Numérico 18 Um sistema de aritmética de ponto flutuante é um conjunto finito e discreto. A quanti- dade de números normalizados em um tal sistema é igual a 2(β − 1)βt−1(emax − emin + 1) + 1, pois existem duas opções de sinal, β − 1 escolhas para o dígito d1, β opções de escolha para os t − 1 dígitos restantes da mantissa, emax − emin + 1 valores para expoente. O 1 adicionado é devido ao zero. O epsilon da máquina é o menor número positivo ε, em aritmética de ponto flutuante da máquina, tal que 1 + ε > 1. Este número depende do sistema particular da máquina utilizada. Linguagens mais recentes já possuem comandos para determinar-se o valor de ε: em MatLab é eps em Fortran90 é EPSILON. Como o computador e a calculadora realizam cálculos utilizando apenas um número finito de dígitos, os números representáveis em uma máquina são em quantidade finita e portanto no trabalho com métodos numéricos há a necessidade de trabalharmos com uma quantidade finita de dígitos. Há duas formas de efetuarmos o descarte de dígitos excendentes: por arredondamento simétrico ou por truncamento (chopping). Como vimos, em toda máquina o conjunto de números reais representáveis é discreto, assim não é possível representar em uma máquina todos os números de um intervalo [a, b] dado. Se nos foi dado um número x 6= 0 em aritmética de ponto flutuante de base 10, então ele tem a forma x = ±0.a1a2...atat+1...an × 10e, onde a1 6= 0. Podemos enfatizar as partes usando a tabela a seguir. Sinal Mantissa Expoente ± a1 a2 . . . an e A representação de x com apenas t dígitos pode ser feita de duas formas. Notemos que x = ±0.a1a2 . . . atat+1 . . . an × 10e (2.2.1) = ±(0.a1a2 . . . at + 0.000 . . . 0at+1 . . . an)× 10e (2.2.2) = ±0.a1a2 . . . at × 10e +±0.at+1 . . . an × 10e−t, (2.2.3) chamando f = ±0.a1a2 . . . at (2.2.4) g = ±0.at+1 . . . an (2.2.5) D. Andrade Cálculo Numérico 19 temos que x = f × 10e + g × 10e−t (2.2.6) notamos que 0 < |f | < 1 e 0 ≤ |g| < 1. No arredondamento simétrico, se o primeiro dígito a ser desprezado é inferior a cinco, simplesmente abandonamos os dígitos restantes e mantemos os demais. E se o primeiro dígito a ser desprezado é igual ou superior a cinco, adicionamos um ao último dígito a ser retido. No arredondamento por truncamento, simplesmente desprezamos os dígitos restantes. Por exemplo, √ 2 ≈ 1.4142135623730950488 utilizando-se apenas 10 dígitos após o ponto decimal tem-se √ 2 ≈ 1.4142135623 por truncamento e √2 ≈ 1.4142135624 por arredonda- mento simétrico. As limitações no sistema de aritmética de ponto flutuante provocam fenômenos impor- tantes chamados de “overflow” e “underflow”. A faixa de variação dos expoentes leva ao underflow e ao overflow, e quantidade de dígitos na mantissa ocasionam erros de arredondamento. Operações que resultem em expoente superior ao expoente máximo ocasionam o fenô- meno de overflow. Analogamente, operações que resultem em expoente inferior ao ex- poente mínimo ocasionam o fenômeno de underflow. Observação: As operações são realizadas em computador na seguinte sequência: 1) Decomposição dos operandos em mantissa e expoente; 2) Alinhamento das mantissas e dos expoentes para a soma e a subtração; 3) Operação com as mantissas e /ou os expoentes; 4) Normalização da mantissa; 5) Arredondamento da mantissa; 6) Recomposição do resultado (reunião da mantissa com o expoente). D. Andrade Cálculo Numérico 20 2.3 Erro absoluto e erro relativo Como pudemos observar, em qualquer das duas formas de realizar as aproximações, obrigatoriamente comete-se um erro. É importante que se conheça a magnitude dos erros nestas representações. Suponha que x seja uma aproximação para o valor exato x. O erro absoluto é definido por EAx = |x− x| e o erro relativo é ERx = |x− x| |x| , x 6= 0. Note que em geral o valor exato x não é conhecido. Portanto, é comum utilizarmos a seguinte definição de erro relativo: ERx = |x− x| |x| , x 6= 0. As informações fornecidas pelos erros absoluto e relativo são diferentes. Seja x = 1234.9 uma aproximação para x com erro absoluto menor do que 0.1 , isto é, EAx < 0.1, então o valor exato pertence ao intervalo (1234.8; 1235.0). Do mesmo modo, suponha que y = 7.2 seja uma aproximação para y com EAy < 0.1, então y pertence ao intervalo (7.1; 7.3). Note que nos dois exemplos os majorantes para os erros absolutos são os mesmos. Mas nesses casos, os erros relativos são diferentes. No primeiro caso, temos ERx = EAx |x| < 0.1 1234.9 ≈ 0.81× 10−4 e ERy = EAy |y| < 0.1 7.2 ≈ 0.14× 10−1. Comparando os erros relativos, vemos que a precisão no primeiro exemplo é maior, pois a ordem de grandeza de x é maior que a ordem de grandeza de y. Isto explica porque o erro relativo é mais amplamente utilizado. O erro relativo é dado frequentemente com uma porcentagem. Por exemplo, 2% de erro relativo significa que o erro relativo é 0.02. Voltando à representação em aritmética de ponto flututante com t dígitos dada em (2.2.6), podemos observar que f tem t dígitos e está na forma normalizada. Além disso, x˜ = f × 10e é uma aproximação para x. A essa aproximação chamamos de arredondamento D. Andrade Cálculo Numérico 21 por trucamento. É claro que nesse caso o erro de arredondamento por trucamento é dado por EAx = |x− x˜| = |g| × 10e−t. Como já vimos, o arrendodamento simétrico é obtido observando-se a magnitude da parte a ser desprezada g. Quando consideramos a aproximação x˜ dada por x˜ = { f × 10e, se 0 < |g| < 0.5 f × 10e + 10e−t, se 0.5 ≤ |g| < 1 o erro no arredondamento simétricoé dado por EAx = |x− x˜| = { |g| × 10e−t, se 0 < |g| < 0.5 (1− g)× 10e−t, se 0.5 ≤ |g| < 1 . Proposição 2.3.1 (a) Utilizando aritmética com t casas decimais e arrendodamento por truncamento o erro relativo máximo cometido é dado por 101−t. (b) Utilizando aritmética com t casas decimais e arrendodamento simétrico o erro relativo máximo cometido é dado por 1 2 101−t. (a) De fato, observe que ERx = |x− x˜| |x˜| = |g| × 10e−t |f | × 10e < 10e−t (0.1)× 10e = 10e−t 10e−1 = 101−t. (b) ERx = |x− x˜| |x˜| = |g| × 10e−t |f | × 10e , se 0 < |g| < 0.5 (1− g)× 10e−t |f | × 10e + 10e−t , se 0.5 ≤ |g| < 1 . Como 0 ≤ |g| < 1 2 , então |1− g| < 1 2 , podemos escrever ERx = |x− x˜| |x˜| = |g| × 10e−t |f | × 10e < 1 2 101−t, se 0 < |g| < 0.5 (1− g)× 10e−t |f | × 10e + 10e−t < |g − 1| × 10e−t |f | × 10e < 1 2 × 101−t, se 0.5 ≤ |g| < 1 . D. Andrade Cálculo Numérico 22 2.4 Dígitos Significativos Ao utilizarmos um método numérico para obter a resposta de um problema, devemos ter confiança nesse número. Vamos ilustrar isso: por exemplo, a hipotenusa, de um triângulo retângulo com lados medindo 10 cm de comprimento, mede √ 200 cm de comprimento. Tomando uma régua comum para fazer a medida da hipotenusa, o máximo que vamos perceber é que √ 2002 está entre 14,1 e não ultrapassa 14,2. Se quiséssemos adicionar mais uma casa decimal, teríamos dúvida sobre qual dígito incluir: 14,15? e por que não 14,18? Em virtude da limitação da régua, apenas podemos garantir que os dígitos 1, 4 e 1 podem ser usados com segurança. Há dúvidas sobre o quarto valor. A esses três primeiros algarismos mais o quarto algarismo duvidoso chamamos de algarismos significativos. A relação entre o erro relativo e o número de dígitos significativos é dado pela proposição: Proposição 2.4.1 Se o erro relativo do valor aproximado de um número não excede 0.5× 10−n, então esse valor tem n dígitos significativos. Assim, dizemos que x aproxima x com d dígitos significativos se d é o maior inteiro posi- tivo para o qual se tem |x− x| |x| < 1 2 × 10−d. Se x = 1.414214 e x = 1.414 então |x− x| |x| = 0.1513208043× 10 −3 < 1 2 × 10−3, assim x aproxima x com três dígitos significativos. Se x = 2000000 e x = 1999994 então |x− x| |x| = 0.3× 10 −5 < 1 2 × 10−5, assim x aproxima x com cinco dígitos significativos. 2aprox. 14.14213562 D. Andrade Cálculo Numérico 23 Dígitos não nulos são sempre dígitos significativos. Em 0.057 tem-se dois dígitos signi- ficativos; em 0.507 temos três dígitos significativos. O número de dígitos significativos num cálculo dependerá do número de dígitos significativos dos dados iniciais. Perda de dígitos significativos: Sejam x = 1.4142135623 e y = 1.4142146734 ambos com 11 dígitos de precisão. Como os 6 primeiros dígitos são iguais, y − x = 0.1111 × 10−5 contém 5 dígitos de precisão. Essa redução na precisão chama-se perda de dígitos significativos por cancelamento na subtração. Um exemplo importante onde esse fenômeno ocorre é em funções quadráticas, como por exemplo em f(x) = x( √ x+ 1 − √x). Vemos que uma expressão algebricamente equiva- lente a f(x) é dada por h(x) = x√ x+ 1 + √ x . Notemos que f(500) = 500( √ 501 −√500) = 500(22.3830− 22.3607) = 11.1500 e h(500) = 500 22.3830 + 22.3607 = 11.1748, esse último valor envolve menos erro, usando 6 dígitos e arredondamento. 2.5 Propagação de Erros Nessa seção, veremos como os erros se propagam ao efetuarmos uma das operações fun- damentais de adição, multiplicação e divisão. Consideremos dois valores exatos x e y e suas respectivas aproximações x e y. Existem números ε1 e ε2 tais que x− x = ε1, y − y = ε2. Logo, x+ y = (x+ ε1) + (y + ε2) = (x+ y) + (ε1 + ε2). Portanto, |(x+ y)− (x+ y)| = |ε1 + ε2| ≤ |ε1|+ |ε2|. Segue que o erro absoluto da soma é menor ou igual à soma dos erros absolutos: EAx+y ≤ EAx + EAy. De modo análogo, EAx−y ≤ EAx + EAy. D. Andrade Cálculo Numérico 24 Agora passamos ao erro relativo na soma. ERx+y = EAx+y |x+ y| ≤ EAx + EAy |x+ y| ERx+y ≤ EAx|x+ y| + EAy |x+ y| . (2.5.7) Se x e y possuem o mesmo sinal e são não nulos, isto é, xy > 0, podemos reescerver a expressão acima (2.5.7) como ERx+y ≤ EAx|x+ y| + EAy |x+ y| = EAx |x| |x| |x+ y| + EAy |y| |y| |x+ y| ≤ ERx |x||x+ y| + ERy |y| |x+ y| ≤ ERx + ERy. Note que no caso geral, vale apenas (2.5.7). Consideremos agora o produto xy, temos que, x · y = x.y + xε2 + yε1 + ε1ε2. Da expressão acima vemos que se |x| > 1 ou |y| > 1, então as parcelas xε2 e yε1 con- tribuirão para o aumento do erro no produto. Supondo xy 6= 0, rearranjando e dividindo por xy, podemos escrever, xy − x.y xy = xε2 xy + yε1 xy + ε1ε2 xy . Se x é uma boa aproximação para x e se y é uma boa aproximação para y, então xε2 xy ≈ ε2 y , yε1 xy ≈ ε1 x , ε1ε2 xy ≈ 0. Segue que para boas aproximações tem-se ERxy = ∣∣∣∣xy − x.yxy ∣∣∣∣ ≈ ∣∣∣ε1x ∣∣∣+ ∣∣∣∣ε2y ∣∣∣∣ = ERx + ERy. D. Andrade Cálculo Numérico 25 Portanto, para boas aproximações, o erro relativo do produto é, no máximo, da mesma ordem que a soma dos erros relativos. No caso da divisão, x y = x+ ε1 y + ε2 = x+ ε1 y · 1 1 + ε2 y . O termo 1 1 + ε2 y lembra a série geométrica de razão ( −ε2 y ) : 1 1 + ε2 y = ∞∑ k=0 ( −ε2 y )k . Supondo que y seja uma boa aproximação para y, podemos desprezar os termos da série de potência superior a 2, assim, obtemos x y = x+ ε1 y + ε2 ≈ x+ ε1 y · ( 1− ε2 y ) . Donde, obtemos x y ≈ x+ ε1 y · ( 1− ε2 y ) = x y + ε1 y − xε2 y2 − ε1ε2 y2 . Desprezando o termo ε1ε2 y2 , segue que EAx y = ∣∣∣∣xy − xy ∣∣∣∣ ≈ ∣∣∣∣ε1y − xε2y2 ∣∣∣∣ . O Erro relativo do quociente é então, para boas aproximações, ERx y = EAx y∣∣∣xy ∣∣∣ = EAxy · ∣∣∣y x ∣∣∣ ≈ ∣∣∣∣ε1y − xε2y2 ∣∣∣∣ ∣∣∣yx∣∣∣ ≈ ∣∣∣ε1x ∣∣∣ + ∣∣∣∣ε2y ∣∣∣∣ ≤ ERx + ERy. Segue que para boas aproximações o erro relativo na divisão é, no máximo, da mesma ordem que a soma dos erros relativos. Observação 2.5.1 Em problemas matemáticos gerais as soluções, em última análise, estão no conjunto dos números reais, que é infinito e contínuo. Segue que uma das consequências da represen- tação em máquina é o arredondamento, exceto para números demasiadamente grandes D. Andrade Cálculo Numérico 26 ou demasiadamente pequenos para serem representados na máquina, que dão origem a situações denominadas de overflow e underflow, respectivamente. Resumindo, toda operação em máquina pode conter erros. Além desses casos, que o erro tem origem na máquina, existem outras fontes de erros. As principais fontes de erros são: a) erros nos dados de entrada, b) erros no estabelecimento do modelo (simplificação), c) erros de truncamentos (troca de séries por soma finita). Imagine que desejamos calcular a área da superfície do nosso planeta Terra. Resolve- mos usar a fórmula S = 4πr2, onde r é o raio da Terra. Quando fazemos isso estamos cometando alguns erros. Primeiramente, estamos simplificando o problema, pois esta- mos supondo que a Terra é uma esfera perfeita. Em seguida, como só conhecemos um valor aproximado para π, somos obrigados a utilizar uma aproximação. Erramos mais uma vez pois não conhecemos exatamente o raio r. Quando simplificamos o problema cometemos um erro no modelo e quando tomamos uma aproximação para π e r cometemos erro nos dados iniciais. 2.6 Condicionamento e Estabilidade Dois conceitos importantes na análise numérica são a noção de estabilidade matemática e estabilidade numérica. A estabilidade numérica é uma propriedade do algoritmo. Pode haver várias maneiras de resolver um determinado problema matemáticoe estes se comportam de diferentes maneiras com relação à propagação de erros. Existem métodos que são muito sensíveis a variações nos dados, isto é, pequenas vari- ações nos dados provocam variações muito grandes na solução. Esse fenômeno é inde- pendente do método usado para resolver o problema. O condicionamento de um problema descreve a sensibilidade do problema a variações nos dados. Um problema matemático cuja solução pode ser muito sensível a variações nos dados e parâmetros é dito mal condicionado ou apresenta instabilidade. Alguns métodos são estáveis apenas para certas escolhas dos dados iniciais, esses métodos são chamados de condicionalmente estáveis. Por outro lado, um problema é dito bem condicionado se pequenas variações nos dados e parâmetros induzem sempre pequenas variações na solução. Como exemplo, os sistemas de equações lineares são mal condicionados. Já vimos como os erros se propagam em cálculos numéricos. A resolução de um problema D. Andrade Cálculo Numérico 27 numérico requer, em geral, um grande número de operações aritméticas e, originando de cada uma erro de arredondamento. O efeito cumulativo destes erros pode afetar signifi- camente o resultado calculado. A estabilidade de um método descreve a sensibilidade do método relativamente à acumulação dos erros gerados durante o cálculo. Um método estável produz sempre bons resultados para problemas bem condicionados. Como exemplo, a fórmula de Báskara é um método instável. As raízes de uma equação do segundo grau ax2 + bx+ c = 0 estão relacionadas pela relação de Viète x1 + x2 = − b a (2.6.8) x1x2 = c a (2.6.9) que podem ser utilizadas na determinação das raízes. Esse método é estável. Exercício 2.6.1 1. Considere e ≈ 2.718282, 1 13 ≈ 0.076923, √200 ≈ 14.1421 e ln 2 ≈ 0.69315. Assu- mindo que e ≈ 2.71828182846... 1 13 ≈ 0.076923076..., √200 ≈ 14.1421356... e ln 2 ≈ 0.69314718... Obtenha limites superiores para os erros absolutos, erros relativos e porcentagens de erros em cada caso. 2. Qual o número de dígitos significativos em cada caso acima? 3. Arredonde os seguintes números reais representando-os com três e com cinco al- garismos: 2 9 , 1 256 ,− √ 5,− 1 44 , e, e−1. 4. Use a sua calculadora para calcular 1 3 × 3, √2×√2 usando apenas 4 dígitos. 5. Para valores grandes calcule f(x) = 1√ x − 1√ x+1 . Apresente outra forma de calcular f(x). 2.7 Resumo do capítulo Neste capítulo apresentamos o conceito de erro e sua propagação no desenvolvimento dos cálculos numéricos. 3 Equações não lineares 3.1 Introdução Neste capítulo estamos interessados em resolver numericamente a equação f(x) = 0, onde f é uma função arbitrária. Por “resolver numericamente" entendemos determi- nar uma aproximação para a solução de f(x) = 0. Não existem métodos analíticos gerais para resolver esse problema de forma explícita, assim os métodos numéricos são as úni- cas ferramentas disponíveis. Apresentaremos os métodos mais comumente utilizados, entre eles o método da bis- secção, o método das aproximações sucessivas (ponto fixo), o método de Newton-Raphson e o método da secante. Uma solução de f(x) = 0 é também chamada de raiz de f . Dizemos que α é uma raiz de f(x) com multiplicidade m > 0, se f(α) = 0, f ′(α) = 0, . . . , f (m−1)(α) = 0, f (m)(α) 6= 0. Se m = 1 dizemos que a raiz é simples, isto é, f(α) = 0 mas f ′(α) 6= 0. 28 D. Andrade Cálculo Numérico 29 Em todo esse capítulo, a menos que se diga o contrário, vamos supor que as raízes são simples. 3.2 O método da bissecção O teorema do valor intermediário, apresentado no capítulo 1 no Teorema 1.1.10, garante a existência de uma solução para f(x) = 0 no intervalo (a, b) desde que f : [a, b] → R seja contínua e satisfazendo f(a)f(b) < 0. Nessas condições, o método da bissecção consiste em dividir o intervalo [a, b] ao meio, obtendo subintervalos [a,m] e [m, b], e considerar como intervalo de busca o subintervalo em que f tem sinais opostos nos extremos. Em seguida repete-se o procedimento com o subintervalo de interesse. Após um número finito de subdivisões ou encontramos uma solução ou sabemos que a raiz encontra-se em algum subintervalo [ak, bk]. Consideremos f : [a, b] → R contínua tal que f(a)f(b) < 0. Seja m o ponto médio de [a, b]. Note que se f(a)f(m) < 0, então o teorema do valor intermediário garante que a raiz se encontra no intervalo [a,m]. Se f(a)f(m) > 0, então temos que f(a)f(m)f(a)f(b) = [f(a)]2 f(m)f(b) < 0, pois [f(a)]2 > 0. Segue que f(m)f(b) < 0 e portanto, a raiz se encontra no intervalo [m, b]. No método da bissecção, esse é o teste para decidir quais dos subintervalos devemos considerar no próximo passo. Chamando a0 = a e b0 = b e efetuando sucessivas bissecções, obtemos intervalos [ak, bk] e pontos médios mk. Note que |bk − ak| = bk − ak = b− a 2k . O método da bissecção gera sempre uma sequência que converge para a solução. De fato, o método gera uma sequência de intervalos encaixados I0 = [a0, b0] ⊃ I1 = [a1, b1] ⊃ I2 = [a2, b2] ⊃ . . . ⊃ Ik = [ak, bk] ⊃ . . .. Os extremos ak dos intervalos compõem uma sequên- cia monótona não decrescente limitada superiormente por b; portanto convergente. Os extremos bk dos intervalos compõem uma sequência monótona não crescente limitada inferiormente por a, portanto convergente. Afirmamos que ambas convergem para o mesmo limite l. De fato, como bk − ak = b− a 2k temos que 0 = lim k→∞ (bk − ak) = lim k→∞ bk − lim k→∞ ak. Segue que lim k→∞ bk = lim k→∞ ak = l. D. Andrade Cálculo Numérico 30 Agora mostraremos que l é raiz de f(x). Como em cada passo tem-se f(ak)f(bk) < 0, então 0 ≥ lim k→∞ f(ak)f(bk) = lim k→∞ f(ak) lim k→∞ f(ak) = [f(l)] 2 ≥ 0. Segue que f(l) = 0. Acabamos por demonstrar o seguinte teorema. Teorema 3.2.1 Seja f : [a, b] → R contínua tal que f(a)f(b) < 0. O método da bissecção gera uma sequência (mk) que converge para a raiz c de f e satisfaz |mk − c| ≤ |bk − ak| ≤ b− a 2k , k ≥ 1. (3.2.1) Nesse ponto é interessante observar que se estamos procurando por uma aproximação para a raiz da equação com erro máximo ε, o fator b− a 2k < ε pode ser utilizado como critério de parada. O ponto médio mk de [ak, bk] é um candidato a solução e satisfaz |bk −mk| ≤ |bk − ak| ≤ b− a 2k < ε e |ak −mk| ≤ |bk − ak| ≤ b− a 2k < ε. Então, qual é o número de subintervalos em que devemos subdivir o intervalo [a, b] de modo que o erro cometido na aproximação da solução seja menor do que ε? Uma aproxi- mação para a solução é um ponto em [ak, bk], assim devemos ter k > ln( b−a ε ) ln 2 . (3.2.2) O método da bissecção, por ser o mais simples dos métodos, ele gera uma boa aproxi- mação inicial que é muitas vezes o ponto de partida para utilização em outros métodos, como é o caso do método de Newton-Raphson. Método prático: Uma maneira prática para utilizar o método da bissecção é apresen- tada a seguir para a função f(x) = ( x 2 )2 − sin(x), x em radianos. • Exemplo 3.2.2 Determinar uma aproximação para uma raiz positiva da função f(x) = (x 2 )2 − sin(x) no intervalo [1.5, 2], x em radianos. Note que f(x) = 0 se, e somente se, (x 2 )2 = sin(x). Veja a tabela 3.1 Assim, uma aproximação para a raiz procurada é m5 = 1.921875. D. Andrade Cálculo Numérico 31 Tabela 3.1: Tabela para bissecção k ak bk mk f(ak)f(mk) 0 1.5 2.0 1.75 > 0 o intervalo escolhido é [mk, bk ] 1 1.75 2.0 1.875 > 0 2 1.875 2.0 1.9375 < 0 3 1.875 1.9375 1.90625 > 0 o intervalo escolhido é [mk, bk ] 4 1.90625 1.9375 1.921875 > 0 0 0.5 1 1.5 2 2.5 0.5 1 1.5 2 2.5 3 x Figura 3.1: Gráfico de ( x 2 )2 e sin(x) Para saber quantas iterações do método da bissecção são necessárias para que a raiz c que se encontra em [1.5; 2] satisfaça |bk − ak| < 10−5 podemos utilizar (3.2.2) obtendo k > 15.60964047.Portanto, o número mínimo de iterações é k = 16. Vejamos um exemplo. • Exemplo 3.2.3 Usando a expressão (3.2.1) podemos determinar quantas iterações do método da bis- secção devemos realizar para obter uma aproximação da solução de ( x 2 )2 − sin(x) = 0 no intervalo [1.5, 2], com erro menor do que 10−3. De fato, como k > ln( b−a ε ) ln 2 = ln(2−1.5 10−3 ) ln 2 ≈ 8.96. Segue que devemos realizar pelo menos 9 iterações do método da bissecção. D. Andrade Cálculo Numérico 32 Resumo: (a) Mostramos que o método da bissecção gera uma sequência que converge para a solução de f(x) = 0. (b) Escolhemos os subintervalos pelo critério se f(a)f(m) < 0, escolhemos o subintervalo [a,m], e se f(a)f(m) > 0, escolhemos o subintervalo [m, b]. (c) O número mínimo de iterações do método da bissecção para atingirmos a precisão ε é dado por k > ln( b−a ε ) ln 2 . Algoritmo 1Método da bissecção 1. Dados: [a, b] e f : [a, b]→ R contínua tal que f(a)f(b) < 0 e tolerância ε > 0 2. Defina m := b+ a 2 . 3. Se b−m < ε, tome m como aproximação para raiz e pare. 3. Se f(a)f(m) < 0 faça b := m, caso contrário faça a := m e volte ao passo 2. 3.3 Usando Maple: o método da bissecção O seguinte procedimento em Maple pode ser utilizado para obter aproximação para a solução de f(x) = 0, basta entrar com a função, com os extremos do intervalo [a, b] e com o número de iterações. > restart: > bisse ção:=pro (f::pro edure,intervalo::anything=range, toleran ia::anything=real ons) lo al a,b,extremos,Detalhes,E,Iteração,m; if nargs<>3 then ERROR(`O número de argumentos exigido é 3. Vo ê forne eu `||nargs||`.`) fi; if rhs(toleran ia)<0.1e-14 then ERROR(`O valor mínimo de E a eitável é 0.1e-14).`) fi; Digits:=10; extremos:=lhs(rhs(intervalo)), rhs(rhs(intervalo)); a:=min(extremos); b:=max(extremos); D. Andrade Cálculo Numérico 33 if not(evalf(f(a)*f(b))<0) then ERROR(`A função não muda de sinal nos extremos do intervalo onsiderado.`) fi; Iteração:=0; E:=abs(rhs(toleran ia)); Detalhes:=[℄; while evalf(abs(b-a)) > evalf(2*E) do m:=(a+b)/2; Iteração:=Iteração+1; Detalhes:=Detalhes,[Iteração,a,b,evalf((a+b)/2),evalf(f(a)*f(m))℄; if evalf(f(m)*f(a)) < 0 then b:=m elif evalf(f(m)*f(a)) > 0 then a:=m else print(`O zero real en ontrado é exato e vale `,m); return; fi; od: m:=(a+b)/2; Iteração:=Iteração+1; Detalhes:=Detalhes,[Iteração,a,b,evalf(m),evalf(f(a)*f(m))℄; printf(`\n%s% .15f`,`Método da bisse ção om E = `,E); printf(`\n%s%a`,`Intervalo ini ial `,intervalo); printf(`\n| k | a[k℄ | b[k℄ | m[k℄ | f(a[k℄)*f(m[k℄) | \n|======= |======================|======================|======================= |========================| \n`); seq(printf("|%5d | % 0.15f | % 0.15f | % 0.15f | % 0.15f |\n", Detalhes[k,1℄,Detalhes[k,2℄,Detalhes[k,3℄,Detalhes[k,4℄, Detalhes[k,5℄),k=2..Iteração+1) end: > f:=x->(x/2)^2-sin(x);#exemplo > bisse ção(f,x=1.5..2.0,E=0.00001); • Exemplo 3.3.1 D. Andrade Cálculo Numérico 34 A equação x3+3x−10 = 0 tem uma raiz real no intervalo [1, 4]. Após 15 iterações obtemos a seguinte aproximação α = 1.698885489. 0 10 20 30 40 50 60 1.5 2 2.5 3 3.5 4 x Figura 3.2: x3 + 3x− 10 = 0 tem uma raiz em [1, 2] –0.6 –0.4 –0.2 0 0.2 0.4 0.6 0.8 1 –1 –0.5 0.5 1 1.5 2 2.5 x Figura 3.3: ( x 2 )2 − sin(x) Observação 3.3.2 Como vimos o método da bissecção gera uma sequência infinita. Podemos usar um dos critérios de parada para interromper os cálculos. Dada uma tolerânica ε > 0 aplicamos o método da bissecção para obter m1, m2, . . . , mk até que uma das condições sejam satis- feitas: 1. |mk −mk−1| < ε, 2. |mk −mk−1| |mk| < ε, 3. |f(mk)| < ε, 4. o método pára após N iterações. Exercício 3.3.3 1. Determine uma aproximação para a solução de f(x) = 0 nos seguintes casos: (a) (x2 + 1) sin(x) = 0 no intervalo [2, 4] com precisão de 10−3. (b) (x2 + 1) cos(x) = 0 no intervalo [0, 2] com precisão de 10−4. (c) x3 − 2x2 − x+ 1 = 0 no intervalo [2, 3] com precisão de 10−5. D. Andrade Cálculo Numérico 35 2. Determine em que pontos do primeiro quadrante os gráficos das funções f e g se cruzam, onde f(x) = x e g(x) = tan(x). 3. A equação f(x) = exp(x)− 3x = 0 tem uma raiz no intervalo [0,1]. a) Utilizando seis aplicações do método da Bissecção, encontre essa raiz e deter- mine sua precisão. b) Quantas aplicações do método seriam necessárias para avaliar a raiz com com precisão de 10−4.? 3.4 Métodos iterativos Estamos ainda interessados em resolver f(x) = 0, mas agora sob outro enfoque. Dizemos que c é um ponto fixo para f se f(c) = c. Podemos sempre transformar o problema f(x) = 0 em um problema de determinar um ponto fixo. De fato, se f(x) = 0, então x + f(x) = x e assim, tomando φ(x) = x + f(x), ficamos com o problema de ponto fixo φ(x) = x. Por outro lado, se temos φ(x) = x, então φ(x)− x = 0. Logo, tomando f(x) = φ(x)− x ficamos com o problema f(x) = 0. Portanto, os problema determinar raiz e determinar ponto fixo são equivalentes. Iterar é uma palavra de origem grega que significa repetir. Os métodos iterativos são métodos baseados na repetição de um procedimento. Um método iterativo estacionário de passo s ≥ 1 é um método que gera uma sequência (xn) dada por xn+1 = φ(xn−s+1, xn−s+2, . . . , xn). Se φ muda a cada iteração, isto é, xn+1 = φn+1(xn−s+1, xn−s+2, . . . , xn) o método é dito não estacionário. Note que métodos iterativos de passo s necessitam de s informações anteriores. Um método estacionário de passo 1 é da forma xn+1 = φ(xn), n ≥ 0. Vamos estudar inicialmente apenas os métodos iterativos estacionários de passo 1. Os métodos iterativos geram uma sequência infinita (xk) que converge para a solução, porisso há a necessidade de critérios de parada. Isto é, quando devemos interromper os cálculos. Dada um tolerância ε > 0, os seguintes critérios são comumente utilizados como critérios de parada: D. Andrade Cálculo Numérico 36 1. |f(xk)| < ε; 2. |xk+1 − xk| < ε; 3. |xk+1 − xk| |xk+1| < ε; 4. o método pára após N iterações. 3.5 O método do ponto fixo O método das aproximações sucessivas ou o método do ponto fixo gera uma sequência (xn) utilizando a seguinte lei xn+1 = φ(xn), n ≥ 0, (3.5.3) onde a aproximação inicial x0 é deve ser fornecida para iniciar o procedimento. Duas perguntas surgem no estudo dos métodos iterativos estacionários de passo 1: (a) Quando converge? (b) Se converge, com que velocidade? O seguinte resultado responde à primeira pergunta. Teorema 3.5.1 Seja φ : [a, b] → [a, b] contínua com φ′ contínua em (a, b). Suponha que |φ′(x)| ≤M < 1 para algum M ≥ 0 e todo x ∈ (a, b). Então, para x0 ∈ [a, b] tem-se: (a) xn+1 = φ(xn) pertence a [a, b], ∀n ≥ 0. (b) limn→∞ xn = c, para algum c ∈ [a, b]. (c) c é a única solução de x = φ(x) em [a, b]. Demonstração: O item (a) é óbvio. Para o item (b) notemos que se x, y ∈ (a, b) então, pelo teorema do valor médio existe ξ entre x e y tal que φ(y)− φ(x) y − x = φ ′(ξ). Donde segue que |φ(y)− φ(x)| = |φ′(ξ)||y − x| ≤M |y − x|, e φ é uma contração. D. Andrade Cálculo Numérico 37 Agora mostraremos que xn é uma sequência de Cauchy e portanto convergente. Primeiramente, notemos que |xn+1 − xn| = |φ(xn)− φ(xn−1)| ≤M |xn − xn−1| ≤M2|xn−1 − xn−2| ≤ . . . ≤Mn|x1 − x0|. No caso geral,temos |xn+k − xn| = |xn+k − xn+k−1 + xn+k−1 − xn+k−2 + xn+k−2 − · · · − xn| ≤ |xn+k − xn+k−1|+ |xn+k−1 − xn+k−2|+ · · ·+ |xn+1 − xn| ≤ Mn+k−1|x1 − x0|+Mn+k−2|x1 − x0|+ · · ·+Mn|x1 − x0| ≤ M n 1−M |x1 − x0|. Como M < 1 segue que Mn → 0 e portanto |xn+k − xn| → 0 quando n → ∞. Assim, a sequência é de Cauchy em R, sendo convergente para algum c ∈ [a, b]. Agora vamos provar que c = lim xn é solução de x = φ(x). Defato, c = lim n→∞ xn+1 = lim n→∞ φ(xn) = φ( lim n→∞ xn) = φ(c). Assim, c é solução do problema de ponto fixo x = φ(x). Provar que c é a única solução é fácil, pois se c e c1 são soluções, então |c− c1| = |φ(c)− φ(c1)| ≤M |c− c1|, comoM < 1, seque que c = c1. � Para responder à segunda pergunta vamos precisar da seguinte definição. Definição 3.5.2 Dado uma sequência (xn) convergente para α seja En = xn−α. Se existe um real p ≥ 1 e c 6= 0 tais que lim n→∞ |En+1| |En|p = c, dizemos que a ordem de convergência da sequência é p. Se p = 1 dizemos que a ordem de convergência é linear, se p = 2 dizemos que a ordem de convergência da sequência é quadrática. Dizemos que um método iterativo é de ordem p para a raiz α , se ele gera uma sequência que converge para α com ordem de convergência p. Teorema 3.5.3 Sob as hipóteses do Teorema 3.5.1, a ordem de convergência de xn+1 = φ(xn), n ≥ 0, gerada pelo método do ponto fixo, é p = 1. D. Andrade Cálculo Numérico 38 Demonstração: De fato, pelo teorema do valor médio, existe ξn entre xn−1 e c tais que xn − c = φ(xn−1)− φ(c) = φ′(ξn)(xn−1 − c). Assim, |xn − c| |xn−1 − c| = |φ ′(ξn)|. Fazendo n→∞, obtemos lim n→∞ |xn − c| |xn−1 − c| = |φ ′(c)|. Isto responde à segunda pergunta. � Note que φ(x) = x tem solução quando os gráficos de y = φ(x) e y = x se cruzam. 0 1 2 3 4 5 6 7 1 2 3 4 x Figura 3.4: Gráfico de y = φ(x) e y = x • Exemplo 3.5.4 A equação x3 − x− 5 = 0 pode ser reescrita como x = x3 − 5 = 0 ou x = (x+ 5) 13 ou ainda x = 5 x2 − 1 . A forma da equação a ser escolhida depende da raiz a ser localizada e se a função satisfaz às condições do Teorema 3.5.1. • Exemplo 3.5.5 D. Andrade Cálculo Numérico 39 A equação ln x−x+2 = 0 pode ser reescrita como x = ln x+ 2︸ ︷︷ ︸ =φ(x) ou x = exp(x− 2)︸ ︷︷ ︸ =φ1(x) . A equação lnx − x + 2 = 0 possui solução nos intervalos (0, 1) e (3, 4). Observe que |φ′(x)| = | 1 x | < 1 em (3, 4) e |φ′1(x)| = φ1(x) < 1 em (0, 1). Algoritmo 2Método das aproximações sucessivas Dado f(x) = 0 escreva como φ(x) = x. Seja x0 aproximação inicial, ε > 0 tolerância. 1. Se |f(x0)| < ε faça c = x0 e pare. 2. k = 1. 3. x1 = φ(x0). 4. Se |f(x1)| < ε ou |x1 − x0| < ε faça c = x1 e pare. 5. x0 = x1 6. k = k + 1 e volte ao passo 3. Interpretação Gráfica: Ilustramos a seguir a convergência da sequência no método do ponto fixo: a partir da aproximação inicial x0 obtem-se x1 subindo até a função φ e depois paralelamente ao eixo OX até encontrar a bissetriz e descendo até o eixo OX. A partir de x1 repete-se o procedimento. Veja os gráficos para o exemplo x = exp(x− 2) com aproximação inicial x0 = 2.5 e ln(x)+3 2 = x com x0 = 1. Método Prático: Uma maneira prática de utilizar o método das aproximações suces- sivas é dispor os cálculos em uma tabela 3.2 como mostrado a seguir. Nesse exemplo, f(x) = 2+ ln(x) = 0 e φ(x) = exp(x−2) = x no intervalo [0.2, 1.5], veja gráfico em 3.5. Note que |φ′(x)| < 1 no intervalo. 3.6 Usando Maple: o método do ponto fixo O seguinte procedimento em Maple determina uma aproximação pelo método do ponto fixo após n iterações. > restart: > pfixo1:=pro (f, hute,n) > lo al x,k; > x[0℄:=evalf( hute ); > for k from 1 to n do > x[k℄:=evalf( f(x[k-1℄) ); D. Andrade Cálculo Numérico 40 0 0.5 1 1.5 2 2.5 3 y 0.5 1 1.5 2 2.5 3x Figura 3.5: Convergência no método do ponto fixo 0 0.5 1 1.5 2 y 0.5 1 1.5 2x Figura 3.6: Convergência no método do ponto fixo > od; > if abs(x[n℄-x[n-1℄)-abs(x[n-1℄-x[n-2℄)> 0 then ERROR(`a seq diverge`) > fi; > print(`o ponto fixo é `, evalf(x[n℄),`após `, n, `itera oes`); > end: Exemplo > f:=x->exp(x-2); > pfixo1(f,1.0,10); Exercício 3.6.1 1. Descubra onde y = x3 − x + 1 intercepta a parábola y = 2x2 e determine a(s) interseção(ções) utilizando o método das aproximações sucessivas e da secante. 2. Determine a raiz quadrada de 0.5 com quatro casas decimais escrevendo f(x) = x2−0.5 e resolvendo x = φ(x) = x2+x−0.5 pelo método das aproximações sucessivas com x0 = −0.6. A raiz quadrada positiva poderia ser determinada por esse método com a mesma função φ(x)? Explique. 3. Use o método das aproximações sucessivas para determinar a menor raiz positiva, D. Andrade Cálculo Numérico 41 Tabela 3.2: Tabela para ponto fixo k xk φ(xk) |xk+1 − xk| 0 1.0 .367879 – 1 .367879 .195515 .632121 2 .195515 .164558 .172364 3 .164558 .159543 .030957 4 .159543 .158744 .005015 5 .158744 .158617 .000799 6 .158617 .158598 .000127 7 .158598 .158595 .000019 8 .158595 .158594 .3× 10−5 9 .158594 .158594 .1× 10−5 10 .158594 .158594 0 como 5 casas decimais exatas. a) x5 − x− 1 = 0 b) x2 − cos(x) = 0 c) exp(−x2)− x2 − 2x+ 2 = 0 3.7 O método de Newton-Raphson Ométodo de Newton-Raphson é um dos métodos mais eficientes para a solução numérica de f(x) = 0. Como veremos, esse método possui ordem de convergência 2. Suponha que f(x) tenha uma raiz simples no intervalo [a, b] e que f seja de classe C2 em [a, b]. Dado xn ∈ (a, b), usando o desenvolvimento de Taylor, podemos escrever f(x) = f(xn) + f ′(xn)(x− xn) + 1 2! f ′′(ξn)(x− xn)2, onde ξn está entre x e xn. Se α é a solução, então 0 = f(xn) + f ′(xn)(α− xn) + 1 2! f ′′(ξn)(α− xn)2, onde ξn está entre α e xn. D. Andrade Cálculo Numérico 42 Supondo que xn esteja suficientemente próximo de α, podemos desprezar o resto 12!f ′′(ξn)(α− xn) 2, donde obtemos uma aproximação para α α ≈ xn − f(xn) f ′(xn) , desde que f ′(xn) 6= 0. Obtemos assim o método de Newton-Raphson que nos dá xn+1 como uma aproximação para a raiz α por xn+1 = xn − f(xn) f ′(xn) , n ≥ 0. (3.7.4) Note que o método de Newton-Raphson é um método iterativo de passo 1 e que para ser iniciado necessitamos da aproximação inicial x0. A função φ(x) = x− f(x) f ′(x) (3.7.5) é chamada de função de iteração para o método de Newton-Raphson. Como φ′(α) = 0 e φ′(x) é contínua, segue que existe uma vizinhança de α em que |φ′(x)| ≤ k < 1, onde 0 ≤ k < 1. O que mostra que φ(x) é uma contração em alguma vizinhança de α. Isto explica porque o método de Newton-Raphson funciona. Exercício 3.7.1 Seja f ∈ C2[a, b] e α ∈ (a, b) tal que f(α) = 0 e f ′(α) 6= 0. Mostre que existe δ > 0 tal que o método de Newton-Raphson gera uma sequência (xn) que converge para α para qualquer que seja a aproximação inicial x0 ∈ [α− δ, α + δ]. Método prático: Uma maneira prática para usar o método de Newton-Raphson é uti- lizar uma tabela como mostrado abaixo, tabela 3.3. Nesse exemplo, determinamos uma aproximação para a solução da equação 4 cos(x)−ex = 0 localizada em [0, 1], tomamos x0 = 0.9 como aproximação inicial. Interpretação Gráfica: A reta tangente ao gráfico de f(x) no ponto (xk, f(xk)) cruza o eixo OX no ponto xk+1 dado por xk+1 = xk − f(xk) f ′(xk) . D. Andrade Cálculo Numérico 43 Tabela 3.3: Modelo de tabela para Newton-Raphson k xk f(xk) f ′(xk) |xk+1 − xk| 0 0.9 0.02683676 -5.59291075 – 1 0.904798353 -0.00005693 -5.61663586 0.004798353 2 0.904788217 0 -5.61658576 0.000010136 3 0.9047882179 - - - -4 -3 -2 -1 0 1 2 3 -2 -1.5 -1 -0.5 0.5 1 1.5 x 4 cos(x)− ex = 0 tem duas raízes. 4cos(x) e exp(x) 1 2 3 4 0 0.2 0.4 0.6 0.8 1 1.2 1.4 x Figura 3.7: 4 cos(x) e ex se cruzam Isso justifica o outro nome do método de Newton-Raphson: o método das tangentes. A escolha da aproximação inicial deve ser cuidadosa, pois caso contrário o método pode não convergir ou convergir para uma solução não desejada. Na figura da direita 3.11, x0 foi tomado muito próximo de um ponto estacionário (crítico) de f(x). Agora mostraremos que a convergência no método de Newton-Raphson é de ordem 2. Suponha que f seja de classe C2 em (a, b) e que tenha raiz simples α ∈[a, b]. Usando a expansão em Taylor em torno de algum ponto xk temos: f(x) = f(xk) + (xk − α)f ′(xk) + 1 2 (x− xk)2f ′′(ξk) onde ξk é algum ponto entre xk e α. Tomando x = α, reduzimos a expressão acima 0 = f(xk) + (α− xk)f ′(xk) + 1 2 (α− xk)2f ′′(ξk) D. Andrade Cálculo Numérico 44 Figura 3.8: Interpretação gráfica onde ξk é algum ponto entre xk e α. Dividindo por f ′(xk) obtemos 0 = f(xk) f ′(xk) + (α− xk) + 1 2 (α− xk)2f ′′(ξk) f ′(xk) . Substituindo f(xk) f ′(xk) − xk por −xk+1, tem-se 0 = −xk+1 + α+ 1 2 (α− xk)2f ′′(ξk) f ′(xk) . Reagrupando, xk+1 − α = 1 2 (α− xk)2 f ′′(ξk) f ′(xk) . Tomando o módulo e fazendo k →∞, lim k→∞ |xk+1 − α| |α− xk|2 = 1 2 lim k→∞ ∣∣∣∣f ′′(ξk)f ′(xk) ∣∣∣∣ = 12 ∣∣∣∣f ′′(α)f ′(α) ∣∣∣∣ 6= 0. O que mostra que a convergência no método de Newton-Raphson é quadrática. Apresentamos a seguir uma demonstração mais simples em que supõe-se que φ seja de classe C2. D. Andrade Cálculo Numérico 45 -2 0 2 4 6 y 1 1.21.41.61.8 2 2.22.4x Figura 3.9: boa escolha para o ponto inicial. Figura 3.10: escolha ruim para o ponto inicial Suponha que φ seja de classe C2 em (a, b) e que tenha raiz simples α ∈ [a, b] e seja φ(x) = x− f(x) f ′(x) . Usando o teorema de Taylor, temos φ(x) = φ(α)− (x− α)φ′(α) + 1 2 (x− α)2φ′′(ξ), onde ξ é algum ponto entre x e α. Sabendo que φ(α) = α e φ′(α) = 0, fazendo x = xn obtemos φ(xn) = α + 1 2 (xn − α)2φ′′(ξn), onde ξn é algum ponto entre xn e α. Segue que xn+1 = α + 1 2 (xn − α)2φ′′(ξn), ou seja, ∣∣∣∣ xn+1 − α(xn − α)2 ∣∣∣∣ = 12 |φ′′(ξn)|. Fazendo n→∞, obtemos lim n→∞ ∣∣∣∣ xn+1 − α(xn − α)2 ∣∣∣∣ = limn→∞ 12 |φ′′(ξn)| = 12 |φ′′(α)| 6= 0. D. Andrade Cálculo Numérico 46 O que mostra, nesta situação particular, que a convergência no método de Newton- Raphson é também quadrática. O teorema a seguir é um resultado muito útil, pois apresenta uma critério para a escolha do chute inicial no método de Newton-Raphson. Teorema 3.7.2 Seja f : [a, b] → R de classe C2 e seja α ∈ (a, b) raiz de f . Seja x0 a aproximação inicial no método de Newton-Raphson e seja (xk) a sequência gerada por este método. Seja o intervalo J = [ x0, x0 − 2 f(x0) f ′(x0) ] e M = max{|f ′′(x)|, x ∈ J}. Suponha que |f(x0)| |f ′(x0)|M < |f ′(x0)| 2 . Então, lim k→∞ xk = α. • Exemplo 3.7.3 (Uso do método de Newton-Raphson no cálculo da raiz quadrada) Seja N > 0. Queremos calcular uma aproximação para √ N . Para isso tomemos a função auxiliar f(x) = x2 − N. É claro que √N é uma solução de f(x) = 0. Aplicando o método de Newton-Raphson à função f obtemos a seguinte função de iteração φ: φ(x) = x− f(x) f ′(x) = x− x 2 −N 2x = x+ N x 2 . A expressão φ(x) = x+ N x 2 explica um dos métodos do cálculo da raiz quadrada muito utilizado no no ensino fundamental. Este método é conhecido como o método babilônio sendo apresentado pelos seguintes passos: 1. Adivinhe a uma aproximação para √ N . 2. Divida N pela aproximação a e obtenha b. 3. A nova aproximação é a média m = a+b 2 . 4. Volte ao passo 2 e troque a por m. D. Andrade Cálculo Numérico 47 Como exemplo vamos calcular √ 7. Tomemos como aproximação inicial x0 = 2. Então, temos x1 = 2 + 7 2 2 = 2.75. Repetindo, obtemos x2 = 2.75 + 7 2.75 2 = 2.647727273. Agora vamos determinar x3: x3 = 2.647727273 + 7 2.647727273 2 = 2.645752048. Assim, sucessivamente. Note que (2.645752048)2 = 7.000003899. O que nos surpreende é que este método, que coincide com o método de Newton-Raphson, já era empregado pelos babilônios cerca de 2000 anos antes de Cristo. Veja o algoritmo para o método de Newton-Raphson. Algoritmo 3Método de Newton-Raphson Dado f(x) = 0 faça φ(x) = x− f(x) f ′(x) . Seja x0 aproximação inicial, ε > 0 tolerância. 1. Se |f(x0)| < ε faça c = x0 e pare. 2. k = 1. 3. x1 = φ(x0). 4. Se |f(x1)| < ε ou |x1 − x0| < ε faça c = x1 e pare. 5. x0 = x1 6. k = k + 1 e volte ao passo 3. 3.8 Usando Maple: o método do Newton-Raphson O seguinte procedimento em Maple determina uma aproximação para a raiz com erro menor do que 10−5 ou executa 20 iterações do método. > mnr := pro (x0,fun,erro,itmax) lo al dfun,xa,xb, i; dfun:= unapply(diff(fun(x),x),x); xa:=x0; D. Andrade Cálculo Numérico 48 xb:=evalf(xa-fun(xa)/dfun(xa)); for i from 0 by 1 while(abs(fun(xb)) > erro or abs(xb-xa) > erro) and (i < itmax) do print(`iteração`,i,`xk=`,xb,`f(xk)=`,evalf(fun(xb))); xa := xb; xb:= evalf(xa-fun(xa)/dfun(xa)); od; end; > ##exemplo > f:=x-> 4* os(x)-exp(x); > mnr(1.19,f,0.00001,20); Exercício 3.8.1 1. Use o método de Newton-Raphson para determinar uma aproximação para a solução de f(x) = 0 nos seguintes casos: (a) (x2 + 1) sin(x) = 0 no intervalo [2, 4] com 5 dígitos significativos. (b) (x2 + 1) cos(x) = 0 no intervalo [0, 2] com 5 dígitos significativos. (c) x3 − 2x2 − x+ 1 = 0 no intervalo [2, 3] com 5 dígitos significativos. 2. Determine em que pontos do primeiro quadrante os gráficos das funções f e g coincidem, onde f(x) = x e g(x) = tan(x). Use o método de Newton-Raphson para determinar a menor solução positiva. 3.9 O método da secante O método de Newton-Raphson tem o inconveniente de necessitar da derivada da função. O método da secante é obtido do método de Newton substituindo f ′(xk) por uma aproxi- mação: f ′(xk) ≈ f(xk)− f(xk−1) xk − xk−1 . Resulta que xk+1 = f(xk)xk−1 − f(xk−1)xk f(xk)− f(xk−1) , k ≥ 1, (3.9.6) D. Andrade Cálculo Numérico 49 esse é o método da secante. Chamando φ(x, y) = xf(y)− f(x)y f(y)− f(x) , vemos que o método da secante é estacionário de passo 2. A interpretação geométrica, ilustrada na figura a seguir, é que a reta secante ao gráfico de f que passa pelos pontos (xn−1, f(xn−1)) e (xn, f(xn)) cruza o eixo OX exatamente no ponto xn+1 dado por xn+1 = f(xn)xn−1 − f(xn−1)xn f(xn)− f(xn−1) . xn−1xnxn+1 Figura 3.11: uma iteração do método da secante Teorema 3.9.1 Suponha que f, f ′, f ′′ são contínuas em todos os pontos de algum inter- valo contendo α raiz simples de f . Se as aproximações iniciais x0 e x1 são suficientemente próximas de α, então a sequência gerada pelo método da secante converge para α . Além disso, a ordem de convergência no método da secante é p = 1 + √ 5 2 ≈ 1.618 . A prova desse resultado pode ser encontrada no livro de K. E. [11]. • Exemplo 3.9.2 D. Andrade Cálculo Numérico 50 Consideremos a equação x tan(x) − 1 = 0. Utilizamos o método da secante para obter uma aproximação para a menor solução positiva. Fazendo uma análise do gráfico, vemos que existem infinitas soluções. Tomando x0 = 0.75 e x1 = 1.0 obtemos as seguintes aproximações, veja tabela 3.4. Tabela 3.4: Método da secante k xk−1 xk f(xk−1) f(xk) 1 0.75 1.0 -0.3013 .5574 2 1.0 0.8377 0.5574 -.06969 3 0.83771 0.8558 -0.06969 -0.0145 4 0.8558 0.8605 -0.0145 0.0005 5 0.8605 0.8603 -0.3312 ×10−5 0 3.9.1 Taxa de convergência do método da secante Agora vamos apresentar a prova do teorema 3.4. Estamos ainda estudando a equação f(x) = 0. Como o método da secante é de passo 2, consideremos os dois pontos (xk−1, yk−1) e (xk, yk) necessários para determinaro próximo (xk+1, yk+1), onde yk = f(xk). Denomi- namos xk de a k-ésima iterada do método da secante. Assumimos que f é pelo menos de classe C2.. Consideremos a k-ésima reta secante yk(x) = yk + (yk − yk−1) (x− xk) (xk − xk−1) , com xk − xk−1 6= 0. Essa reta tem zero localizado em x = xk+1. A expressão para o zero Algoritmo 4Método da secante Dado f(x) = 0, seja x0 e x1 aproximações iniciais e ε > 0 tolerância. 1. n = 1 2. Faça xn+1 = f(xn)xn−1 − f(xn−1)xn f(xn)− f(xn−1) . 3. Se |f(xn+1)| < ε pare, a aproximação é xn+1 4. x0 = x1, xn+1
Compartilhar