Interpolacao CN e

41
Interpolação CÁLCULO NUMÉRICO ENGENHARIAS

Transcript of Interpolacao CN e

Interpolação

CÁLCULO NUMÉRICOENGENHARIAS

Objetivo

Interpolar uma função f(x) consiste em aproximar essa função por uma outra função g(x), escolhida entre uma classe de funções definidas (polinômios). g(x) é usada em substituição à função f.

Em equação

Consideremos n+1 valores distintas: x0, ..., xn (nós da interpolação) e os valores de f(x) nesses pontos: f(x0), ..., f(xn).

Queremos determinar a função g(x) tal que:g(x0)=f(x0)....g(xn)=f(xn)

Graficamente

Classe de funções

Em nosso caso, consideramos a função g(x) com um elemento da classe de funções polinomiais.

Tentaremos aproximar a função f(x) a partir de um conjunto de valores com uma função do tipo: a0+a1x+...+anxn

Problemática

Essa necessidade de efetuar esta substituição surge quando: Quando são somente conhecidos os valores numéricos da função para um conjunto de pontos e é necessário calcular o valor de um ponto não tabelado.

Quando a expressão da função é complicada de mais para ser integrada ou diferenciada.

Interpolação polinomial

Dados os n+1 pontos (x0,f(x0)), ..., (xn,f(xn)), queremos aproximar f(x0) por um polinômio pn(x) de grau menor ou igual a n: f(xk)=pn(xk) ; k=0,1,...n

Questões: esse polinômio existe? Ele é único?

Interpolação polinomial

Considerando que p o polinômio escreve-se pn(x)= a0+a1x+...+anxn , a condição f(xk)=pn(xk) ; k=0,1,...,n produz o sistema seguinte de n+1 equações , n+1 variáveis:

0 1 0 0 0

0 1 1 1 1

0 1

... ( )

... ( ).........

... ( )

nn

nn

nn n n n

a a x a x f xa a x a x f x

a a x a x f x

Interpolação polinomial: matriz

A matriz do sistema é:

Essa matriz é uma matriz de Vandermonde, desde que x0, ..., xn são pontos distintos, temos det A0. Então o sistema admite uma solução única.

0 0

1 1

1 ...1 ...1 ... ... ...1 ...

n

n

nn n

x xx xA

x x

Obter pn(x)

Para obter o polinômio pn(x), existem diversos métodos, o mais direto sendo a resolução do sistema linear.

A escolha do método depende de várias condições: a estabilidade do sistema, performance computacional, ...

Resolução do sistema

Vamos encontrar o polinômio de grau 2 que interpola os pontos da tabela:

Considerando p2(x)=a0+a1x+a2x2. Temos o sistema:

x -1 0 2f(x)

4 1 -1

0 1 2

0 0 1 2

0 1 2

a -a +a =47 2a =1 a 1,a ,a3 3a +2a +4a =-1

Condicionamento

A determinação dos coeficientes pela resolução do sistema é um processo simples, mas o sistema pode ser mal condicionado e sua resolução com numeração a ponto flutuante produzir resultados errados.

Existem outros métodos para determinar os polinômios de interpolação. Como existe uma solução única, qualquer método que determina uma solução, determina a solução única.

Forma de Lagrange

Considerando os n+1 pontos (x0,y0=f(x0)), ..., (xn,yn= f(xn)) e o polinômio interpolador pn(x). Lagrange propôs de representar o polinômio pn(x) da forma:pn(x)=y0L0(x)+..+ynLn(x), onde Lk(x) são polinômios de grau n e a condição pn(xi)=yi, i=0,...,n seja satisfeita.

Forma de Lagrange

A melhor forma de ter a condição: pn(xi)=yi i=0,...,n, é impor:

Por isso, consideramos:

k i1L (x )= 0se k ise k i

0 1 1 1

0 1 1 1

( )( )...( )( )...( )( ) ( )( )...( )( )...( )k k n

kk k k k k k k n

