Você está na página 1de 107

Interpolação

Dados: Tabela de valores de uma certa função f , que se pretende


aproximar.
x0 x1 . . . xn
f0 f1 . . . fn
Objectivo: Obter uma função I (função interpoladora), de um
determinado tipo, cujo gráfico passa por todos os pontos da
tabela,isto é, deve verificar-se

I (xi ) = fi , i = 0, 1, . . . , n

Os pontos xi são designados nós de interpolação.


Diferentes tipos de funções interpoladoras: polinómios, splines,
séries de Fourier, etc.
Exemplo de Interpolação

N(ti ) = Ni representa a população de uma certa espécie no


momento ti
ti 10 12 14 16
Ni 10 15 22 18
Objectivo: determinar aproximadamente o valor de N(t) em
qualquer instante t ∈ [10, 20].

Duas funções interpoladoras:


Função definida por ramos, linear em cada ramo (spline).
Polinómio.
Interpretação Geométrica
T

22

20

18

16

14

12

t
11 12 13 14 15 16

Preto - polinómio.
Cinzento - spline.
O tipo de função interpoladora é escolhido de acordo com as
caracterı́sticas dos dados (número de nós, distribuição dos nós,
comportamento da função, etc.)
No nosso programa abordamos apenas a interpolação polinomial e
os splines polinomiais.
Definição de Polinómio Interpolador

Definição. Chama-se polinómio interpolador da função f nos nós


x0 , ..., xn ao polinómio P, de grau não superior a n, que satisfaz as
relações P(xi ) = fi , i = 0, 1, . . . , n.
Existe, pelo menos, um polinómio interpolador para cada
tabela?
Pode haver mais do que um polinómio interpolador para a
mesma tabela?
Existência de Polinómio Interpolador

Pn (x) = a0 + a1 x + a2 x 2 + · · · + an x n , (1)
Objectivo: determinar ai (i = 0, 1, . . . , n) (números reais).

Pn satisfaz as igualdades

Pn (x0 ) = a0 + a1 x0 + a2 x02 + · · · + an x0n = f0 ,


Pn (x1 ) = a0 + a1 x1 + a2 x12 + · · · + an x1n = f1 ,
(2)
...
Pn (xn ) = a0 + a1 xn + a2 xn2 + · · · + an xnn = fn .

Sistema linear de n + 1 equações a n + 1 incógnitas.


Existência de Polinómio Interpolador

Na forma matricial:
x0 x02 x0n
    
1 ... a0 f0
 1 x1 x12 ... x1n   a1   f1 
=
  ... . (3)
  
 ... ... ... ... ...  ...
1 xn xn2 ... xnn an fn

V (x0 , x1 , . . . , xn ) - matriz de Vandermonde.

O sistema de equações tem solução única se e só se


Det V (x0 , x1 , . . . , xn ) 6= 0.
Existência de Polinómio Interpolador

Como calcular Det V (x0 , x1 , . . . , xn )?


Para n = 1, Det V (x0 , x1 ) = x1 − x0 6= 0.
Para n = 2,
Det V (x0 , x1 , x2 ) = (x1 − x0 )(x2 − x1 )(x2 − x0 ) 6= 0.

n
Y
Det V (x0 , x1 , . . . , xn ) = (xi − xj ) 6= 0. (4)
i,j=0,i>j

Conclusão: O determinante da matriz de Vandermonde é sempre


diferente de 0, desde que os pontos de interpolação sejam distintos.
Logo, para cada tabela existe um único polinómio interpolador.
Exemplo

Considere a seguinte tabela de valores de uma função f :

xi −1 0 1
fi 0 1 4

O polinómio que interpola f nos pontos dados é


A. P(x) = x 2 + 2x + 1
B. P(x) = x 2 + x
C. P(x) = x 2 − x
D. P(x) = x + 1
Solução

Solução: A
Verificação:
P(−1) = 1 − 2 + 1 = 0 = f (−1).
P(0) = 1 = f (0).
P(1) = 1 + 2 + 1 = 4 = f (1).
Como calcular o polinómio interpolador?

O número de condição da matriz de Vandermonde cresce muito


rapidamente com a sua dimensão.
O sistema de equações com a matriz de Vandermonde é muito mal
condicionado.

Um pequeno erro relativo nos valores da tabela pode levar a


grandes erros relativos nos valores do polinómio interpolador.
São necessárias fórmulas alternativas para calcular o polinómio
interpolador.
Polinómios de Lagrange

x0 , x1 , . . . , xn - nós de interpolação.
Pn - polinómio interpolador de f em x0 , x1 , . . . , xn .
Pn ∈ Pn - espaço dos polinómios de grau menor ou igual a n.

dim Pn = n + 1.

Base em Pn : Li (x), i = 0, 1, . . . , n (polinómios de Lagrange).


Se Pn ∈ Pn , então existem coeficientes c0 , c1 , . . . , cn tais que
n
X
Pn (x) = Cj Lj (x).
j=0
Propriedades dos Polinómios de Lagrange

Li (xi ) = 1
Li (xj ) = 0, se j ∈ {0, 1, ..., n}, j 6= i.
Conclusão:

Li (x) = Ai (x−x0 ) . . . (x−xi−1 )(x−xi+1 ) . . . (x−xn ),


i = 0, 1, ..., n.
(5)
Para determinar Ai usamos a primeira propriedade: Li (xi ) = 1.

Li (xi ) = Ai (xi − x0 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xn ) = 1.

