introdução aos métodos numéricosotton/.../interpolacao...geral_interpolacao_polinomia… ·...

66
Introdução aos Métodos Numéricos Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho

Upload: others

Post on 20-Apr-2020

23 views

Category:

Documents


0 download

TRANSCRIPT

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 temático

● Interpolação

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)=

π6=

13=0, 33; p1(π /3)=

π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=

2(1−√2 )

p2(x)=2π (2√2−1 ) x+

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

Aproximamos seno por uma parábola e o resultado começa a ficar interessante

Interpolação

O que nossas experiências parecem indicar?

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

Interpolação

Temos que pensar no caso geral para termos uma ideia se o que observamos tem validade em outras situações