x x x x x x x x x xL xx x x x x x x x x x

Forma de Lagrange

O numerador de Lk(x) é um produto de n fator em x, então Lk(x) é de grau n.

Podemos verificar também que:

A forma de Lagrange para o polinômio interpolador é:

k i1L (x )= 0se k ise k i

0,

0

0,

( )( ) ( ), ( )

( )

n

jnj j k

n k k k nk

k jj j k

x xp x y L x L x

x x

Interpolação linear

Interpolação de dois pontos (x0,y0=f(x0)) e (x1,y1=f(x1)).

Usando a forma de Lagrange, temos: 0 1 0 0 11

0 10 1 1 0 1 0

( ) ( ) ( )( )( ) ( ) ( ) ( )nx x x x y x x yx xp x y y

x x x x x x

Exemplo

Seja a tabela:

Temos:

x -1 0 2f(x)

4 1 -1

2 2 222 2 7 2( ) 4 13 2 6 3 3n

x x x x x xp x x x

21 2

00 1 0 2

20 2

11 0 1 2

20 1

22 0 2 1

( )( ) ( 0)( 2) 2( ) ( )( ) ( 1 0)( 1 2) 3( )( ) ( 1)( 2) 2( ) ( )( ) (0 1)(0 2) 2( )( ) ( 1)( 0)( ) ( )( ) (2 1)(2 0) 6

x x x x x x x xL xx x x xx x x x x x x xL xx x x xx x x x x x x xL xx x x x

Forma de Newton

Considerando os n+1 pontos (x0,f(x0)), ..., (xn,f(xn)) e o polinômio interpolador pn(x). Newton propôs de representar o polinômio pn(x) da forma:pn(x)=d0+d1(x-x0)+d2(x-x0)(x-x1)+...+dn(x-x0)...(x-xn-

1)

Os coeficientes dk, k=0,...,n são diferenças divididas de ordem k entre os pontos (xj,f(xj)), j=0,...,k

Operador diferenças divididas

f(x) é uma função tabelada em x0,...,xn.

Os operadores de diferenças divididas são definidos por:0 0

1 00 1

1 0

1 2 0 10 1 2

2 0

1 0 10

0

[ ] ( ) 0[ ] [ ][ , ] 1

[ , ] [ , ][ , , ] 2

[ ,..., ] [ ,..., ][ ,..., ] n nn

n

f x f x ordemf x f xf x x ordemx xf x x f x xf x x x ordem

x xf x x f x xf x x ordemn

x x

Operador diferenças divididas

x Ordem 0

Ordem 1

Ordem 2 ...

Ordem n

x0 f[x0]f[x0,x1]

x1 f[x1] f[x0,x1,x2]f[x1,x2]

x2 f[x2] f[x1,x2,x3]f[x0,...,xn]

f[xn-2, xn-

1, xn]....

f[xn-1, xn]

xn f[xn]

Devido à complexidade das fórmulas é comum apresentar os cálculos em uma tabela:

xi Ordem 0 Ordem 1 Ordem 2 Ordem 3

X0 (1a) f(x0) (1b) (D0)

(2b–1b) (D1)(2a-1a) (1c)

X1 (2a) f(x1) (2b)

(2c – 1c) (D2)(3a – 1a) (1d)

(3b–2b)(3a-2a) (2c)

(2d – 1d) (D3)(4a – 1a)

X2 (3a) f(x2) (3b)

(3c – 2c)(4a – 2a) (2d)

(4b–3b)(4a-3a) (3c)

X3 (4a) f(x3) (4b)

Operador diferenças divididas

Exemplo:x Ordem

0Ordem

1Ordem

2Ordem

3Ordem

4-1 1

00 1 -1/2

-1 1/61 0 0 -1/24

-1 02 -1 0

-13 -2

x f(x)

-1 10 11 02 -13 -2

Forma de Newton