Logo,
1
Ai = .
(xi − x0 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xn )
Propriedades dos Polinómios de Lagrange
Substituindo,
(x − x0 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xn )
Li (x) =
(xi − x0 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (x − xn )
Qn
j=0,j6=i (x − xj )
= Qn .
j=0,j6=i (xi − xj )
Exemplo:
Seja x0 = 1, x1 = 1.5, x2 = 2. Construir os polinómios de
Lagrange.
Resolução. Neste caso, n = 2 (os polinómios são de segundo grau).
(x − x1 )(x − x2 ) (x − 1.5)(x − 2) (x − 1.5)(x − 2)
L0 (x) = = = .
(x0 − x1 )(x0 − x2 ) (1 − 1.5)(1 − 2) 0.5
(x − x0 )(x − x2 ) (x − 1)(x − 2) (x − 1)(x − 2)
L1 (x) = = = .
(x1 − x0 )(x1 − x2 ) (1.5 − 1)(1.5 − 2) −0.25
(x − x0 )(x − x1 ) (x − 1)(x − 1.5) (x − 1)(x − 1.5)
L2 (x) = = = .
(x2 − x0 )(x2 − x1 ) (2 − 1)(2 − 1.5) 0.5
Fórmula de Lagrange

n
X
Pn (x) = Cj Lj (x).
j=0

Como determinar C0 , C1 , . . . ,Cn ?


Seja f0 = f (x0 ), f1 = f (x1 ), . . . , fn = f (xn ).
Provemos que
X n
Pn (x) = fj Lj (x).
j=0

Substitua-se x → xi
n
X
Pn (xi ) = fj Lj (xi ) = fi , i = 0, 1, . . . , n
j=0

Logo, Pn é o polinómio interpolador.


Exemplo

Consideremos de novo a função f , dada pela tabela

ti 10 12 14 16
Ni 10 15 22 18

Objectivo: obter valores aproximados de N(15) (valor da


população no instante t = 15), por interpolação polinomial,
aplicando a fórmula interporadora de Lagrange.

Escolha dos nós de interpolação: Não havendo outra informação


além da tabela, devemos começar por escolher os nós mais
próximos do ponto onde se pretende aproximar a função.
Neste caso, são o 14 e o 16.
Exemplo

Obter um valor aproximado de N(15), por interpolação linear.


Resposta. Trata-se de construir P1 (x), com x0 = 14, x1 = 16.
Polinómios de Lagrange:
x − x1 x − 16
L0 (x) = = = −(x − 16)/2.
x0 − x1 14 − 16

x − x0 x − 14
L1 (x) = = = (x − 14)/2.
x1 − x0 16 − 14
Polinómio interpolador de grau 1:

P1 (x) = N(14)L0 (x)+N(16)L1 (x) = −22(x −16)/2+18(x −14)/2.

Aproximação de N(15):

N(15) ≈ P1 (15) = 22/2 + 18/2 = 20.


Exemplo
Obter um valor aproximado de N(15), por interpolação quadrática.
Resposta. Temos de acrescentar mais um nó de interpolação, que
neste caso é 12.Logo, trata-se de construir P2 (x), com x0 = 12,
x1 = 14, x2 = 16.
Polinómios de Lagrange:
(x − x1 )(x − x2 ) (x − 14)(x − 16) (x − 14)(x − 16)
L0 (x) = = = .
(x0 − x1 )(x0 − x2 ) (12 − 14)(12 − 16) 8
(x − x0 )(x − x2 ) (x − 12)(x − 16) (x − 12)(x − 16)
L1 (x) = = = .
(x1 − x0 )(x1 − x2 ) (14 − 12)(14 − 16) −4
(x − x0 )(x − x1 ) (x − 12)(x − 14) (x − 12)(x − 14)
L2 (x) = = = .
(x2 − x0 )(x2 − x1 ) (16 − 12)(16 − 14) 8
Polinómio interpolador de grau 2:
P2 (x) = N(12)L0 (x)+N(14)L1 (x)+N(16)L2 (x) = 15(x−14)(x−16)/8+

+22(x − 12)(x − 16)/(−4) + 18(x − 12)(x − 14)/8.


Exemplo
Aproximação de N(15):
N(15) ≈ P2 (15) = 21.375.

Obter um valor aproximado de N(15), por interpolação cúbica.


Resposta. Temos de usar todos os nós de interpolação:
x0 = 10, x1 = 12, x2 = 14, x3 = 16.
Polinómios de Lagrange:
(x−x1 )(x−x2 )(x−x3 ) (x−12)(x−14)(x−16)
L0 (x) = (x0 −x1 )(x0 −x2 )(x0 −x3 ) = (−2)(−4)(−6) ,

(x−x0 )(x−x2 )(x−x3 ) (x−10)(x−14)(x−16)


L1 (x) = (x1 −x0 )(x1 −x2 )(x1 −x3 ) = (2)(−2)(−4) ,
(6)
(x−x0 )(x−x1 )(x−x3 ) (x−10)(x−12)(x−16)
L2 (x) = (x2 −x0 )(x2 −x1 )(x2 −x3 ) = (4)(2)(−2) ,

(x−x0 )(x−x1 )(x−x2 ) (x−10)(x−12)(x−14)


L3 (x) = (x3 −x0 )(x3 −x1 )(x3 −x2 ) = (6)(4)(2) .
Exemplo
Fórmula interpoladora de Lagrange:

P3 (x) = N(x0 )L0 (x) + N(x1 )L1 (x) + N(x2 )L2 (x) + N(x3 )L3 (x) =

10 (x−12)(x−14)(x−16)
−48 + 15 (x−10)(x−14)(x−16)
16 +

22 (x−10)(x−12)(x−16)
−16 + 18 (x−10)(x−12)(x−14)
48 .
(7)
Aproximação por interpolação cúbica:N(15) ≈ P3 (15) = 22.1875.

Resumo:

Grau aproximação
1 20
2 21.375
3 22.1875
Interpretação Geométrica

30

P1
25

20

15
P3
10

5
P2

t
11 12 13 14 15 16 17

Representação geométrica dos polinómios interpoladores e do seu


valor em t = 15.
Interpolação - Sumário da aula anterior

Dados: Tabela de valores de uma certa função f , que se pretende


aproximar.
x0 x1 . . . xn
f0 f1 . . . fn
Objectivo: Obter um polinómio Pn (polinómio interpolador), cujo
gráfico passa por todos os pontos da tabela. Isto é, deve
verificar-se
Pn (xi ) = fi , i = 0, 1, . . . , n

Na aula passada :
Verificámos que para qualquer tabela dada existe um único
polinómio interpolador, desde que os nós sejam distintos.
Deduzimos a fórmula interpoladora de Lagrange.
Vantagens e desvantagens da fórmula de Lagrange

Vantagem: A fórmula interpoladora de Lagrange permite


representar qualquer polinómio interpolador numa forma compacta:
n
X
Pn (x) = fi Li (x),
i=0

onde Li (x) - polinómios de Lagrange.

Desvantagem: Quando alteramos o número de nós de


interpolação, os polinómios de Lagrange alteram-se e é necessário
recomeçar os cálculos.

Ideia da fórmula interpoladora de Newton:


Construir o polinómio Pn+1 através do polinómio Pn , usando uma
fórmula de recorrência.
Fórmula interpoladora de Newton - Introdução

Suponhamos que é dada a tabela

x0 x1 . . . xn
f0 f1 . . . fn

Seja Pn o polinómio interpolador nestes nós, isto é:


Pn (xi ) = fi , i = 0, 1, . . . , n.
Acrescentemos mais um ponto, xn+1 . Seja fn+1 = f (xn+1 ).
Como construir Pn+1 ?
Primeiro Passo. Seja n = 0. P0 (x) ≡ f (x0 ).
Acrescentemos o ponto x1 6= x0 .
Como construir P1 ?
Construção da fórmula interpoladora de Newton

f1 −f0
Definição. A1 = f [x0 , x1 ] = x1 −x0 - diferença dividida (de primeira
ordem) de f em x0 e x1 .

P1 (x) = f0 + f [x0 , x1 ](x − x0 ).


Construção da fórmula interpoladora de Newton

f1 −f0
Definição. A1 = f [x0 , x1 ] = x1 −x0 - diferença dividida (de primeira
ordem) de f em x0 e x1 .

P1 (x) = f0 + f [x0 , x1 ](x − x0 ).

Passos seguintes da fórmula interpoladora de Newton.

Pn+1 (x) = Pn (x) + An+1 (x − x0 )(x − x1 )...(x − xn )

Objectivo: Definir An+1 de tal modo que Pn+1 (xn+1 ) = fn+1 .


Definição: An+1 = f [x0 , x1 , ..., xn+1 ] - diferença dividida (de ordem
n + 1) de f em x0 , x1 , . . . , xn+1 .
Construção da fórmula interpoladora de Newton

Nota: An+1 (x − x0 )(x − x1 )...(x − xn ) = An+1 x n+1 + . . . , logo

Pn+1 (x) = An+1 x n+1 + . . .

Conclusão: O coeficiente do termo principal do polinómio Pn+1 é a


diferença dividida f [x0 , x1 , ..., xn+1 ].

Como calcular f [x0 , x1 , ..., xn+1 ]?


Suponhamos que se conhece f [x0 , x1 , ..., xn ] e f [x1 , ..., xn+1 ].
Define-se Qn : Qn interpola f em x1 , x2 , . . . , xn+1 (Qn é um
polinómio de grau não superior a n).
Vamos mostrar que :

Pn (x)(xn+1 − x) + Qn (x)(x − x0 )
Pn+1 (x) = . (8)
xn+1 − x0
Ilustração da construção do polinómio interpolador

P3 : interpola f em x0 , x1 , x2 , x3 (polinómio de grau não superior a


3).
Q3 : interpola f em x1 , x2 , x3 , x4 (polinómio de grau não superior a
3).
A partir de P3 e Q3 constroi-se P4 : interpola f em x0 , x1 , . . . , x4
(polinómio de grau não superior a 4).

P3 (x)(x4 − x) + Q3 (x)(x − x0 )
P4 (x) = .
x4 − x0
Fórmula de recorrência para as diferenças divididas

Pn (x)(xn+1 − x) + Qn (x)(x − x0 )
Pn+1 (x) = .
xn+1 − x0

Provar que Pn+1 (xi ) = f (xi ), i = 0, 1, ..., n + 1.


Se i = 0,
f (x0 )(xn+1 − x0 )
Pn+1 (x0 ) = = f (x0 ). (9)
xn+1 − x0

se i ∈ {1, 2, ..., n}, verifica-se

f (xi )(xn+1 − xi ) + f (xi )(xi − x0 ) f (xi )(xn+1 − x0 )


Pn+1 (xi ) = = = f (xi ).
xn+1 − x0 xn+1 − x0

Se i = n + 1,

f (xn+1 )(xn+1 − x0 )
Pn+1 (xn+1 ) = = f (xn+1 ). (10)
xn+1 − x0
Fórmula de recorrência para as diferenças divididas
Provámos que:
Pn (x)(xn+1 − x) + Qn (x)(x − x0 )
Pn+1 (x) = . (11)
xn+1 − x0

Pn (x) = f [x0 , x1 , ..., xn ] x n + . . .


Qn (x) = f [x1 , x2 , ..., xn+1 ] x n + . . .

−f [x0 , x1 , ..., xn ] + f [x1 , x2 , ..., xn+1 ] n+1


Pn+1 (x) = x + ...
xn+1 − x0

Tı́nhamos visto que


Pn+1 (x) = f [x0 , x1 , ..., xn+1 ]x n+1 + . . .

Conclusão:
−f [x0 , x1 , ..., xn ] + f [x1 , x2 , ..., xn+1 ]
f [x0 , x1 , ..., xn+1 ] = , (12)
xn+1 − x0
Tabela de diferenças divididas

xi fi ordem1 ordem2 ordem3


x0 f0
f [x0 , x1 ]
x1 f1 f [x0 , x1 , x2 ]
f [x1 , x2 ] f [x0 , x1 , x2 , x3 ]
x2 f2 f [x1 , x2 , x3 ]
f [x2 , x3 ]
x3 f3
f1 − f0 f2 − f1 f3 − f2
f [x0 , x1 ] = , f [x1 , x2 ] = , f [x2 , x3 ] =
x1 − x0 x2 − x1 x3 − x2
f [x1 , x2 ] − f [x0 , x1 ] f [x2 , x3 ] − f [x1 , x2 ]
f [x0 , x1 , x2 ] = , f [x1 , x2 , x3 ] = ,
x2 − x0 x3 − x1
f [x1 , x2 , x3 ] − f [x0 , x1 , x2 ]
f [x0 , x1 , x2 , x3 ] =
x3 − x0
Exemplo
Considere a tabela:
−1 0 2 3
6 10 9 11
Construir uma tabela de diferenças divididas:
10 − 6 9 − 10 1 11 − 9
f [−1, 0] = = 4, f [0, 2] = =− , f [2, 3] = =2
0+1 2−0 2 3−2

f [0, 2] − f [−1, 0] f [2, 3] − f [0, 2]


f [−1, 0, 2] = = −9/6, f [0, 2, 3] = = 5/6,
2+1 3−0
f [0, 2, 3] − f [−1, 0, 2]
f [−1, 0, 2, 3] = = 7/12
3+1
xi fi ordem1 ordem2 ordem3
−1 6
4
0 10 −9/6
−1/2 7/12
2 9 5/6
2
3 11
Fórmula Interpoladora de Newton

Resumo: para construir o polinómio interpolador Pn pela fórmula


de Newton, num certo conjunto de nós:
1 Calcular as diferenças divididas de f nos pontos considerados,
até à ordem n, com base na fórmula de recorrência estudada.
2 Determinar P0 (x) ≡ f (x0 );
3 Obter os polinómios P1 , P2 ,..., Pn , através da aplicação
sucessiva da fórmula

Pk+1 (x) = Pk (x)+f [x0 , x1 , . . . , xk+1 ](x −x0 )(x −x1 )...(x −xk ),

k = 0, 1, . . . , n − 1.
Nota: O resultado final não depende da ordem dos pontos
x0 , x1 , . . . , xn , já que o valor da diferença dividida f [x0 , x1 , . . . , xn ]
não depende da ordem dos argumentos. ( Ex:
f [x0 , x1 , x2 ] = f [x1 , x0 , x2 ] = f [x2 , x1 , x0 ] = . . . )
Exemplo
Considerar de novo a tabela da função N:
xi 10 12 14 16
Ni 10 15 22 18
Com o objectivo de aproximar N em x = 15, pela fórmula
interpoladora de Newton, construir uma tabela de diferenças
divididas.
Resposta: Os nós de interpolação devem ser ordenados de acordo
com a proximidade ao ponto x = 15: x0 = 14, x1 = 16, x2 = 12,
x3 = 10.
Diferenças de primeira ordem:
f1 −f0 18−22
f [x0 , x1 ] = x1 −x0 = 16−14 = −2.

f2 −f1 15−18
f [x1 , x2 ] = x2 −x1 = 12−16 = 43 .

f3 −f2 10−15
f [x2 , x3 ] = x3 −x2 = 10−12 = 25 .
Exemplo

Diferenças de segunda ordem:


f [x1 ,x2 ]−f [x0 ,x1 ] 11
f [x0 , x1 , x2 ] = x2 −x0 = − 8 .

f [x2 ,x3 ]−f [x1 ,x2 ] 7


f [x1 , x2 , x3 ] = x3 −x1 = − 24 .

Diferença dividida de terceira ordem:

f [x1 , x2 , x3 ] − f [x0 , x1 , x2 ] 13
f [x0 , x1 , x2 , x3 ] = =− . (13)
x3 − x0 48
Exemplo

Tabela:

xi fi ordem1 ordem2 ordem3


14 22
f [x0 , x1 ] = −2
16 18 f [x0 , x1 , x2 ] = − 11
8
3
4 f [x0 , x1 , x2 , x3 ] = − 13
48
7
12 15 − 24
5
2
10 10
Construção dos polinómios interpoladores:

Aproximar N(15) por interpolação linear:

P1 (x) = P0 (x) + f [x0 , x1 ](x − x0 ) = 22 − 2(x − 14).

N(15) ≈ P1 (15) = 22 − 2(15 − 14) = 20.

Aproximar N(15) por interpolação quadrática:

P2 (x) = P1 (x) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ) =


