Introdução aos Métodos Numéricosotton/.../Interpolacao...Geral_Interpolacao_polinomia… ·...
Transcript of Introdução aos Métodos Numéricosotton/.../Interpolacao...Geral_Interpolacao_polinomia… ·...
Introdução aos Métodos Numéricos
Instituto de Computação UFFDepartamento de Ciência da Computação
Otton Teixeira da Silveira Filho
Conteúdo específico
● Aspectos básicos
● Obtenção direta de funções interpoladoras
● Interpolação polinomial
● Um exemplo simples
Interpolação
Temos um conjunto de n+1 pontos distintos
que são oriundos de uma função f(x). Como fazemos se queremos calcular a função num ponto w diferente dos demais?
(x0, y0) ,(x1, y1),(x2, y2) ,(x3, y3) ,⋯,(xn , yn)
Interpolação
● Este problema se torna interessante quando a função f(x) em questão é de custo computacional muito alto no seu cálculo direto, de forma que podemos ter a resolução de problemas inviabilizadas por este custo.
Interpolação
● Este problema se torna interessante quando a função f(x) em questão é de custo computacional muito alto no seu cálculo direto, de forma que podemos ter a resolução de problemas inviabilizadas por este custo.
● O cálculo alternativo deverá ser de custo computacional mais baixo que o custo de cálculo direto da função.
Interpolação
● Este problema se torna interessante quando a função f(x) em questão é de custo computacional muito alto no seu cálculo direto, de forma que podemos ter a resolução de problemas inviabilizadas por este custo.
● O cálculo alternativo deverá ser de custo computacional mais baixo que o custo de cálculo direto da função.
● A precisão deverá ser compatível com nossas necessidades
Interpolação
Podemos pensar na seguinte linha:
Encontrarmos uma função que agregue os pontos e algumas das propriedades da função original, f(x)
Interpolação
Podemos pensar na seguinte linha:
Encontrarmos uma função que agregue os pontos e algumas das propriedades da função original, f(x)
Chamaremos esta nova função de F(x)
Interpolação
Podemos pensar na seguinte linha:
Encontrarmos uma função que agregue os pontos e algumas das propriedades da função original, f(x)
Chamaremos esta nova função de F(x)
Mas qual a cara desta função?
Interpolação
Podemos pensar na seguinte linha:
Encontrarmos uma função que agregue os pontos e algumas das propriedades da função original, f(x)
Chamaremos esta nova função de F(x)
Mas qual a cara desta função?
Como escolher uma função suficientemente flexível e simples?
Interpolação
No mínimo a função F(x) deve ser igual à função f(x) no pontos que temos, ou seja,
F ( xi)=f (xi);i=1,⋯,n
Interpolação
Faremos a proposta
ou seja, F(x) é uma combinação linear de funções, a priori, quaisquer. Exijamos que ela seja idêntica nos valores que temos de f(x)
F ( x)=a0 f 0(x)+a1 f 1(x)+a2 f 2(x)+⋯+am f m( x)=∑j=0
m
a j f j (x)
Interpolação
Isto nos leva a
Repare que você conhece isto. Façamos uma arrumação...
F ( x0)=a0 f 0(x0)+a1 f 1(x0)+a2 f 2(x0)+⋯+am f m(x0)= y0
F ( x1)=a0 f 0( x1)+a1 f 1( x1)+a2 f 2(x1)+⋯+am f m (x1)= y1
F (x2)=a0 f 0(x2)+a1 f 1(x2)+a2 f 2(x2)+⋯+am f m(x2)= y2
⋮F ( xn)=a0 f 0(xn)+a1 f 1(xn)+a2 f 2(xn)+⋯+am f m(xn)= yn
Interpolação
Matriz (n+1)x(m+1)
Para termos solução e esta ser única é necessário que
(f 0(x0) f 1(x0) f 2(x0) f 3(x0) ⋯ f m (x0)
f 0(x1) f 1(x1) f 2(x1) f 3(x1) ⋯ f m(x1)
f 0(x2) f 1(x2) f 2(x2) f 3(x2) ⋯ f m (x2)
f 0(x3) f 1(x3) f 2(x3) f 3(x3) ⋯ f m (x3)⋮ ⋮ ⋮ ⋮ ⋯ ⋮
f 0(xn) f 1(xn) f 2(xn) f 3(xn) ⋯ f m (xn)) (a0
a1
a2
a3
⋮am
)=(y0
y1
y2
y3
⋮yn
)
Interpolação
Matriz (n+1)x(m+1)
Para termos solução e esta ser única é necessário que
● A matriz seja quadrada
● O determinante seja não nulo
(f 0(x0) f 1(x0) f 2(x0) f 3(x0) ⋯ f m (x0)
f 0(x1) f 1(x1) f 2(x1) f 3(x1) ⋯ f m(x1)
f 0(x2) f 1(x2) f 2(x2) f 3(x2) ⋯ f m (x2)
f 0(x3) f 1(x3) f 2(x3) f 3(x3) ⋯ f m (x3)⋮ ⋮ ⋮ ⋮ ⋯ ⋮
f 0(xn) f 1(xn) f 2(xn) f 3(xn) ⋯ f m (xn)) (a0
a1
a2
a3
⋮am
)=(y0
y1
y2
y3
⋮yn
)
Interpolação
● A matriz ser quadrada implica que o número de pontos (n+1) deverá ser igual ao número de funções (m+1) na combinação linear que constitui F(x)
Interpolação
● A matriz ser quadrada implica que o número de pontos (n+1) deverá ser igual ao número de funções (m+1) na combinação linear que constitui F(x)
● O determinante ser não nulo implica que:
● nenhuma linha é combinação linear das demais
● nenhuma coluna é combinação linear das demais
Interpolação
● nenhuma linha ser combinação linear das demais implica que não termos pontos duplicados
Interpolação
● nenhuma linha ser combinação linear das demais implica que não termos pontos duplicados
● nenhuma coluna ser combinação linear das demais implica que as funções fi(x) devem ser linearmente independentes. Ou seja, que não podemos representar uma delas como combinação linear das outras
Interpolação
Garantidas estas condições, a resolução do sistema abaixo nos dará a solução para o nosso problema
Existem boas escolhas para as funções. Mostraremos uma importante (mas não a melhor...)
(f 0(x0) f 1(x0) f 2(x0) f 3(x0) ⋯ f n(x0)
f 0(x1) f 1(x1) f 2(x1) f 3(x1) ⋯ f n(x1)
f 0(x2) f 1(x2) f 2(x2) f 3(x2) ⋯ f n(x2)
f 0(x3) f 1(x3) f 2(x3) f 3(x3) ⋯ f n(x3)⋮ ⋮ ⋮ ⋮ ⋯ ⋮
f 0(xn) f 1(xn) f 2(xn) f 3(xn) ⋯ f n(xn)) (a0
a1
a2
a3
⋮an
)=(y0
y1
y2
y3
⋮yn
)
Interpolação
Interpolação polinomial
Nossa F(x) será
e nossa matriz tomará a forma
f i(x)=x i
F ( x)=a0 x0+a1 x
1+a2 x
2+⋯+an x
n=a0+a1 x+a2 x
2+⋯+an x
n=pn(x)
Interpolação
conhecida como matriz de Vandermonde e
(1 x0 x0
2 x03
⋯ x0n
1 x1 x12 x1
3⋯ x1
n
1 x2 x22 x2
3 ⋯ x2n
1 x3 x32 x3
3⋯ x3
n
⋮ ⋮ ⋮ ⋮ ⋯ ⋮
1 xn xn2 xn
3⋯ xn
n) (a0
a1
a2
a3
⋮an
)=(y0
y1
y2
y3
⋮yn
)pn(x)=a0+a1 x+a2 x
2+⋯+an x
n
Interpolação
Assim necessitaremos de resolver este sistema para obtermos o polinômio interpolador.
● Já vimos que o custo computacional de resolver um sistema de equações geral é O(n3), ou seja, muito alto
● Mas este não é um sistema geral pois tem uma estrutura muito específica
Interpolação
A matriz de Vandermonde
tem como determinante
(1 x0 x0
2 x03
⋯ x0n
1 x1 x12 x1
3⋯ x1
n
1 x2 x22 x2
3 ⋯ x2n
1 x3 x32 x3
3⋯ x3
n
⋮ ⋮ ⋮ ⋮ ⋯ ⋮
1 xn xn2 xn
3⋯ xn
n) (a0
a1
a2
a3
⋮an
)=(y0
y1
y2
y3
⋮yn
)∏
1≤i≤ j≤n
(x j−x i)
Interpolação
Para entender melhor, se a matriz fosse
o determinante seria
de custo computacional O(n). No caso de um sistema geral o custo do determinante é O(n3)
(1 x0 x0
2 x03
1 x1 x12 x1
3
1 x2 x22 x2
3
1 x3 x32 x3
3 )(a0
a1
a2
a3
)=(y0
y1
y2
y3
)(x1−x0)(x2−x0)(x2−x1)(x3−x0)(x3−x1)(x3−x2)
Interpolação
Isto parece indicar que resolver este sistema será de custo computacional menor do que no caso de um sistema geral
Interpolação
Isto parece indicar que resolver este sistema será de custo computacional menor do que no caso de um sistema geral
Mas não nos apressemos. Veja ao final do material de interpolação um algoritmo de resolução mais eficiente
Interpolação
Isto parece indicar que resolver este sistema será de custo computacional menor do que no caso de um sistema geral
Mas não nos apressemos. Veja ao final do material de interpolação um algoritmo de resolução mais eficiente
Retornemos ao resultado que obtivemos
Interpolação
A partir da solução do sistema
obteremos o polinômio interpolador
(1 x0 x0
2 x03
⋯ x0n
1 x1 x12 x1
3⋯ x1
n
1 x2 x22 x2
3 ⋯ x2n
1 x3 x32 x3
3⋯ x3
n
⋮ ⋮ ⋮ ⋮ ⋯ ⋮
1 xn xn2 xn
3⋯ xn
n) (a0
a1
a2
a3
⋮an
)=(y0
y1
y2
y3
⋮yn
)pn(x)=a0+a1 x+a2 x
2+⋯+an x
n
Interpolação
Observe que o resultado que obtemos pode ser resumido em:
● Dado (n+1) pontos distintos, por eles passamos um e um único polinômio de grau máximo n
Interpolação
Os n+1 de pontos distintos
são chamados de pontos interpolantes e os valores calculados a partir da F(x), valores interpolados.
(x0, y0) ,(x1, y1),(x2, y2) ,(x3, y3) ,⋯,(xn , yn)
Interpolação
Os n+1 de pontos distintos
são chamados de pontos interpolantes e os valores calculados a partir da F(x), valores interpolados.
● Só serão valores interpolados aqueles que estiverem contidos dentro do intervalo que contém todos os pontos interpolantes
(x0, y0) ,(x1, y1),(x2, y2) ,(x3, y3) ,⋯,(xn , yn)
Interpolação – Um exemplo simples
Do círculo trigonométrico (r=1)
obtemos que o seno de 0 é 0
e que o seno de π/2 é 1.
Interpolação – Um exemplo simples
Do círculo trigonométrico (r=1)
obtemos que o seno de 0 é 0
e que o seno de π/2 é 1.
Se o ângulo for π/4 teremos um quadrado de diagonal igual a 1 e o lado igual ao seno de π/4. Assim teremos
diagonal=√2 lado⇒1=√2 lado⇒ lado=√22
Interpolação – Um exemplo simples
Ficamos assim com os pontos interpolantes
Façamos uma série de experimentos numéricos
x f(x)
0 0
π/2 1
π/4 √2/2
Interpolação – Um exemplo simples
Dois pontos:
O sistema de equações será 2x2 pois temos dois pontos
x f(x)
0 0
π/2 1
Interpolação – Um exemplo simples
Dois pontos:
O sistema de equações será 2x2 pois temos dois pontos
x f(x)
0 0
π/2 1
(1 x0
1 x1) (a0
a1)=( y0
y1)⇒ (1 0
1 π/2 ) (a0
a1)=(01 )
Interpolação – Um exemplo simples
Dois pontos:
O sistema de equações será 2x2 pois temos dois pontos
x f(x)
0 0
π/2 1
(1 x0
1 x1) (a0
a1)=( y0
y1)⇒ (1 0
1 π/2 ) (a0
a1)=(01 )⇒a0=0 ; a1=2/ π
p1(x)=0+2π x⇒ p1(x)=
2π x
Interpolação – Um exemplo simples
Dois pontos:
Façamos uma experiência: qual o valor deste polinômio interpolador para x = π/6 e x = π/3?
x f(x)
0 0
π/2 1
Interpolação – Um exemplo simples
Dois pontos:
Façamos uma experiência: qual o valor deste polinômio interpolador para x = π/6 e x = π/3?
x f(x)
0 0
π/2 1
p1(x)=2π x⇒ p1(π /6)=
2π
π6=
13=0, 33; p1(π /3)=
2π
π3=
23=0,66
Interpolação – Um exemplo simples
Dois pontos:
Bem ruim...
x f(x) p1(x)
π/6 0,5 0,33...
π/3 √3/2≈0,866025 0,66...
Interpolação – Um exemplo simples
Dois pontos:
Bem ruim...
mas...
x f(x) p1(x)
π/6 0,5 0,33...
π/3 √3/2≈0,866025 0,66...
Interpolação
...mas também foi uma maldade com o método, afinal o que queríamos aproximando seno por uma reta?
Interpolação – Um exemplo simples
Dois pontos:
O sistema de equações será 2x2 pois temos dois pontos
x f(x)
0 0
π/4 √2/2
Interpolação – Um exemplo simples
Dois pontos:
O sistema de equações será 2x2 pois temos dois pontos
x f(x)
0 0
π/4 √2/2
(1 x0
1 x1) (a0
a1)=( y0
y1)⇒ (1 0
1 π/4 ) (a0
a1)=( 0
√2/2 )
Interpolação – Um exemplo simples
Dois pontos:
O sistema de equações será 2x2 pois temos dois pontos
x f(x)
0 0
π/4 √2/2
(1 x0
1 x1) (a0
a1)=( y0
y1)⇒ (1 0
1 π/4 ) (a0
a1)=( 0
√2/2 )⇒a0=0; a1=4 / π√22
=2√2π
p1(x)=0+2√2π x⇒ p1(x)=
2√2π x
Interpolação – Um exemplo simples
Dois pontos:
Novamente calculemos o polinômio nos pontos x = π/6 e x = π/3
x f(x)
0 0
π/4 √2/2
p1(x )=2√2π x⇒ p(π /6)=
2√2π
π6=
√23
≈0,471404 ; p(π/3)=2√2π
π3=
2√23
≈0,942809
Interpolação – Um exemplo simples
Dois pontos:
Um ficou razoável mas o outro continua ruim, mas...
x f(x) p1(x)
π/6 0,5 0,471404
π/3 √3/2≈0,866025 0,942809
Interpolação
...mas agora não foi maldade mas violência, afinal o método é de interpolação e o ponto x = π/3 está fora do intervalo de interpolação! Ou seja, o valor calculado é número sem significado para uma interpolação.
Interpolação – Um exemplo simples
Dois pontos:
O curioso é que mesmo fazendo a maldade de aproximar seno por uma reta, o valor em x = π/6 melhorou muito quando diminuimos a distância entre os pontos...
x f(x) p1(x)
π/6 0,5 0,471404
Interpolação – Um exemplo simples
Dois pontos:
Novamente um sistema 2x2
x f(x)
π/2 1
π/4 √2/2
(1 x0
1 x1) (a0
a1)=( y0
y1)⇒ (1 π/2
1 π/4 ) (a0
a1)=( 1
√2/2 )
Interpolação – Um exemplo simples
Dois pontos:
Novamente um sistema 2x2
x f(x)
π/2 1
π/4 √2/2
(1 x0
1 x1) (a0
a1)=( y0
y1)⇒ (1 π/2
1 π/4 ) (a0
a1)=( 1
√2/2 ) a1=2π (2−√2)
a0=√2−1
p1(x)=√2−1+2π (2−√2)x
Interpolação – Um exemplo simples
Dois pontos:
Novamente calculemos o polinômio no ponto x = π/3
x f(x)
π/2 1
π/4 √2/2
p1(x)=√2−1+2π (2−√2)x⇒ p1(π /3)=√2−1+
2π (2−√2) π
3=
√2+13
≈0,804737
Interpolação – Um exemplo simples
Dois pontos:
e mesmo fazendo a maldade de aproximar seno por uma reta, o valor em x = π/3 melhorou muito quando diminuimos a distância entre os pontos...
x f(x) p1(x)
π/3 √3/2≈0,866025 0,804737
Interpolação – Um exemplo simples
Três pontos:
Agora o sistema é 3x3
x f(x)
0 0
π/2 1
π/4 √2/2
(1 0 01 π/2 (π /2)
2
1 π/4 (π /4)2 ) (
a0
a1
a2)=(
01
√2/2 )⇒a0=0; ( π/2 (π /2)2
π/4 (π /4)2 ) (a1
a2)=( 1
√2/2 )
Interpolação – Um exemplo simples
Três pontos:
Então
x f(x)
0 0
π/2 1
π/4 √2/2
( π/2 π2/4
π/4 π2/16 ) (a1
a2)=( 1
√2 /2 )
Interpolação – Um exemplo simples
Três pontos:
Então
x f(x)
0 0
π/2 1
π/4 √2/2
( π/2 π2/4
π/4 π2/16 ) (a1
a2)=( 1
√2 /2 ) a0=0; a1=2π (2√2−1 ) ; a2=
8π
2(1−√2 )
p2(x)=2π (2√2−1 ) x+
8π
2(1−√2 ) x2
Interpolação – Um exemplo simples
Três pontos:
e
x f(x)
0 0
π/2 1
π/4 √2/2
p2(π/6)=2π (2√2−1 ) π
6+
8
π2
(1−√2) (π6 )
2
=2√2−1
3+
29
(1−√2 )=0,517428
p2(π/3)=2π (2√2−1 ) π
3+
8
π2(1−√2 ) (
π3 )
2
=23
(2√2−1 )+89
(1−√2 )=0,850761
Interpolação
O que nossas experiências parecem indicar?
● Usar pontos mais próximos do qual queremos calcular melhora o resultado
Interpolação
O que nossas experiências parecem indicar?
● Usar pontos mais próximos do qual queremos calcular melhora o resultado
● Usar mais pontos melhora o resultado
Interpolação
O que nossas experiências parecem indicar?
● Usar pontos mais próximos do qual queremos calcular melhora o resultado
● Usar mais pontos melhora o resultado
Mas isto é apenas um exemplo e usando uma função muito bem comportada
Interpolação
O que nossas experiências parecem indicar?
● Usar pontos mais próximos do qual queremos calcular melhora o resultado
● Usar mais pontos melhora o resultado
Mas isto é apenas um exemplo e usando uma função muito bem comportada
Temos que pensar no caso geral para termos uma ideia se o que observamos tem validade em outras situações