Introdução aos Métodos Numéricos Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho
Conteúdo Erros e Aproximações Numéricas Sistemas de Equações Lineares. Métodos diretos Interpolação Ajuste de Curvas Zeros de Função Sistemas de Equações Lineares. Métodos Iterativos Integração Numérica Introdução à Resolução de Equações Diferenciais Ordinárias
Conteúdo Interpolação
Definamos R n (x)=f (x) p n (x) o erro cometido por adotarmos o polinômio interpolador p n (x) no lugar da função interpolada f(x). Logo R n (x i )=f (x i ) p n (x i )=0 ; i onde x i são os pontos interpolantes. R n (x) se anula em n+1 pontos
Aparentemente isto não nos ajuda muito. Necessitamos de algo que nos dê informação quando w x i. Seja então S n (x)=f (x) p n (x)+k Q n+1 (x);q n+1 (x)=(x x 0 )(x x 1 )(x x 2 ) (x x n ) Observe que S n (x i )=f (x i ) p n (x i )+k Q n+1 (x i )=0 S n (x) se anula também em n+1 pontos
Aparentemente também isto não nos ajuda muito. Mas olhe com cuidado S n (x)=f (x) p n (x) k Q n+1 ( x) Temos uma fator livre, k, que nos dá liberdade de perguntar quanto vale S n (x) num ponto w x i
Vamos supor que exista este w x i tal que zere S n (x) S n (w)=f (w) p n (w)+k (w x 0 )(w x 1 )(w x 2 ) (w x n )=0 Existe um valor para k que possibilite isto? De fato k existe se w x i para todo i f (w) p k= n (w) (w x 0 )(w x 1 )(w x 2 ) (w x n ) = f (w) p n(w) Q n+1 (w)
Com este valor para k, S n (x) se anula em n+2 pontos Temos agora um ponto extra, diferente dos pontos interpolantes, que pode ser qualquer um dentro do intervalo que contenha os pontos interpolantes Um gráfico esquemático de Sn (x) poderia ser
Conseguimos definir o problema Também incluimos um ponto que não é um dos pontos interpolantes Mas temos coisas demais para conseguir trabalhar. Solução? Usar uma ferramenta matemática...
Teorema de Rolle Seja f(x) contínua no intervalo [a,b] e diferenciável em (a,b). Seja ainda que f(a) = f(b) = 0. Então existe pelo menos um número c no interior de (a,b) tal que f ' (c)=0 Repare nas figuras abaixo para entender um pouco...
Na primeira figura temos um valor onde a derivada se anula e na segunda temos três. Na terceira temos a situação em que a função não tem derivada no intervalo e, portanto, o teorema não é válido
Retornemos à função S n (x) que se anula em n+2 pontos aplicando o Teorema de Rolle em cada um dos intervalos onde S n (x) se anula nos extremos, podemos afirmar que S n '(x) se anula em pelo menos n+1 pontos
Se aplicarmos o teorema de Rolle à (x), poderemos ' afirmar que S ' n (x) se anula em pelo menos n pontos. Continuando este procedimento, se aplicarmos o Teorema de Rolle n+1 vezes, poderemos afirmar que S (n+1) n (x) e anulará pelo menos uma vez. O uso sucessivo do Teorema de Rolle reduz o número de coisas que não sabemos ao mínimo útil : 1 Chamaremos este número que anula S (n+1) n (x) de α. Claramente α está dentro do intervalo de interpolação S n '
Derivemos n+1 vezes S n (x) S (n+1)(x) n =f (n+1) ( x) p (n+1) n (x)+k Q (n+1) n+1 (x) Observe que a derivada n+1 ésima de um polinômio de grau n é zero. Qual é a derivada de Q n+1 (x)? Pensemos...
Reescrevamos Q n+1 (x) Q n+1 (x)=(x x 0 )(x x 1 )(x x 2 ) (x x n )=x Q n (x) x n Q n (x); Q n (x)=(x x 0 )(x x 1 )(x x 2 ) (x x n 1 ) Observe que temos a soma de um polinômio de grau n+1,, com um polinômio de grau n, x Q n (x) x n Q n ( x)
Estabelecendo isto, reescrevamos Q n (x) Q n (x)=(x x 0 )(x x 1 )(x x 2 ) (x x n 1 )=x Q n 1 (x) x n 1 Q n 1 (x); Q n 1 (x)=(x x 0 )(x x 1 )(x x 2 ) (x x n 2 ) assim Q n+1 (x)=(x x 0 )(x x 1 )(x x 2 ) (x x n )=x 2 Q n 1 (x) x n 1 x Q n 1 (x) x n x Q n 1 (x)+ x n 1 Q n 1 (x); Q n 1 (x)=(x x 0 )(x x 1 )(x x 2 ) (x x n 2 )
Q n+1 (x)=(x x 0 )(x x 1 )(x x 2 ) (x x n )=x 2 Q n 1 (x) x n 1 x Q n 1 (x) x n x Q n 1 (x)+ x n 1 Q n 1 (x); Q n 1 (x)=(x x 0 )(x x 1 )(x x 2 ) (x x n 2 ) Observando que este desenvolvimento tem como objetivo derivar Q n+1 (x) n+1 vezes, concentraremos nossos esforços no único termo que sobreviverá à derivação e escreveremos a expressão acima como Q n+1 (x)=(x x 0 )(x x 1 )(x x 2 ) (x x n )=x 2 Q n 1 (x)+ ; Q n 1 (x)=(x x 0 )(x x 1 )(x x 2 ) (x x n 2 )
Continuando o processo teremos Q n+1 (x)=(x x 0 )(x x 1 )(x x 2 ) (x x n )=x n Q 1 (x)+ ; Q 1 (x)=(x x 0 ) que finalmente nos deixa com Q n+1 (x)=(x x 0 )(x x 1 )(x x 2 ) (x x n )=x n+1 +q n (x) onde q n (x) é um polinômio de grau n.
Assim temos que a derivada n+1 de que nos dá Q (n+1) n+1 (x)=(x n+1 ) (n +1) (n +q +1) n (x)=(n+1)! Q n (x) será S (n+1) n (x)=f (n+1) (x) p (n+1) n (x)+k Q (n+1) n+1 (x)=f (n+1) (x)+k (n+1)! Vejamos a condição para que aquele ponto α (que anula a derivada n+1 de S n+1 (x)) exista
que resulta em f (n+1) (α)+k(n+1)!=0 k= f (n+1) (α) (n+1)! Aparentemente temos uma encrenca pois começamos todo este processo baseados que existia um ponto extra que anula S n+1 (x) e para isto é necessário que k= f (w) p n(w) Q n+1 (w)
A solução é simples, estas equações devem ser iguais f (w) p n (w) Q n+1 (w) = f (n+1) (α) (n+1)! f (w) p n(w)= f (n+1) (α) (n+1)! Q n+1(w) Repare na equação acima: temos nela o que definimos como erro na interpolação.então escrevamos R n (w)= f (n+1) (α) (n+1)! Q n+1(w)
Mas w é qualquer ponto dentro do intervalo de interpolação e a fórmula de erro é válida para os pontos interpoladores. Assim escreveremos R n ( x)= f (n+1) (α) (n+1)! Q n+1(x)
Qual a utilidade deste resultado? R n ( x)= f (n+1) (α) (n+1)! Q n+1(x) Duas coisas são bem evidentes: Quanto maior o número de pontos, menor o erro Quanto mais suave a função f(x), menor o erro
mas tem uma mais sutil no termo Q n+1 (x): Se os pontos forem afastados entre si, ao calcularmos esta expressão em qualquer ponto, os produtos das diferenças terão elementos grandes. Se os pontos forem próximos entre si estes produtos serão menores. Assim teremos...
O que nos transmite este resultado? R n ( x)= f (n+1) (α) (n+1)! Q n+1(x) Quanto maior o número de pontos, menor o erro Quanto mais suave a função f(x), menor o erro Quanto mais próximos os pontos interpolantes, menor o erro
O que nos transmite este resultado? R n ( x)= f (n+1) (α) (n+1)! Q n+1(x) Esta fórmula nos diz que as observações que fizemos nas experiências numéricas foram confirmadas para qualquer função dada Para isto serve a teoria, para não termos de ficar repetindo inutilmente experiências
Numericamente esta fórmula tem utilidade direta reduzida mas ela observa que só raramente temos como reconstruir a função original e, neste casos, a interpolação perde sua função
Interpolação Observações gerais sobre interpolação Feita a escolha das fi (x) a F(x) será única A escolha de polinômios na forma canônica é útil mas tem seus problemas, como veremos
Interpolação Observações gerais sobre interpolação A figura mostra duas F(x) interpoladoras válidas com f i (x) diferentes Observem a conveniência da escolha das funções f i (x) com o que pretendemos
Usando a interpolação Se você necessitar fazer interpolação Quantos pontos usará? Muitos pontos dão maior precisão e mais custo computacional Quais pontos? A seleção afeta a precisão
Usando a interpolação Adiaremos a discussão para quando tivermos outras maneiras de interpolarmos usando outras técnicas
Eficiência em cálculos com polinômios Qual o custo computacional de calcularmos um ponto? Lembre-se que um computador é uma máquina de quatro operações disfarçada Pensemos o cálculo de potências no polinômio como operações de multiplicação p n ( x)=a 0 +a 1 x+a 2 x 2 + +a n x n
Eficiência em cálculos com polinômios p n ( x)=a 0 +a 1 x+a 2 x 2 + +a n x n Observe na equação acima o número de multiplicações No termo com a0 não temos operações no termo a1 temos uma multiplicação no termo a2 temos duas multiplicações etc. no termo an teremos n multiplicações
Eficiência em cálculos com polinômios p n ( x)=a 0 +a 1 x+a 2 x 2 + +a n x n Observe na equação acima o número de somas Serão n-1 somas Custo total: 1 + 2 + 3 + + n multiplicações = n(n+1)/2 n-1 somas
Eficiência em cálculos com polinômios p n ( x)=a 0 +a 1 x+a 2 x 2 + +a n x n Calcular um polinômio de grau n na forma canônica tem custo O(n 2 ) É um custo alto se tivermos de calcular muitos pontos
Algoritmo de Horner Para facilitar o entendimento, seja o polinômio abaixo p 4 (x)=a 0 +a 1 x+a 2 x 2 +a 3 x 3 +a 4 x 4 observe que podemos escrevê-lo como p 4 (x)=a 0 + x(a 1 +a 2 x+a 3 x 2 +a 4 x 3 )=a 0 + x(a 1 + x(a 2 +a 3 x+a 4 x 2 )) p 4 (x)=a 0 +x(a 1 +x(a 2 + x(a 3 +a 4 x)))
Algoritmo de Horner Conte as operações p 4 (x)=a 0 +a 1 x+a 2 x 2 +a 3 x 3 +a 4 x 4 p 4 (x)=a 0 + x(a 1 + x(a 2 + x(a 3 +a 4 x))) Canônico: 10 multiplicações + 4 somas Horner: 4 multiplicações + 4 somas
Algoritmo de Horner O Custo é O(n) Para o caso de um polinômio dado pelos coeficientes do polinômio canônico p n ( x)=a 0 +a 1 x+a 2 x 2 + +a n x n O algoritmo de Horner será p a n Para i n 1 até 0 p p x p p+a i