22 − 2(x − 14) − 11/8(x − 14)(x − 16).

N(15) ≈ P2 (15) = 20−11/8(15−14)(15−16) = 171/8 = 21.375.


Construção dos polinómios interpoladores:

Aproximar N(15) por interpolação cúbica:

P3 (x) = P2 (x) + f [x0 , x1 , x2 , x3 ](x − x0 )(x − x1 )(x − x2 ) =


P2 (x) − 13/48(x − x0 )(x − x1 )(x − x2 ).

N(15) ≈ P3 (15) =
21.375 − 13/48(15 − 14)(15 − 16)(15 − 12) = 22.1875.
Observações

Como era de esperar, os valores obtidos pela fórmula


interpoladora de Newton são os mesmos que os obtidos pela
fórmula de Lagrange (o polinómio interpolador é único).
Olhando para as sucessivas aproximações obtidas
(P1 (15) = 20, P2 (15) = 21.375, P3 (15) = 22.1875), vemos
que a diferença entre elas vai diminuindo.
Será que, aumentando o grau do polinómio interpolador, se
obtêm aproximações cada vez mais precisas?
Fórmula interpoladora de Newton

n
Y
Pn+1 (x) = Pn (x)+f [x0 , x1 , ..., xn , xn+1 ] (x −xi ), n = 0, 1, . . .
i=0

f [x0 , x1 , ..., xn , xn+1 ] - diferença dividida de ordem n + 1.

Como estimar o erro de interpolação?


Erro de Interpolação

en (x) = f (x) − Pn (x)


Pn - polinómio que interpola f em n + 1 pontos
(x0 , x1 , . . . , xn ∈ [a, b].)
x̄ - ponto arbitrário de [a, b].
Pn+1 - polinómio que interpola f nos pontos x0 , x1 , . . . , xn , x̄.
n
Y
Pn+1 (x) = Pn (x) + f [x0 , x1 , ..., xn , x̄] (x − xi ), ∀x ∈ [a, b]
i=0

Em particular, se x = x̄,
n
Y
Pn+1 (x̄) = Pn (x̄) + f [x0 , x1 , ..., xn , x̄] (x̄ − xi ) = f (x̄).
i=0
n
Y
Logo en (x̄) = f (x̄) − Pn (x̄) = f [x0 , x1 , ..., xn , x̄] (x̄ − xi ).
i=0
Erro de Interpolação
Visto que x̄ é um ponto arbitrário de [a, b]
n
Y
en (x) = f (x) − Pn (x) = f [x0 , x1 , ..., xn , x] (x − xi ). (14)
i=0

Exemplo. Seja f (x) = Γ(x); Γ(1) = 1, Γ(2) = 1! = 1,


