8 May 2008. 20:02 Cálculo Numérico / Métodos Numéricos Interpolação Polinomial Fórmula de...
Transcript of 8 May 2008. 20:02 Cálculo Numérico / Métodos Numéricos Interpolação Polinomial Fórmula de...
8 May 2008 . 20:02
Cálculo Numérico / Métodos Numéricos
Interpolação PolinomialFórmula de Newton
15 May 2008 . 20:41
Interpolação polinomial
Interpolação de n+1 pontos através de um polinômio de grau n:
(x0,y0), (x1,y1), ... (xn,yn) polinômio
15 May 2008 . 20:41
Lagrange
Através da definição de funções:
é possível obter o polinômio interpolatório sem resolver um sistema linear (fórmula de Lagrange).
15 May 2008 . 20:41
Problema da fórmula de Lagrange
Imagine que se queira o polinômio para os pontos:
Como vimos, obtemos o polinômio: P(x) = x2-6x+8 que interpola estes pontos.
Porém, se adicionamos mais uma medida:
Temos que calcular todo o novo polinômio desde o princípio, sem poder fazer uso da informação que já temos (para os três primeiros pontos).
15 May 2008 . 20:41
Fórmula de Newton
A fórmula interpolatória de Newton resolve este problema:
Para calcular o novo polinômio (para n+1 pontos), usamos o polinômio que já temos (que interpola os n primeiros pontos) e adicionamos novos termos.
Antes de aprender a fórmula interpolatória de Newton, vejamos uns conceitos mais básicos...
15 May 2008 . 20:41
Diferenças divididas
Definimos as diferenças divididas de uma função através de uma fórmula recursiva:
Diferenças divididas de ordem 0:
Diferenças divididas de ordem superior:
diferença dividida de todos menos o primeirodiferença dividida de todos menos o último
último menos o primeiro
15 May 2008 . 20:41
Diferenças divididas
Exemplo:
Tome a função f(x)=1/x e x0=1, x1=2, x2=4 e x3=5 e calcule f[x0,x1
,x2,x3]
f[x0] = f(x0)=1
f[x1] = f(x1)=1/2
f[x2] = f(x2)=1/4
f[x3] = f(x3)=1/5
f[x0,x1] = (f[x1]-f[x0])/(x1-x0) = -1/2f[x1,x2] = (f[x2]-f[x1])/(x2-x1) = -1/8f[x2,x3] = (f[x3]-f[x2])/(x3-x2) = -1/20
15 May 2008 . 20:41
Diferenças divididas
Exemplo:
Tome a função f(x)=1/x e x0=1, x1=2, x2=4 e x3=5 e calcule f[x0,x1
,x2,x3]
f[x0] = f(x0)=1
f[x1] = f(x1)=1/2
f[x2] = f(x2)=1/4
f[x3] = f(x3)=1/5
f[x0,x1] = -1/2f[x1,x2] = -1/8f[x2,x3] = -1/20
f[x0,x1,x2] = (f[x1,x2] - f[x0,x1])/(x2-x0) = 1/8
f[x1,x2,x3] = (f[x2,x3] - f[x1,x2])/(x3-x1) = 12/160
15 May 2008 . 20:41
Diferenças divididas
Exemplo:
Tome a função f(x)=1/x e x0=1, x1=2, x2=4 e x3=5 e calcule f[x0,x1
,x2,x3]
f[x0] = f(x0)=1
f[x1] = f(x1)=1/2
f[x2] = f(x2)=1/4
f[x3] = f(x3)=1/5
f[x0,x1] = -1/2f[x1,x2] = -1/8f[x2,x3] = -1/20
f[x0,x1,x2] = 1/8f[x1,x2,x3] = 4/160
f[x0,x1,x2,x3,x4] = (f[x1,x2,x3]-f[x0,x1,x2])/(x3-x0) = -1/40
15 May 2008 . 20:41
Esquema prático
15 May 2008 . 20:41
Esquema prático (exemplo)
x Ordem 0 Ordem 1 Ordem 2 Ordem 3
1
2
4
5
1
1/2
1/4
1/5
-1/2
-1/8
-1/20
1/8
4/160
-1/40
f(x)=1/x e x0=1, x1=2, x2=4 e x3=5. Calcule f[x0,x1,x2,x3]
15 May 2008 . 20:41
Outra maneira de calcular
Teorema: Seja f(x) uma função contínua, (n+1) vezes diferenciável em [a,b]. Sejam x0, x1,... xn, (n+1) pontos distintos de [a,b].
15 May 2008 . 20:41
Note que pela nova fórmula, vemos que a ordem dos pontos não importa, logo:
f[xo,x1, ..., xn] = f[xn, xn-1,... x1] = f[x2, x6, ...] = ...
Corolário I
uma permutação qualquer
Ou seja, diferenças divididas são funções simétricas.
15 May 2008 . 20:41
As diferenças divididas de ordem k de uma função satisfazem:
Corolário II
Ou seja, podemos fazer o cálculo "eliminando" quaisquer dois pontos, e não apenas o primeiro e o último.
15 May 2008 . 20:41
Fórmula de Newton
Usando as idéias de diferenças divididas, definimos as funções abaixo:
...
(x x0)
(x x0,x1)
(x x0...xn)(calculadas usando o corolário 8.3)
15 May 2008 . 20:41
Fórmula de Newton
Das equações definidas, temos:
um ponto (n=0)
dois pontos (n=1)
15 May 2008 . 20:41
Para n+1 pontos:
= polinômio de interpolação sobre os pontos x0, x1... xn
Isto é: Pn(xk) = f(xk)
Pn(x)
15 May 2008 . 20:41
Antes de provar, vejamos quem é Pn(x):P1(x) = f[x0] + (x-x0)f[x0,x1]
P2(x) = f[x0] + (x-x0)f[x0,x1] + (x-x0)(x-x1) f[x0,x1,x2]
Pn(x) = Pn-1(x) + (x-x0)...(x-xn-1) f[x0,x1,x2...xn]
P1(x)
15 May 2008 . 20:41
Prova
Provaremos por indução a) Provaremos que é válido para n=1 (dois pontos) b) Provaremos que se é válido pra n=k-1, será válido para n=k.
a) Para n=1 (dois pontos), temos:
P1(x0) = f(x0) + (x0-x0) (f(x1)-f(x0))/(x1-x0) = f(x0)
P1(x1) = f(x0) + (x1-x0) (f(x1)-f(x0))/(x1-x0) = f(x1)
15 May 2008 . 20:41
Prova
b)Suponha que seja válido para n=k-1, isto é:
Pk-1(xi) = f(xi), i=1,...,k-1.
Sabemos que: Pk(x) = Pk-1(x) + (x-x0)...(x-xk-1) f[x0,x1,...,xk]
Vamos provar em duas etapas. b1) i < k, então:Pk(xi) = Pk-1(xi) + (xi-x0)...(xi-xk-1) f[x0,x1,...,xk]
Pk(xi) = Pk-1(xi) = f(xi)
o termo (xi-xi) anula esta parte.
hipótese da indução
15 May 2008 . 20:41
Prova
b2) i = kRetomemos a expressão de f
Pk(xk)
=0, para x= xk
logo, f(xk) = P(xk)
15 May 2008 . 20:41
Exemplo
Dados os pontos abaixo, calcular o polinômio interpolatório, usando a fórmula de Newton.
Sabemos que:
Precisamos calcular: f[xo], f[x0,x1], f[x0,x1,x2]
15 May 2008 . 20:41
Exemplo (solução)
Usando o esquema prático
15
8
-1
-1
0
3
-7
-3
1
logo:
15 May 2008 . 20:41
Erro de truncamento Mais uma vez, retomando a expressão da função
f(x) em termos das diferenças divididas:Pk(xk)
logo:f(x)-Pn(x) = erro de truncamento =
15 May 2008 . 20:41
Esquema prático
Se não nos interessa calcular a forma geral do polinômio, mas queremos calculá-lo apenas em um ponto, podemos usar a estratégia de pôr em evidência os termos comuns para facilitar os cálculos:
Exemplificando no caso P3:
15 May 2008 . 20:41
Esquema prático
15 May 2008 . 20:41
Esquema prático
15 May 2008 . 20:41
Exemplo
Calcular o valor aproximado de f(1), dados os pontos,
f[x0] = 15f[x0,x1]= -7f[x0,x1,x2]= 1
1
1
1 2
-7 15
-6 3