Para todos pk(x), temospn(x)=f(x0)+(x-x0)f[x0,x1]+...+(x-x0)..(x-xn-1) f[x0,...,xn]

O erro é dado por:En(x)=(x-x0)..(x-xn)f[x0,...,xn,x]

Forma de Newton

Considerando a tabela:x -1 0 2f(x)

4 1 -1

x Ord 0 Ord 1 Ord 2-1 4

-30 1 2/3

-12 -1

23

2 7( ) 13 3p x x x

Estudo do erro

A aproximar a função f(x) por um polinômio, comete-se um erro:

En(x)=f(x)-pn(x)

Estudo do erro

Teorema:Sejam x0<...<xn, seja f(x) com derivadas até ordem (n+1) para x no intervalo [x0,xn].

Em qualquer ponto x do intervalo [x0,xn], o erro é dado por:

( 1)

0 0( )( ) ( )....( ) , [ , ]( 1)!

nx

n n x nfE x x x x x onde x xn

Estudo do erro

Do teorema precedente, podemos deduzir que:

Dois corolários: Se f(n+1)(x) é contínua em [x0,xn],

Se além disso, x1-x0=x2-x1=...=xn-xn-

1=h

( 1)

0 1 0 0( )[ , ,..., , ] , [ , ], [ , ]( 1)!

nx

n n nff x x x x x x x x x xn

( 1)10 1 [ 0, ]

( ) ( )....( ) , ( ( ))( 1)!nn

n n n x x xn

ME x x x x x M max f xn

1

1( ) 4( 1)n

n nhE x Mn

Estudo do erro

Se a função é dada na forma de uma tabela, só podemos estimar o valor absoluto do erro.

Mas a tabela de diferencias divididas é construída até ordem n+1, podemos usar o maior valor destas diferenças como aproximação para:

Nesse caso, o valor do erro pode ser majorado com:

1( 1)!

nMn

0 1( ) ( )...( ) max( )n n diferenciasdivididasdeordemnE x x x x x

Interpolação inversa Trata-se de, conhecendo um valor y de

(f(x0),f(xn)), aproximar um valor de x tal que f(x)=y. Uma solução consiste em interpolar f(x) é em seguida resolver a equação f(x)=y. No caso de graus elevados (>2), a resolução da equação pode ser difícil e não temos avaliação do erro cometido.

Uma outra solução consiste em efetuar uma interpolação inversa, ou seja determinar um polinômio interpolador de f-1(x). Com a interpolação inversa, podemos calcular uma avaliação do erro cometido.

A interpolação inversa só poder ser feita com uma função monótona.

Grau do polinômio

Trata-se de determinar o grau do polinômio para interpolar uma função em um ponto: Deve-se construir a tabela de diferenças divididas.

Se na vizinhança do ponto de interesse, as diferenças divididas de ordem k são praticamente constantes, podemos concluir que um polinômio de grau k é suficiente.

Newton-Gregory

No caso em que os x0,...,xn são igualmente espaçados, podemos usar a forma de Gregory-Newton.

Diférenças ordinarias: f(x)=f(x+h)-f(x) f(x)=f(x+h)-f(x) f(x)=f(x+h)-f(x)..........

Newton-Gregory

Podemos construir a tabela de diferenças ordinárias da mesma forma que a tabela de diferenças divididas.

Teorema: Se: Então:

0

00

, 0,1,...,( )[ ,..., ] !

j

n

n n

x x jh j nf xf x xh n

Newton-Gregory

No caso em que os x0,...,xn são igualmente espaçados, podemos escrever o polinômio interpolador: 2

0 00 0 0 1 2

00 1

( ) ( )( ) ( ) ( ) ( )( ) 2( ).......... ( )....( ) !

n

n

n n

f x f xp x f x x x x x x xh h

f xx x x xh n

Newton-Gregory

Usando uma mudança de variáveis:s=(x-x0)/h

Temos:(x-xj)=(s-j)he pn(x)=f(x0)+sf(x0)+s(s-1)f(x0)/2+...