Γ(3) = 2! = 2.
Obter um valor aproximado de Γ(1.5), por interpolação
quadrática, usando a fórmula interpoladora de Newton.
Resposta. Γ[1, 2] = Γ(2) − Γ(1) = 0;
Γ[2, 3] = Γ(3) − Γ(2) = 1; Γ[1, 2, 3] = Γ[2,3]−Γ[1,2]
3−1 = 12 .

P2 (x) = Γ(1) + Γ[1, 2](x − 1) + Γ[1, 2, 3](x − 1)(x − 2) =


1 + 12 (x − 1)(x − 2).

Γ(1.5) ≈ P2 (1.5) = 1 + 12 (1.5 − 1)(1.5 − 2) = 1 − 0.125 = 0.875.


Representação gráfica do erro de interpolação

e2

0.01

x
1.5 2.0 2.5 3.0

-0.01

-0.02

-0.03

-0.04

-0.05

Erro da aproximação da função Γ no intervalo [1, 3], por


interpolação quadrática. Note-se que Γ(1.5) ≈ 0.886 pelo que
e2 (1.5) ≈ 0.011. maxx∈[1,3] |e2 (x)| ≈ 0.05.
Exemplo

Obter uma expressão do erro do valor obtido.


Resposta.

e2 (x) = Γ(x) − P2 (x) = Γ[1, 2, 3, x](x − 1)(x − 2)(x − 3).

e2 (1.5) = Γ(1.5) − P2 (1.5) =


= Γ[1, 2, 3, 1.5](1.5−1)(1.5−2)(1.5−3) = Γ[1, 2, 3, 1.5]×0.375.

Como obter uma aproximação de Γ[1, 2, 3, 1.5]?


Exemplo

Relação entre diferenças divididas e derivadas

Caso n = 1: pelo teorema de Lagrange, se f ∈ C 1 ([x0 , x1 ]),

f (x1 ) − f (x0 )
f [x0 , x1 ] = = f 0 (ξ), (15)
x1 − x0
ξ ∈ [x0 , x1 ].
|f [x0 , x1 ]| ≤ max |f 0 (x)|. (16)
x∈[x0 ,x1 ]
Relação entre diferenças divididas e derivadas
Teorema. Seja f ∈ C k ([a, b]) uma função dada e sejam
x0 , x1 , ..., xk um conjunto de k + 1 pontos distintos de [a, b]
(k ≥ 1). Então existe ξ ∈ [a, b] tal que
f (k) (ξ)
f [x0 , x1 , . . . , xk ] = . (17)
k!
Demonstração. ek (x) = f (x) − Pk (x) - erro de interpolação.
Pk - polinómio interpolador de f em x0 , x1 , . . . , xk .
ek (xi ) = 0, i = 0, 1, ..., k, (18)
ek tem, pelo menos, k + 1 zeros distintos em [a, b].
Pelo teorema de Rolle, ek0 anula-se, pelo menos k vezes em [a, b].
(k) (k)
ek anula-se, pelo menos 1 vez em [a, b]: ek (ξ) = 0.
Para este ponto ξ:
(k) (k)
ek (ξ) = f (k) (ξ) − Pk (ξ) = f (k) (ξ) − k!f [x0 , . . . , xk ] = 0. (19)
f (k) (ξ)
f [x0 , x1 , . . . , xk ] = .
k!
Relação entre diferenças divididas e derivadas

A partir do teorema, obtém-se uma fórmula para majorar o módulo


das diferenças divididas:
1
|f [x0 , x1 , . . . , xk ]| ≤ max |f (k) (x)|. (20)
k! x∈[a,b]

Substituindo na fórmula do erro de interpolação, obtem-se um


majorante do erro de interpolação absoluto:

|en (x)| = |f [x0 , x1 , ..., xn , x]| ni=0 |x − xi || ≤


Q

Qn (21)
1
≤ (n+1)! maxx∈[a,b] |f (n+1) (x)| i=0 |x − xi |.
Pergunta de controlo

Seja f uma função infinitamente diferenciável e seja P1 (x) o


polinómio que interpola essa função nos pontos x0 = 1, x1 = 1.5
Qual das seguintes desigualdades é válida:
A. |f (1.2) − P1 (1.2)| ≤ maxx∈[1,1.5] |f 0 (x)| × 0.03
B. |f (1.2) − P1 (1.2)| ≤ maxx∈[1,1.5] |f 00 (x)| × 0.01
C. |f (1.2) − P1 (1.2)| ≤ maxx∈[1,1.2] |f 0 (x)| × 0.03
D. |f (1.2) − P1 (1.2)| ≤ maxx∈[1,1.5] |f 00 (x)| × 0.03
Resposta à pergunta de controlo

|f 00 (x)|
|f (1.2) − P1 (1.2)| ≤ maxx∈[1,1.5] 2 |(1.2 − 1)(1.2 − 1.5)| =

|f 00 (x)|
maxx∈[1,1.5] 2 × 0.2 × 0.3 =

maxx∈[1,1.5] |f 00 (x)| × 0.03

Resposta: D
Exemplo

Aproximar a função f (x) = cos(x) no intervalo [−1, 1] por um


polinómio interpolador nos nós x0 = −1,x1 = 0, x2 = 1.
Determine o polinómio interpolador P2 (x).
A fim de aplicar a fórmula interpoladora de Newton,
comecemos por calcular as diferenças divididas de f :

cos(x1 ) − cos(x0 )
f [x0 , x1 ] = = 1 − cos(−1);
x1 − x0

cos(x2 ) − cos(x1 )
f [x1 , x2 ] = = cos(1) − 1.
x2 − x1
f [x1 , x2 ] − f [x0 , x1 ] 2 cos(1) − 2
f [x0 , x1 , x2 ] = = = cos(1)−1.
x2 − x0 2
Exemplo
O polinómio interpolador é dado por:
P2 (x) = f (−1) + f [−1, 0](x + 1) + f [−1, 0, 1](x + 1)x =
(22)
cos(−1) + (1 − cos(−1))(x + 1) + (cos(1) − 1)(x + 1)x.

Determine um majorante de |e2 (x̄)| sendo x̄ ∈ [−1, 1].Pela


fórmula do erro de interpolação absoluto, temos
1
|e2 (x̄)| ≤ max |f (3) (x)||x̄ + 1||x̄||x̄ − 1|.
3! x∈[−1,1]
Além disso,
max |f (3) (x)| = max | sin(x)| = sin(1).
x∈[−1,1] x∈[−1,1]

Por conseguinte,
sin(1)
|e2 (x̄)| ≤ |x̄ + 1||x̄||x̄ − 1|. (23)
3!
Exemplo
Determine um majorante do máximo do erro de interpolação
absoluto no intervalo [−1, 1].
Resposta. Precisamos de majorar maxx̄∈[−1,1] |e2 (x̄)|.
max |ω(x̄)|,
x̄∈[−1,1]

ω(x) = x(x − 1)(x + 1) = x 3 − x.


Pontos de extremo de ω(x): ω 0 (x) = 3x 2 − 1 = 0.
Duas raizes: y1 = − √13 (máximo local), y2 = √13 (mı́nimo
local). Note-se que w (1) = w (−1) = 0.
2
max |ω(x̄)| = |ω(y1 )| = |ω(y2 )| = |y2 (y2 −1)(y2 +1)| = √ .
x̄∈[−1,1] 3 3
Finalmente, obtém-se
sin(1) sin(1) 2
max |e2 (x̄)| ≤ max |ω(x̄)| = √ ≈ 0.054
x̄∈[−1,1] 3! x̄∈[−1,1] 3! 3 3
Representação gráfica do erro de interpolação

e2

x
-1.0 -0.5 0.5 1.0

-0.002

-0.004

-0.006

-0.008

-0.010

Erro da aproximação da função cos(x) no intervalo [−1, 1], por


interpolação quadrática. Note-se que o erro absoluto é bastante
inferior ao majorante obtido.
Distribuição dos nós de interpolação

O erro de interpolação depende de :


derivadas da função interpolada
distribuição dos nós de interpolação (função ω(x))

Como é que a distribição dos nós de interpolação influi no erro de


interpolação ?
Distribuição dos nós de interpolação

1. Consideremos 11 nós equidistantes no intervalo [−5, 5]:


x0 = −5, x1 = −4, . . . , x9 = 4, x10 = 5.
ω(x) = (x − x0 )(x − x1 ) . . . , (x − x10 ).A função ω(x) toma valores
muito altos junto aos extremos do intervalo, o que pode levar a
grandes erros de interpolação.
60 000

40 000

20 000

-4 -2 2 4

-20 000

-40 000

-60 000
Distribuição dos nós de interpolação

Se o número de nós de interpolação é alto não é conveniente usar


nós igualmente espaçados. Por exemplo, usar nós de Chebyshev.
0.10 0.10

0.05 0.05

-1.0 -0.5 0.5 1.0 -1.0 -0.5 0.5 1.0

-0.05 -0.05

-0.10 -0.10

N = 10 N = 25

Nós de Chebyshev no intervalo [−1, 1].


Conclusão

Na aproximação de funções não é recomendável a utilização de


polinómios interpoladores com nós equidistantes de grau elevado,
já que, com o aumento do grau do polinómio, o erro de
interpolação pode crescer (fenómeno de Runge).
Para obter aproximações de elevada precisão, são viáveis dois
métodos:
Utilização de polinómios interpoladores de elevado grau nos
nós de Chebyshev.
Interpolação seccionalmente polinomial, com polinómios de
baixo grau (um a três) definidos em cada sub-intervalo
(splines).
Splines
A interpolação polinomial pode levar a problemas de instabilidade,
pois ao aumentar o número de nós aumentamos o grau do
polinómio interpolador.
Como alternativa podemos considerar funções seccionalmente
polinomiais.
Definição: Sejam x0 , x1 , . . . , xn , pontos distintos de [a, b] ⊂ R, tais
que
a = x0 < x1 < · · · < xn = b .
A função s, definida em [a, b], diz-se spline polinomial de grau r,
r ≥ 1, se
i) s|[xj ,xj+1 ] ∈ Pr , j = 0, . . . , n − 1.
ii) s ∈ C r −1 [a, b]. 
Portanto, um spline polinomial de grau r é um polinómio de grau
menor ou igual a r em cada subintervalo [xj , xj+1 ] e uma função
r − 1 vezes continuamente diferenciável no intervalo [a, b].
Splines

Escreve-se s(x) = sj (x) ∀x ∈ [xj , xj+1 ] ou seja

sj ∈ Pr ([xj , xj+1 ]), j = 0, 1, . . . , n − 1 ,

(k) (k)
sj (xj+1 ) = sj+1 (xj+1 ), j = 0, 1, . . . , n − 1, k = 0, . . . , r − 1 .

Um spline polinomial interpolador de f satisfaz ainda

s(xj ) = f (xj ), j = 0, 1, . . . , n .

Iremos considerar os dois casos mais comuns: interpolação por


splines lineares (r = 1) e por splines cúbicos (r = 3).
Splines lineares
Este é o caso mais simples em que as propriedades do spline e as
condições de interpolação definem a função s de forma única.
Teorema: Sejam fj , j = 0, 1, . . . , n, valores de uma função f nos
n + 1 pontos distintos x0 , x1 , . . . , xn . Existe um e um só spline
linear interpolador de f .
Demonstração: Define-se, no intervalo Ij = [xj , xj+1 ], um polinómio
de grau menor ou igual a 1 por
fj+1 − fj
sj (x) = fj + (x − xj ) . (24)
xj+1 − xj

Temos
sj (xj ) = fj , sj (xj+1 ) = fj+1 , j = 0, . . . , n − 1 ,

sj+1 (xj+1 ) = fj+1 , j = 0, . . . , n − 2 .


Splines lineares

Portanto a função s, cuja restrição ao intervalo Ij é sj ∈ P1 (Ij ), é


contı́nua em [a, b] e interpola a função f nos pontos x0 , . . . , xn .
Por definição, s é um spline linear interpolador de f .
Mais, cada polinómio sj coincide com o polinómio interpolador de
Lagrange de grau ≤ 1 que interpola f nos pontos xj e xj+1 . Isto
prova a unicidade dos sj e, por conseguinte, do spline linear s. 
Dados os pontos xj , j = 0, . . . , n, e os valores da função f nesses
pontos, o spline linear interpolador de f é construı́do, em cada
subintervalo Ij , pela fórmula (24).
Splines lineares

Exemplo 1: Vamos construir o spline linear que interpola a função


f (x) = (x 2 − 1)x 2 /12 nos pontos
x0 = −1, x1 = 0, x2 = 2, x3 = 3.Temos
f0 = 0, f1 = 0, f2 = 1, f3 = 6.Obtém-se assim
6

s(x)
3

f(x)
2

-1 1 2 3

Fig. 1. O spline linear s, interpolador de f (x) = (x − 1)x 2 /12.


2
Splines lineares
Seja f ∈ C 2 ([a, b]). Pela fórmula do erro de interpolação de
Lagrange, tem-se, em cada subintervalo [xj , xj+1 ]

f 00 (ηj )
f (x) − sj (x) = (x − xj )(x − xj+1 ) , ηj ∈ (xj , xj+1 ) .
2

Definindo

hj = xj+1 − xj , h = max hj , j = 0, . . . , n − 1 ,
j

e tendo em conta que


hj2
max |(x − xj )(x − xj+1 )| = ,
x∈[xj ,xj+1 ] 4
obtemos uma estimativa de erro para a interpolação por splines
lineares
h2
max |f (x) − s(x)| ≤ max |f 00 (x)| . (25)
x∈[a,b] 8 x∈[a,b]
Splines lineares

Exemplo 1 (cont.): Temos h = max{1, 2, 1} = 2 e


f (x) = (x 2 − 1)x 2 /12 pelo que f 00 (x) = x 2 − 61 . Assim a
estimativa para o erro de interpolação é dada por
 
4 1 53
max |f (x) − s(x)| ≤ 9− = ≈ 4.42 .
x∈[a,b] 8 6 12

Esta estimativa é muito grosseira. Se utilizarmos a estimativa de


erro (25) separadamente em cada subintervalo Ij e depois
calculamos o máximo desses valores, obtemos
 
