Introdução aos Métodos
Numéricos
Instituto de Computação UFF
Departamento de Ciência da Computação
Conteúdo temático
Conteúdo específico
● Fórmula de Lagrange
● Método de Newton-Gregory ● Custo computacional
Fórmula de Lagrange
Fórmula de Lagrange
Se não necessitamos do polinômio na forma canônica podemos usar a fórmula de Lagrange
Parece simples... Mas...
pn(x)=L0(x) y0+L1(x) y1+L2(x) y2+⋯+ Ln(x) yn=
∑
i=0 n
Fórmula de Lagrange
Se não necessitamos do polinômio na forma canônica podemos usar a fórmula de Lagrange
Parece simples... Mas...
pn(x)=L0(x) y0+L1(x) y1+L2(x) y2+⋯+Ln(x) yn=
∑
i=0 n
Fórmula de Lagrange
Mas é simples mesmo! Para facilitar o entendimento...
L0(x)= (x−x1)(x−x2)⋯(x−xn−1)(x−xn) (x0−x1)(x0−x2)⋯(x0−xn−1)(x0−xn) L1(x)= (x−x0)(x−x2)⋯(x−xn−1)(x−xn) (x1−x0)(x1−x2)⋯(x1−xn−1)(x1−xn) L2(x)= (x−x0)(x−x1)⋯(x−xn−1)(x−xn) (x2−x0)(x2−x1)⋯(x2−xn−1)(x1−xn) ⋮ (x−x )(x−x )(x−x )⋯(x−x )
Fórmula de Lagrange
Não confunda simples com fácil e fácil não é o oposto de trabalhoso
Fórmula de Lagrange
Um exemplo
Já sabemos que teremos um polinômio de grau 2 Escrevamos o caso geral para este grau
x f(x)
0 0
π/2 1
Fórmula de Lagrange
Um exemplo L0(x)= (x−x1)(x−x2) (x0−x1)(x0−x2); L1(x)= (x−x0)(x−x2) (x1−x0)(x1−x2) ; L2(x)= (x−x0)(x−x1) (x2−x0)(x2−x1) p2(x)=L0(x) y0+L1(x) y1+L2(x) y2Fórmula de Lagrange
Um exemplo ou L0(x)=(x−π/2)( x−π / 4) (0−π/ 4)(0−π /2) ; L1(x)= (x−0)(x−π /4) (π /2−0)(π/2−π /4); L2(x)= (x−0)( x−π /2) (π /4−0)(π /4−π /2) p2(x)=L0(x)0+ L1(x)×1+ L2(x)√
2 2Fórmula de Lagrange
Um exemplo logo L0(x)= 8 π2(x−π/2)( x−π /4); L1(x)= 8 π2(x−0)( x−π /4); L2(x)=− 16 π2 (x−0)( x−π /2)Fórmula de Lagrange
Um exemplo logo L0(x)= 8 π2(x−π/2)( x−π /4); L1(x)= 8 π2(x−0)( x−π /4); L2(x)=− 16 π2 (x−0)( x−π /2) p2(x)= 8 π2 x(x−π/ 4)− 16 π2 x(x−π/2)√
2 2 = 8 π2[
x(x−π/ 4)−x (x−π/2)√
2]
Fórmula de Lagrange
Calculemos pela fórmula x = π/6 e x = π/3
p2(x)= 8
Fórmula de Lagrange
Calculemos pela fórmula x = π/6 e x = π/3
p2(x)= 8 π2
[
x (x−π/4)−x(x−π/2)√
2]
p2(π /6)= 8 π2[π/6(π /6−π /4)−π/6(π /6−π /2)√2]=8[
1 6(
1 6− 1 4)
− 1 6(
1 6− 1 2)
√2]
=0,517428 p2(π /3)= 8 π2 [π /3(π/3−π /4)−π /3(π/3−π /2)√2]8[
1 3(
1 3− 1 4)
− 1 3(
1 3− 1 2)
√2]
=0,850761Fórmula de Lagrange
Calculemos pela fórmula x = π/6 e x = π/3
p2(x)= 8 π2
[
x (x−π/4)−x(x−π/2)√
2]
p2(π /6)= 8 π2[π/6(π /6−π /4)−π/6(π /6−π /2)√2]=8[
1 6(
1 6− 1 4)
− 1 6(
1 6− 1 2)
√2]
=0,517428 p2(π /3)= 8 π2 [π /3(π/3−π /4)−π /3(π/3−π /2)√2]8[
1 3(
1 3− 1 4)
− 1 3(
1 3− 1 2)
√2]
=0,850761Fórmula de Lagrange
Observação importante:
deixe a expressão deste polinômio neste formato. É trabalho inútil e sujeito a erros tentar “desenvolver“ o polinômio até ficar na forma canônica.
Fórmula de Lagrange
Observação importante:
deixe a expressão deste polinômio neste formato. É trabalho inútil e sujeito a erros tentar “desenvolver“ o polinômio até ficar na forma canônica.
Fórmula de Lagrange
Também não precisamos calcular o polinômio como fizemos Podemos substituir os valores dos pontos mais o valor do ponto no qual queremos calcular o polinômio
Fórmula de Lagrange
A Fórmula de Lagrange pode ser obtida teoricamente usando a regra de Cramer
Fórmula de Lagrange
Fórmula de Lagrange
Qual a vantagem desta fórmula? ● Não resolvemos um sistema
Fórmula de Lagrange
Qual a vantagem desta fórmula? ● Não resolvemos um sistema
Fórmula de Lagrange
Qual a vantagem desta fórmula? ● Não resolvemos um sistema
Qual o problema?
● O cálculo do polinômio não é tão simples e barato como no caso anterior
Fórmula de Lagrange
Qual o custo computacional de calcular um ponto?
É fácil: observe que temos (n+1) Li(x) e em cada um fazemos n multiplicações, 2(n-1) somas e uma divisão
Interpolação
Quais são os problemas dos dois algoritmos que conhecemos até agora?
Vários, mas estudaremos um:
● Não há um procedimento simples se quisermos adicionar mais pontos
Fórmula de
Newton-Gregory
Fórmula de Newton-Gregory Construamos o método
Fórmula de
Newton-Gregory
Um ponto
Qual o polinômio que passa por este ponto? ● p
0(x0) = y0
● É interpolador somente para este ponto (x0, y0)
Fórmula de
Newton-Gregory
Dois pontos
Qual o polinômio que passaria por estes pontos? Sugestão:
(x0, y0),(x1, y1)
Fórmula de
Newton-Gregory
Dois pontos
Qual o polinômio que passaria por estes pontos? Sugestão:
(x0, y0),(x1, y1)
Fórmula de
Newton-Gregory
Dois pontos
Ele passa pelo primeiro ponto, obriguemos que passe pelo outro
(x0, y0),(x1, y1)
Fórmula de
Newton-Gregory
Dois pontos
Ele passa pelo primeiro ponto, obriguemos que passe pelo outro
(x0, y0),(x1, y1)
p1(x1)=p0(x1)+ A( x1−x0)= y1⇒ y0+ A (x1−x0)=y1⇒ A= y1− y0
Fórmula de
Newton-Gregory
Dois pontos
Ele passa pelo primeiro ponto, obriguemos que passe pelo outro
Logo
(x0, y0),(x1, y1)
p1(x1)=p0(x1)+ A( x1−x0)= y1⇒ y0+ A (x1−x0)=y1⇒ A= y1− y0
Fórmula de
Newton-Gregory
Dois pontos
Observe que o polinômio obtido interpola estes dois pontos (x0, y0),(x1, y1)
p1(x)= p0(x)+ y1− y0
Fórmula de
Newton-Gregory
Dois pontos
Observe que o polinômio obtido interpola estes dois pontos (x0, y0),(x1, y1)
p1(x)= p0(x)+ y1− y0
Fórmula de
Newton-Gregory
Antes de adicionar mais pontos, imporemos as seguintes restrições:
Fórmula de
Newton-Gregory
Antes de adicionar mais pontos, imporemos as seguintes restrições:
● Os pontos estarão ordenados em relação a x
Fórmula de
Newton-Gregory
Antes de adicionar mais pontos, imporemos as seguintes restrições:
● Os pontos estarão ordenados em relação a x
Fórmula de
Newton-Gregory
Dois pontos
Assim o polinômio obtido será escrito como (x0, y0),(x1, y1)
p1(x)= p0(x)+ y1− y0
Fórmula de
Newton-Gregory
Três pontos
Preservando o que obtivemos, vamos experimentar o polinômio (x0, y0),(x1, y1),( x2, y2)
Fórmula de
Newton-Gregory
Três pontos (x0, y0),(x1, y1),( x2, y2)
p2(x2)=p1(x2)+B( x2−x0)(x2−x1)=y2⇒ p0(x2)+ y1−y0
Fórmula de
Newton-Gregory
Três pontos (x0, y0),(x1, y1),( x2, y2) p2(x2)=p1(x2)+B( x2−x0)(x2−x1)=y2⇒ p0(x2)+ y1−y0 h (x2−x0)+B(2h)(h)= y2 y0+ y1−y0 h 2h+2h 2B= y 2⇒B= y2−2 y1+ y0 2h2Fórmula de
Newton-Gregory
Três pontos Então (x0, y0),(x1, y1),( x2, y2) p2(x2)=p1(x2)+B( x2−x0)(x2−x1)=y2⇒ p0(x2)+ y1−y0 h (x2−x0)+B(2h)(h)= y2 y0+ y1−y0 h 2h+2h 2B= y 2⇒B= y2−2 y1+ y0 2h2 y −2 y + yFórmula de
Newton-Gregory
Quatro pontos
Já parece natural experimentar o polinômio
que funciona como interpolador dos três primeiros pontos. (x0, y0),(x1, y1),( x2, y2),(x3, y3)
Fórmula de
Newton-Gregory
Quatro pontos (x0, y0),(x1, y1),( x2, y2),(x3, y3) p3(x3)=p2(x3)+C (x3−x0)(x3−x1)(x3−x2)=y3 p1(x3)+ y2−2 y1+ y0 2h2 (x3−x0)(x3−x1)+C (3 h)(2 h)(h)= y3 p0(x3)+ y1−y0 h (x3−x0)+ y2−2 y1+ y0 2h2 6 h 2 +C 6 h3=y3 y −3 y +3 y −yFórmula de
Newton-Gregory
Quatro pontos
que interpola os pontos dados
(x0, y0),(x1, y1),( x2, y2),(x3, y3)
p3(x)= p2(x)+ y3−3 y2+3 y1−y0
Fórmula de
Newton-Gregory
Observe que temos padrões surgindo
y −3 y +3 y −y p2(x)= p1(x)+ y2−2 y1+ y0 2 h2 (x−x0)(x−x1) p1(x)= p0(x)+ y1−y0 h (x−x0) p0(x)= y0
Fórmula de
Newton-Gregory
Fórmula de Newton-Gregory Temos algo como
pi(x )= pi−1(x)+ ?
i! hi(x−x0)(x−x1)(x−x2)⋯(x−xi−1) p0(x)= y0
Operador de diferenças
progressivas
Vamos definir o operador
que é linear. Assim, observe que
Δ f (x)=f (x+δ x)−f (x)
Operador de diferenças
progressivas
Vamos definir o operador
que é linear. Assim, observe que
Δ f (x)=f (x+δ x)−f (x)
Operador de diferenças
progressivas
Vamos definir o operador
que é linear. Assim, observe que
Δ f (x)=f (x+δ x)−f (x)
Δ2f (x)=Δ Δ f (x)=Δ
[
f (x+δ x)−f (x)]
=Δ f (x+δ x)−Δ f ( x) Δ2f (x)=f (x +δ x+δ x)−f (x+δ x)−[
f (x+δ x)−f (x)]
Operador de diferenças
progressivas
Da mesma forma, podemos escrever
Δ3f (x)=Δ Δ2f ( X )=Δ
[
f (x+2 δ x)−2 f (x+δ x)+f (x)]
Δ3f (x)=Δ f (x+2 δ x)−2 Δ f ( x+δ x)+Δ f (x)Operador de diferenças
progressivas
Da mesma forma, podemos escrever
Então
Δ3f (x)=Δ Δ2f ( X )=Δ
[
f (x+2 δ x)−2 f (x+δ x)+f (x)]
Δ3f (x)=Δ f (x+2 δ x)−2 Δ f ( x+δ x)+Δ f (x)Operador de diferenças
progressivas
Observe que podemos continuar a calcular as aplicações múltiplas do operador de diferenças progressivas o quanto quisermos.
No entanto, pararemos por aqui pois já dá para perceber o que queremos
Operador de diferenças
progressivas
Vamos substituir nas expressões encontradas
Δ f ( x0)=f ( x0+h)−f ( x0)=f ( x1)−f ( x0)=y1− y0
Operador de diferenças
progressivas
Vamos substituir nas expressões encontradas
Δ2 f ( x0)=f ( x0+2h)−2 f ( x0+h)+f ( x0)=f ( x2)−2 f ( x1)+f ( x0)=y2−2 y1+ y0
Δ f ( x0)=f ( x0+h)−f ( x0)=f ( x1)−f ( x0)=y1− y0
Operador de diferenças
progressivas
Vamos substituir nas expressões encontradas
Δ3f ( x0)=f ( x0+3 h)−3 f ( x0+2h)+3 f ( x0+h)−f ( x0)=f ( x3)−3 f ( x2)+3 f (x1)+f ( x0)
Δ3f (x )= y −3 y +3 y + y
Δ2 f ( x0)=f ( x0+2h)−2 f ( x0+h)+f ( x0)=f ( x2)−2 f ( x1)+f ( x0)=y2−2 y1+ y0
Δ f ( x0)=f ( x0+h)−f ( x0)=f ( x1)−f ( x0)=y1− y0
Fórmula de
Newton-Gregory
Observando o que obtemos
p3(x)= p2(x)+ y3−3 y2+3 y1− y0 (x−x0)(x−x1)(x−x2) p2(x)= p1(x)+ y2−2 y1+ y0 2 h2 (x−x0)(x−x1) p1(x)= p0(x)+ y1−y0 h (x−x0) p0(x)= y0
Operador de diferenças
progressivas
vemos que o fator “?“ é exatamente dado pelos valores que encontramos aqui com as diferenças progressivas.
Fórmula de
Newton-Gregory
Fórmula de Newton-Gregory pi(x )= pi−1(x)+ Δ i f ( x0) i! hi (x−x0)(x−x1)(x−x2)⋯(x−xi−1) p0(x)= y0Fórmula de
Newton-Gregory
A fórmula parece simples mas o cálculo das diferenças parece um problema.
Fórmula de
Newton-Gregory
A fórmula parece simples mas o cálculo das diferenças parece um problema.
Fórmula de
Newton-Gregory
Observe a tabela abaixo
x y Δf(x) Δ2f(x) Δ3f(x) ... Δnf(x)
x0 y0 y1-y0 y2-2y1+y0 y3-3y2+3y1 -y0 . x1 y1 y2-y1 y3-2y2+y1 .
x2 y2 y3-y2 . .
x3 y3 . . .
Fórmula de
Newton-Gregory
● Colocamos duas colunas em uma tabela contendo os valores de x e y
● Criamos uma nova coluna subtraindo os valores de y progressivamente. Obtemos a primeira diferença
● Criamos outra coluna subtraindo os valores da primeira
Fórmula de
Newton-Gregory
Fórmula de
Newton-Gregory
Experimentando... Três pontos: x f(x) 0 0 π/2 1 π/4 √2/2Fórmula de
Newton-Gregory
Experimentando... Três pontos:
Podemos usar os pontos como estão?
x f(x)
0 0
π/2 1
Fórmula de
Newton-Gregory
Experimentando... Três pontos:
Podemos usar os pontos como estão?
Certamente não: os pontos são igualmente espaçados mas não
x f(x)
0 0
π/2 1
Fórmula de
Newton-Gregory
Ordenando: h = π/4 Tabela x y Δf(x) Δ2f(x) 0 0 π/4 √2/2 π/2 1Fórmula de
Newton-Gregory
Ordenando: h = π/4 Tabela Inicialmente temos x y Δf(x) Δ2f(x) 0 0 √2/2 1-√2 π/4 √2/2 1-√2/2 π/2 1 p0(x)= y0=0Fórmula de
Newton-Gregory
Ordenando: h = π/4 Tabela Inicialmente temos Daí obtemos x y Δf(x) Δ2f(x) 0 0 √2/2 1-√2 π/4 √2/2 1-√2/2 π/2 1 p0(x)= y0=0Fórmula de
Newton-Gregory
Ordenando: h = π/4 Tabela Inicialmente temos x y Δf(x) Δ2f(x) 0 0 √2/2 1-√2 π/4 √2/2 1-√2/2 π/2 1 p0(x)= y0=0Fórmula de
Newton-Gregory
Claramente é um polinômio que interpola os dois primeiros pontos
Calculemos em x=π/6
idêntico aos cálculos anteriores, como era de se esperar. Adicionemos mais um ponto
p1(π /6)= p0(π /6)+ 2π
√
2 π6 =0+
√
2Fórmula de
Newton-Gregory
h = π/4 Tabela Já temos x y Δf(x) Δ2f(x) 0 0 √2/2 1-√2 π/4 √2/2 1-√2/2 π/2 1 p0(x)= y0=0; p1(x)= p0(x)+ π2√
2 xFórmula de
Newton-Gregory
h = π/4 Tabela Já temos E assim x y Δf(x) Δ2f(x) 0 0 √2/2 1-√2 π/4 √2/2 1-√2/2 π/2 1 p0(x)= y0=0; p1(x)= p0(x)+ π2√
2 x Δ2f (x ) 1−√
2Fórmula de
Newton-Gregory
É este polinômio que interpola os três pontos
Calculemos em x=π/6
Temos o resultado anterior para o polinômio do primeiro
grau. Assim...
p2(π /6)= p1(π /6)+ 8
Fórmula de
Newton-Gregory
É este polinômio que interpola os três pontos
Calculemos em x=π/6
Temos o resultado anterior para o polinômio do primeiro
grau. Assim,
p2(π /6)=√
2 3 +8(1−√
2) 1 6 ( 1 6− 1 4 )=√
2 3 − 1−√
2 9 =0,517428 p2(π /6)= p1(π /6)+ 8 π2(1−√
2) π6 ( π6 − π4 )Fórmula de
Newton-Gregory
É este polinômio que interpola os três pontos
Calculemos em x=π/6
Temos o resultado anterior para o polinômio do primeiro
grau. Assim,
p (π /6)=
√
2+8(1−√
2)1 ( 1−1 )=√
2−1−√
2=0,517428p2(π /6)= p1(π /6)+ 8
Fórmula de
Newton-Gregory
O mesmo ocorrerá se calcularmos o polinômio em
x=π/3
Fórmula de
Newton-Gregory
Usando das simetrias do seno, podemos adicionar um
ponto
x y Δf(x) Δ2f(x) Δ3f(x) 0 0 √2/2 1-√2 π/4 √2/2 1-√2/2 π/2 1 3π/4 √2/2Fórmula de
Newton-Gregory
Usando das simetrias do seno, podemos adicionar um
ponto
e construirmos uma tabela ampliada! Vejamos o
polinômio de terceiro grau
x y Δf(x) Δ2f(x) Δ3f(x)
0 0 √2/2 1-√2 2√2-3
π/4 √2/2 1-√2/2 √2-2
π/2 1 √2/2-1
Fórmula de
Newton-Gregory
Usando das simetrias do seno, podemos adicionar um
ponto
e construirmos uma tabela ampliada! Vejamos o
x y Δf(x) Δ2f(x) Δ3f(x)
0 0 √2/2 1-√2 2√2-3
π/4 √2/2 1-√2/2 √2-2
π/2 1 √2/2-1
Fórmula de
Newton-Gregory
Ou dando uma arrumada
Calculando em x=π/6
p3(x)= p2(x)+ 323 π3 (2√2−3) x ( x−π/ 4)( x−π/2)
p3(π/6)= p2(π/6)+ 32
Fórmula de
Newton-Gregory
Ou dando uma arrumada
Calculando em x=π/6
p3(x)= p2(x)+ 323 π3 (2√2−3) x ( x−π/ 4)( x−π/2)
p3(π/6)= p2(π/6)+ 32
Fórmula de
Newton-Gregory
As vantagens desta fórmula se tornam evidentes:
●
Adicionar um ponto novo é de custo baixo (O(n))
●
Podemos aproveitar todos os cálculos anteriores
Fórmula de
Newton-Gregory
E o custo total disto?
Construir a tabela
Fazemos n-1 subtrações na primeira coluna, n-2 na
segunda, n-3 na terceira, etc. Ou seja, (n-1)(n)/2
Fórmula de
Newton-Gregory
E o custo total disto?
Cálculo de um valor do polinômio
p0(x)= y0; p1(x)= p0(x)+Δ f ( x0) h (x−x0); p2(x)= p1(x)+ Δ2f ( x0) 2 h2 (x−x0)(x−x1) p3(x)= p2(x)+ Δ 3 f ( x0) 6 h3 (x−x0)(x−x1)(x−x2)Fórmula de
Newton-Gregory
E o custo total disto?
●
Construir a tabela custa O(n
2)
●
Cada cálculo do polinômio custa O(n
2)
●