5 23 53
max |f (x − s(x)| ≤ max , , ≈ 1.92 .
x∈[a,b] 48 12 48
Splines cúbicos

Sejam xj , j = 0, . . . , n, pontos distintos de [a, b], tais que

a = x0 < x1 < · · · < xn = b ,

e sejam fj valores de uma função f nesses pontos.


Um spline cúbico interpolador de f deve satisfazer as condições

s ∈ C 2 ([a, b]) , s(xj ) = fj , j = 0, . . . , n ,

s ∈ P3 (Ij ) , j = 0, . . . , n − 1 .

Seja Mj = s 00 (xj ) e seja sj ∈ P3 (Ij ) a expressão de s em


Ij = [xj , xj+1 ].
Splines cúbicos

Tendo em conta que s 00 é um polinómio de grau 1 em cada Ij ,


tem-se
xj+1 − x x − xj
sj00 (x) = Mj + Mj+1 , x ∈ Ij ,
hj hj

onde hj = xj+1 − xj .
Integrando duas vezes em x, obtém-se

(xj+1 − x)3 (x − xj )3
sj (x) = Mj + Mj+1 + Aj (x − xj ) + Bj , x ∈ Ij ,
6hj 6hj

com Aj , Bj ∈ R.
Splines cúbicos
Note-se que temos em cada sub-intervalo Ij ,
(xj+1 − x)3 (x − xj )3
sj (x) = Mj + Mj+1 + Aj (x − xj ) + Bj .
6hj 6hj

Ou seja,
4 parâmetros a determinar em cada sub-intervalo, n
sub-intervalos, pelo que temos 4n parâmetros a determinar no
total.
n condições de interpolação sj (xj ) = f (xj ), j = 0, 1, ..., n − 1.
n condições de interpolação
sj (xj+1 ) = f (xj+1 ), j = 0, 1, ..., n − 1.
n-1 condições de continuidade da derivada
sj0 (xj ) = sj−1
0 (x ), j = 1, ..., n − 1.
j
n-1 condições de continuidade da segunda derivada
sj00 (xj ) = sj−1
00 (x ), j = 1, ..., n − 1.
j
4n incógnitas, mas apenas 4n-2 equações, ou seja, faltam
duas equações adicionais.
Splines cúbicos
Verifiquemos que condições impor, em termos dos coeficientes
Aj , Bj , Mj , Mj+1 . Temos em cada sub-intervalo,
xj+1 − x x − xj
sj00 (x) = Mj + Mj+1 , x ∈ Ij ,
hj hj
onde hj = xj+1 − xj .
Temos imediatamente (por construção) que
sj00 (xj ) = sj−1
00 (x ), j = 1, ..., n − 1 pois
j

xj+1 − xj xj − xj
sj00 (xj ) = Mj + Mj+1 = Mj
hj hj
e
00 xj − x x − xj−1
sj−1 (x) = Mj−1 + Mj , x ∈ Ij−1 ,
hj−1 hj−1

00 xj − xj xj − xj−1
sj−1 (xj ) = Mj−1 + Mj = Mj
hj−1 hj−1
Splines cúbicos
Da condição sj (xj ) = f (xj ) = fj , j = 0, 1, ..., n − 1 resulta
(xj+1 − xj )3 (xj − xj )3
sj (xj ) = Mj + Mj+1 + Aj (xj − xj ) + Bj
6hj 6hj
hj2 hj2
= Mj + Bj = fj ⇒ Bj = fj − Mj .
6 6
A condição sj (xj+1 ) = f (xj+1 ) = fj+1 , j = 0, 1, ..., n − 1 implica
(xj+1 − xj+1 )3 (xj+1 − xj )3
sj (xj+1 ) = Mj + Mj+1 + Aj (xj+1 − xj ) + Bj
6hj 6hj
hj2 hj2 hj2
= Mj+1 + Aj hj + Bj = Mj+1 + Aj hj + fj − Mj = fj+1
6 6 6

ou seja
fj+1 − fj hj
Aj = − (Mj+1 − Mj ) .
hj 6
Splines cúbicos
Assim,
hj2

 Bj = fj − Mj


6
 f j+1 − fj hj
 A =
 j − (Mj+1 − Mj ) .
hj 6
A função s é (para já) contı́nua (pelas condições de interpolação) e
a sua segunda derivada é contı́nua (por construção). Só falta
impor a condição sj0 (xj ) = sj−1
0 (x ), j = 1, ..., n − 1.
j
Por outro lado, temos
(xj+1 − x)2 (x − xj )2
sj0 (x) = −Mj + Mj+1
2hj 2hj
fj+1 − fj hj
+ − (Mj+1 − Mj ) , x ∈ Ij
hj 6
e
hj fj+1 − fj hj
sj0 (xj ) = −Mj + − (Mj+1 − Mj )
2 hj 6
Splines cúbicos
Temos

0 (xj − x)2 (x − xj−1 )2


sj−1 (x) = −Mj−1 + Mj
2hj−1 2hj−1
fj − fj−1 hj−1
+ − (Mj − Mj−1 ) , x ∈ Ij−1 .
hj−1 6
e
0 hj−1 fj − fj−1 hj−1
sj−1 (xj ) = Mj + − (Mj − Mj−1 ) .
2 hj−1 6

Pela condição da continuidade da primeira derivada de s em xj ,


obtemos
hj−1 hj + hj−1 hj fj+1 − fj fj − fj−1
Mj−1 + Mj + Mj+1 = − ,
6 3 6 hj hj−1
(26)
para j = 1, . . . , n − 1.
Splines cúbicos

As equações (26) formam um sistema de n − 1 equações a n + 1


incógnitas M0 , M1 , . . . , Mn .
As condições suplementares mais comuns são:
Condição natural ou livre [Spline natural]:
s 00 (x0 ) = s 00 (xn ) = 0 ⇒ M0 = Mn = 0.
Condição da derivada nos extremos [Spline completo]:
s 0 (x0 ) = f 0 (x0 ) , s 0 (xn ) = f 0 (xn ).
Condição periódica [Spline periódico] – usada apenas
quando a função f é periódica:
s 0 (x0 ) = s 0 (xn ), s 00 (x0 ) = s 00 (xn );
Splines cúbicos
• Utilizando a condição natural, obtemos o sistema simétrico e
tridiagonal:

h0 +h1 h1
   
3 6 0 ··· ··· 0 M1
 h1 h1 +h2 h2 .. 
 M2
 

6 3 6 0 ··· .  
 ..
   
 .. .. .. .. ..  
 0 . . . . .   . 
..
   
.. .. .. ..  .
. . . .  ..
  
 . 0  
..
   
hn−3 hn−3 +hn−2 hn−2
 Mn−2
   
 . 0 6 3 6  
hn−2 hn−2 +hn−1
0 ··· ··· 0 6 3 Mn−1
 
f [x1 , x2 ] − f [x0 , x1 ]
 .. 
 . 
=  ,
 
..
.
 
 
f [xn−1 , xn ] − f [xn−2 , xn−1 ]
(27)
Splines cúbicos

onde
fj+1 − fj
f [xj , xj+1 ] = , j = 0, . . . , n − 1 .
xj+1 − xj

Atendendo a que
hj + hj+1 hj hj+1
> + , j = 0, . . . , n − 2 ,
3 6 6
a matriz dos coeficientes do sistema linear (27) tem a diagonal
estritamente dominante por linhas e assim o sistema tem solução
única.
Conclui-se que existe um único spline cúbico natural interpolador
de f .
Splines cúbicos
Exemplo 2: Pretende-se determinar o spline cúbico natural que
interpola os valores:
(x0 , f0 ) = (−2, 3), (x1 , f1 ) = (0, 1), (x2 , f2 ) = (2, 7) .

Temos
n = 2,h0 = h1 = 2, f [x0 , x1 ] = −1, f [x1 , x2 ] = 3, M0 = M2 = 0.
O sistema tridiagonal (27) reduz-se à equação
h0 + h1 4
M1 = f [x1 , x2 ]−f [x0 , x1 ] ⇔ M1 = 4 ⇔ M1 = 3 .
3 3
Segue-se que
h0 h02
A0 = f [x0 , x1 ] − (M1 − M0 ) = −2 , B0 = f0 − M0 = 3,
6 6

h1 h12
A1 = f [x1 , x2 ] − (M2 − M1 ) = 4, B1 = f1 − M1 = −1 .
6 6
Splines cúbicos
Portanto o spline cúbico natural s é dado por
(
s0 (x) , x ∈ [−2, 0]
s(x) = , onde
s1 (x) , x ∈ [0, 2]

(x − x0 )3 (x + 2)3
s0 (x) = M1 + A0 (x − x0 ) + B0 = − 2(x + 2) + 3 ,
6h0 4

(x2 − x)3 (2 − x)3


s1 (x) = M1 + A1 (x − x1 ) + B1 = + 4x − 1 .
6h1 4
7

-2 -1 1 2
Splines cúbicos
• A condição da derivada nos extremos conduz ao sistema linear:

h0 h0
   
3 6 0 ··· ··· 0 M0
 h0 h0 +h1 h1 .. 
 M1
 

6 3 6 0 ··· .  
 ..
   
 .. .. .. .. ..  
 0 . . . . .   . 
..
   
.. .. .. ..  .
. . . .  ..
  
 . 0  
..
   
hn−2 hn−2 +hn−1 hn−1
 Mn−1
   
 . 0 6 3 6  
hn−1 hn−1
0 ··· ··· 0 6 3 Mn (28)

f [x0 , x1 ] − f00
 

f [x1 , x2 ] − f [x0 , x1 ]
 
 
 
=  ..
,
 
 . 
 f [x , x ] − f [x , x ] 
 n−1 n n−2 n−1 
0
fn − f [xn−1 , xn ]
Splines cúbicos

onde f00 = f 0 (x0 ) e fn0 = f 0 (xn ).


A matriz do sistema linear (28) é não singular pelo que existe um
único spline cúbico interpolador de f com a condição da derivada
nos extremos.
• Se usarmos a condição periódica nos extremos, obtemos as
equações adicionais
h0 h0 hn−1 hn−1
M0 + M1 + Mn−1 + Mn = f [x0 , x1 ] − f [xn−1 , xn ] ,
3 6 6 3

M0 = Mn .

Neste caso o sistema linear deixa de ser tridiagonal. Eliminando


Mn (ou M0 ), obtém-se um sistema com matriz estritamente
dominante por linhas e que assim garante a existência de uma
solução única para o problema.
Splines cúbicos

Exemplo 3: Determine o spline cúbico periódico que interpola


f (x) = cos(x) nos pontos x0 = −π, x1 = 0 e x2 = π.
Resolução: Temos n = 2, f0 = f2 = −1, f1 = 1 e
2 2
h0 = h1 = π, , f [x1 , x2 ] = − .
f [x0 , x1 ] =
π π
Tendo em conta que M0 = M2 , temos o sistema linear
" # " # " #
h0 +h1 h0 +h1
3 6 M0 f [x0 , x1 ] − f [x1 , x2 ]
h0 +h1 h0 +h1
=
6 3
M1 f [x1 , x2 ] − f [x0 , x1 ]

ou seja
" # " # " #
2π π 4
3 3 M0 π
π 2π =
3 3 M1 − π4
Splines cúbicos

Segue-se que
12 12
M0 = , M1 = − , M2 = M0 .
π2 π2
pelo que

1 3 2 3

 π 3 π − 6πx − 4x x ∈ [−π, 0] ,



s(x) =
 1
π 3 − 6πx 2 + 4x 3
 


3
x ∈ [0, π]
π
Splines cúbicos

1.0

0.5

0.0 s(x)
cos(x)
-0.5

-1.0
-3 -2 -1 0 1 2 3

Fig. 2. O spline periódico interpolador de f (x) = cos(x).


Splines cúbicos – estimativas de erro

Teorema: Suponha que f ∈ C (4) ([a, b]) e que s é o spline cúbico


completo interpolador de f em n + 1 pontos distintos x0 , x1 . . . , xn
de [a, b]. Então

5 4
max |f (x) − s(x)| ≤ h max |f (4) (x)| . 
x∈[a,b] 384 x∈[a,b]

Para o spline cúbico natural temos, em geral, apenas a estimativa


de erro
max |f (x) − s(x)| ≤ c h2
x∈[a,b]

onde a constante c > 0 depende de f (a), f (b) e maxx∈[a,b] |f 4) (x)|.


Splines cúbicos

Exemplo 4: Determine o spline cúbico completo, interpolador da


função f (x) = 4x 4 nos pontos x0 = −1, x1 = 0, x2 = 1. Obtenha
um majorante para o erro maxx∈[−1,1] |f (x) − s(x)|.
Resolução: Temos f 0 (x) = 16x 3 , n = 2 e h0 = h1 = 1 pelo que

f0 = f2 = 4, f1 = 0, f [x0 , x1 ] = −4, f [x1 , x2 ] = 4, f00 = −16, f20 = 16 .

O sistema (28) reduz-se a


 1 1     
3 6 0 M0 12
1 2 1
  M1  =  8 
     
 6 3 6
1 1
0 6 3 M2 12

⇒ M0 = M2 = 40 , M1 = −8 .
Splines cúbicos

Segue-se que
 20 4 8
− x 3 − (x + 1)3 + 4(x + 1) − = −8x 3 − 4x 2 , x ∈ [−1, 0] ,

3 3 3
s(x) =
4 20 4
− (1 − x)3 + x 3 − 4x + = 8x 3 − 4x 2 , x ∈ [0, 1] .

3 3 3

Por outro lado maxx∈[−1,1] |f 4) (x)| = 4 · 4! = 96 e


h = max0≤j≤1 hj = 1.
Da estimativa de erro, vem o majorante
5 4 5 · 96 5
max |f (x) − s(x)| ≤ h max |f 4) (x)| = = .
x∈[−1,1] 384 x∈[−1,1] 384 4
Splines cúbicos

2 s(x)
f(x)
1

-1.0 -0.5 0.0 0.5 1.0

Fig. 3. O spline completo interpolador de f (x) = 4x 4 .


Introdução

Nem sempre a interpolação polinomial é a forma mais razoável de


aproximar uma função.
Exemplo. Suponhamos que se observam os alongamentos de uma
mola, provocados por diferentes cargas. Os resultados observados
constam da seguinte tabela:

xi 1 2 3 4 5 6
fi 2.1 3.8 6.15 4.9 10.2 11.8

xi - carga aplicada; fi - alongamento verificado.


Pelas leis da Fı́sica, sabe-se que o alongamento deve ser
directamente proporcional à carga. No entanto, a tabela revela
desvios em relação ao esperado, resultantes de erros de medição.
Introdução

Que acontece se aproximarmos a tabela por um polinómio


interpolador?
12

10

2 3 4 5 6

Representação gráfica dos pontos da tabela e do polinómio


interpolador.
Conclusão: os pequenos erros dos dados levaram a uma
aproximação totalmente distorcida.
Critério dos Mı́nimos Quadrados

Alternativa. Como aproximar a tabela por uma função linear?


Define-se uma função ajustadora: g (x) = ax + b.
Escolhem-se os parâmetros a e b de forma a minimizar a soma
dos quadrados dos desvios de g em relação a f .
Em termosP matemáticos: Define-se
Q(a, b) = 5i=0 (f (xi ) − axi − b)2 ;
Calcula-se : min(a,b)∈R2 Q(a, b).
(Critério dos mı́nimos quadrados)
Critério dos Mı́nimos Quadrados

12

10

2 3 4 5 6

Aproximação da tabela pela função ajustadora:

g (x) = 0.0467 + 1.984x

(obtida pelo método dos mı́nimos quadrados.)


Método dos mı́nimos quadrados : ajustamentos lineares
Como escolher a função ajustadora g (x, a0 , a1 , ...am )?
Definem-se m + 1 funções Φi (x), i = 0, 1, ..., m (funções de base).
Estas funções devem ser linearmente independentes no seguinte
sentido:
Se fizermos corresponder a cada função φi um vector φ̄i :

φ̄i = (φi (x0 ), . . . , φi (xn )),

os vectores φ̄i são linearmente independentes em


IR m+1 ,i = 0, . . . , m.
Definição da função ajustadora:
m
X
g (x) = ai Φi (x).
i=0

Exemplos:
Φ0 (x) ≡ 1, Φ1 (x) = x. g (x) = a0 + a1 x (é o caso do exemplo
estudado.)
Método dos mı́nimos quadrados : ajustamentos lineares

Φ0 (x) ≡ 1, Φ1 (x) = x, . . . , Φm (x) = x m ,


g (x) = a0 + a1 x + · · · + am x m (ajustamento polinomial)
Note-se que neste caso

φ̄i = (x0i , x1i , . . . (xn )i )

Estes vectores são as colunas da matriz de Vandermonde, logo


são linearmente independentes, quaisquer que sejam os pontos
x0 , x1 , . . . , xn , desde que estes sejam distintos.
Φ0 (x) ≡ 1, Φ1 (x) = cos(x), . . . , Φm (x) = cos(mx).
g (x) = a0 + a1 cos(x) + · · · + am cos(mx) (ajustamento por
função trigonométrica).
As funções de base, neste caso, são linearmente
independentes, se os pontos xi forem escolhidos de forma
adequada.
Pergunta de controlo 1

Num problema de mı́nimos quadrados temos 3 funções de base


Φ0 (x), Φ1 (x), Φ2 (x). Sabendo que Φ0 (x) = 1, Φ1 (x) = x , qual
das seguintes formas não pode ter a função Φ2 (x)?
A. Φ2 (x) = 2x + 3.
B. Φ2 (x) = x 2 + 3.
C. Φ2 (x) = x 2 + 3x.
D. Φ2 (x) = x 3 + 3.
Resposta à Pergunta de controlo 1

No caso de Φ0 (x) = 1, Φ1 (x) = x, Φ2 (x) = 2x + 3, temos


Φ2 (x) = 2Φ1 (x) + 3Φ0 (x), logo as três funções não são
linearmente independentes.
Em todas as outras hipóteses as funções Φ0 (x), Φ1 (x), Φ2 (x) são
linearmente independentes.

Solução: A.
Pergunta de controlo 2

Num problema de mı́nimos quadrados temos 3 funções de base


Φ0 (x), Φ1 (x), Φ2 (x). Sabendo que Φ0 (x) = 1, Φ1 (x) = x 2 , qual
das seguintes formas não pode ter a função Φ2 (x)?
A. Φ2 (x) = 2x + 3.
B. Φ2 (x) = x 2 + 3.
C. Φ2 (x) = x 2 + 3x.
D. Φ2 (x) = x 3 + 3.
Resposta à pergunta de controlo 2

No caso de Φ0 (x) = 1, Φ1 (x) = x 2 , Φ2 (x) = x 2 + 3, temos


Φ2 (x) = 3Φ0 (x) + Φ1 (x), logo as três funções não são linearmente
independentes.
Em todas as outras hipóteses as funções Φ0 (x), Φ1 (x), Φ2 (x) são
linearmente independentes.

Solução: B.
Método dos mı́nimos quadrados - Sistema normal

m
X
Sejam g (x) = aj φj (x) e
j=0
n
X
Q(a0 , a1 , ..., am ) = (f (xi ) − g (xi ))2 . (29)
i=0
Como resolver o problema de minimização
Mina0 ,a1 ,...,am Q(a0 , a1 , ..., am )? (30)
Q tem um único ponto de mı́nimo em Rm+1 . Para o encontrar,
temos de resolver o sistema de equações
 ∂Q

 ∂a0 = 0,
 ∂Q

∂a1 = 0, , (31)


 ...
 ∂Q
∂am = 0.
dito o sistema normal.
Produto interno

Introduzimos o produto interno


n
X
(u, v ) = u(xi )v (xi ). (32)
i=0

Q é dado por
n
X
Q(a0 , a1 , ..., am ) = (f (xi ) − g (xi ))2 =
i=0
(f (x0 ) − g (x0 )) + (f (x1 ) − g (x1 ))2 + ... + (f (xn ) − g (xn ))2
2

ou seja, definindo f = [f (x0 ), f (x1 ), ..., f (xn )] e


g = [g (x0 ), g (x1 ), ..., g (xn )] temos

Q(a0 , a1 , ..., am ) = (f − g , f − g ). (33)


Produto interno
Temos
n
X
Q(a0 , a1 , ..., am ) = (f (xi ) − g (xi ))2
i=0
pelo que
n n
∂ (f (xi ) − g (xi ))2
 
∂Q X X ∂(−g )
= = 2[f (xi ) − g (xi )] (xi )
∂aj ∂aj ∂aj
i=0 i=0

Como
m
X
g (x) = aj φj (x)
j=0

∂g
então (x) = φj (x), logo
∂aj
n
∂Q X
= −2 [f (xi ) − g (xi )]φj (xi ) = −2(f − g , φj ).
∂aj
i=0
Produto interno

∂Q
Como devemos ter ∂aj = 0, concluı́mos que

(f − g , φj ), j = 0, 1, ..., m

ou seja
(g , φj ) = (f , φj ), j = 0, 1, ..., m
e como
m
X
g (x) = aj φj (x)
j=0

temos
m
X
aj (φi , φj ) = (f , φj ), j = 0, 1, ..., m
j=0
Sistema Normal

Sistema normal: sistema linear de m + 1 equações lineares. Forma


matricial:

    
(φ0 , φ0 ) (φ0 , φ1 ) ... (φ0 , φm ) a0 (f , φ0 )
 (φ1 , φ0 ) (φ1 , φ1 ) ... (φ1 , φm )   a1   (f , φ1 ) 
=
  ... .
  
 ... ... ... ...  ...
(φm , φ0 ) (φm , φ1 ) ... (φm , φm ) am (f , φm )
Propriedades do Sistema Normal

A matriz A do sistema normal é simétrica


Aij = (φi , φj ) = (φj , φi ) = Aji .

Algoritmo para aplicar o método dos mı́nimos quadrados:


1 Calcular a matriz A
2 Calcular o vector b = ((f , φ0 ), (f , φ1 ), . . . , (f , φm )).
3 Resolver o sistema A x = b (sistema normal).
Pergunta de controlo 2

Seja dada uma tabela de valores de uma função f : f (xi ) = fi ,


i = 0, 1, . . . , n. Sabe-se que o polinómio de grau menor ou igual a
1 que melhor aproxima f , dada por esta tabela, no sentido dos
mı́nimos quadrados, é P(x) = 2x − 3. Qual das seguintes
afirmações é verdadeira?
A.
Pn Pn
i=0 (f (xi ) − axi − b)2 ≤ i=0 (f (xi ) − 2xi + 3)2 , ∀a, b ∈ R.
B.
Pn Pn
i=0 (f (xi ) − axi − b)2 ≥ i=0 (f (xi ) − 2xi + 3)2 , ∀a, b ∈ R.
C. (f (x1 ) − ax1 − b) ≤ (f (x1 ) − 2x1 + 3)2 , ∀a, b ∈ R.
D. (f (x1 ) − ax1 − b)2 ≥ (f (xi ) − 2x1 + 3)2 , ∀a, b ∈ R.
Resposta à pergunta de controlo 2

Seja Q(a, b) = ni=0 (f (xi ) − axi − b)2 . Para obter a melhor


P
aproximação de f por um polinómio de grau menor ou igual a 1,
pelo método dos mı́nimos quadrados, temos de encontrar os
valores de a e b que minimizam Q(a, b). Segundo o enunciado ,
Pn que a = 2 e b =2 −3.Logo,
temos Pn 2
i=0 (f (xi ) − axi − b) ≥ i=0 (f (xi ) − 2xi + 3) , ∀a, b ∈ R.

Solução: B.
Exemplo

Consideremos a função f , dada pela seguinte tabela:

xi 1 2 3 4
fi 7 4.5 3 2
Pretende-se aproximar f através de uma função ajustadora da
forma
a1
g (x) = a0 + .
x
Exemplo
Funções de base:
1
φ0 (x) = 1, φ1 (x) = .
x
Sistema normal:
    
(φ0 , φ0 ) (φ0 , φ1 ) a0 (f , φ0 )
= . (34)
(φ1 , φ0 ) (φ1 , φ1 ) a1 (f , φ1 )
Calculemos as entradas da matriz:
3
X
(φ0 , φ0 ) = φ0 (xi )2 = 1 + 1 + 1 + 1 = 4;
i=0
3
X 1 1 1 1 25
(φ0 , φ1 ) = φ0 (xi )φ1 (xi ) = + + + = ;
1 2 3 4 12
i=0
3
X 1 1 1 1 205
(φ1 , φ1 ) = φ1 (xi )2 = + 2+ 2+ 2 = ;
1 2 3 4 144
i=0
Exemplo
Segundo membro do sistema:
3
X
(f , φ0 ) = f (xi )φ0 (xi ) = f (1) + f (2) + f (3) + f (4) = 16.5;
i=0

3
X f (2) f (3) f (4)
(f , φ1 ) = f (xi )φ1 (xi ) = f (1) + + + = 10.75.
2 3 4
i=0
Substituindo estes valores obtém-se
    
4 25/12 a0 16.5
= . (35)
25/12 205/144 a1 10.75

A solução do sistema (35) é a0 = 0.8077,a1 = 6.369,pelo que a


função ajustadora procurada é
6.369
g (x) = 0.8077 + .
x
Exemplo
Vamos calcular o mı́nimo
X 3 3
X
min (f (xi ) − g (xi ))2 = (f (xi ) − a0 − a1 /xi )2 .
(a0 ,a1 )∈IR 2
i=0 i=0

O mı́nimo é atingido quando a0 = 0.8077,a1 = 6.369; basta


calcular Q(0.8077, 6.369).Resumo dos cálculos:
xi fi g (xi ) (fi − g (xi ))2
1 7 7.177 0.031
2 4.5 3.992 0.258
3 3 2.931 0.005
4 2 2.400 0.160
O valor procurado é a soma dos valores da última coluna da tabela:
Q(0.8077, 6.369) = 0.454.
Conforme resulta da definição do método, quaisquer que sejam
a0 , a1 ∈ IR verifica-se Q(a0 , a1 ) ≥ 0.454.
7

1.5 2.0 2.5 3.0 3.5 4.0

Gráfico relativo ao Exemplo. Os pontos representam os valores de


f e a linha contı́nua é o gráfico da função ajustadora.

Você também pode gostar