| |

Matemática numérica I

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

5.2 Interpolação de Lagrange

Interpolação de Lagrange333Joseph-Louis Lagrange, 1736 - 1813, matemático italiano. Fonte: Wikipédia: Joseph-Louis Lagrange. é uma técnica para a computação do polinômio interpolador p⁢(x) de um conjunto de pontos {(xi,yi)}i=1n dados. A ideia consiste em escrever o polinômio interpolador na forma

p⁢(x)=∑i=1nyi⁢Li⁢(x) (5.14)
=y1L1(x)+y2L2(x)+⋯+ynLn(x), (5.15)

onde Li⁢(x) é chamado de i-ésimo polinômio de Lagrange e é definido como o polinômio de grau n−1 que satisfaz

Li⁢(xj)={1,i=j0,i≠j (5.16)

Mais especificamente, temos que Li⁢(x) tem raízes {x1,…,xi−1,xi+1,…,xn} e, portanto, pode ser decomposto na forma

Li⁢(x)=ci⁢∏j≠ij=1n(x−xj) (5.17)
=ci(x−x1)⋯(x−xi−1)
×(x−xi)⋯(x−xn). (5.18)

Além disso, como Li⁢(xi)=1, temos

ci=1∏j≠ij=1n(xi−xj). (5.19)

Assim sendo, podemos concluir que

Li⁢(x)=∏j≠ij=1nx−xjxi−xj (5.20)
=(x−x1)⁢⋯⁢(x−xi−1)(xi−x1)⁢⋯⁢(xi−xi−1)
×(x−xi+1)⁢⋯⁢(x−xn)(xi−xi+1)⁢⋯⁢(xi−xn). (5.21)
Exemplo 5.2.1.

Consideramos o problema de encontrar o polinômio interpolador do conjunto de pontos {(−1,−1),(0,1),(1,1/2)}. Como temos 3 pontos, o polinômio tem grau 2 e pode ser escrito na seguinte forma de Lagrange

p⁢(x)=y1⁢L1⁢(x)+y2⁢L2⁢(x)+y3⁢L3⁢(x), (5.22)

onde y1=−1, y2=1 e y3=1/2. Os polinômios de Lagrange são dados por

L1⁢(x)=(x−x2)⁢(x−x3)(x1−x2)⁢(x1−x3) (5.23)
=12x2−12x, (5.24)
L2⁢(x)=(x−x1)⁢(x−x3)(x2−x1)⁢(x2−x3) (5.25)
=−x2+1, (5.26)
L3⁢(x)=(x−x1)⁢(x−x2)(x3−x1)⁢(x3−x2) (5.27)
=12x2+12x. (5.28)

E, então, temos o polinômio interpolador

p⁢(x)=−1.25⁢x2+0.75⁢x+1. (5.30)
Código 13: poliLagrange.py
1import numpy as np
2
3def poliLagrange(xpts, ypts):
4 # num. pts
5 n = xpts.size
6 # interp poli
7 p = np.poly1d(0)
8 for i in range(n):
9 # Lagrange poli
10 L = np.poly1d(1)
11 for j in range(n):
12 if (i != j):
13 L *= np.poly1d([1, -xpts[j]])/(xpts[i]-xpts[j])
14 p += ypts[i] * L
15 return p
16
17
18
19# exemplo
20xpts = np.array([-1., 0, 1])
21ypts = np.array([-1., 1, 1/2])
22
23
24# interp poli
25p = poliLagrange(xpts, ypts)
26print(p)
27
28# verificação
29print(p(x))

5.2.1 Aproximação de funções

Polinômio interpoladores podem ser usados para a aproximação de funções. Podemos aproximar uma dada função f pelo polinômio interpolador de um conjunto de pontos selecionados {(xi,yi=f⁢(xi))}i=1n. De fato, o seguinte teorema nos fornece uma estimativa para o erro de uma tal interpolação.

Teorema 5.2.1.(Teorema de Lagrange)

Sejam dados uma função f∈Cn+1⁢([a,b]) e n pontos {xi}i=1n⊂[a,b]. Então, o polinômio interpolador do conjunto de pontos {xi,yi=f⁢(xi)}i=1n satisfaz

f⁢(x)=p⁢(x)+f(n+1)⁢(ξ)(n+1)!⁢∏i=1n(x−xi). (5.31)
Exemplo 5.2.2.

Consideramos o problema de aproximar f⁢(x)=sen⁡(x) pelo polinômio interpolador do conjunto de pontos x1=0, x2=π/2 e x3=π. I.e., queremos determinar o polinômio p⁢(x) de grau 2 que interpola os pontos {(0,0),(π/2,1),(π⁢,0)}. Usando a técnica de Lagrange, obtemos

p⁢(x)=−0.41⁢x2+1.3⁢x, (5.32)

com seus coeficientes arredondados para dois dígitos significativos. A Figura 5.2 mostra os esboços da função f⁢(x)=sen⁡(x), dos pontos dados e do polinômio interpolador p⁢(x).

Refer to caption
Figura 5.2: Gráficos da função, dos pontos e do polinômio interpolador computado no Exemplo 5.2.2.
1x = np.array([0, np.pi/2, np.pi])
2f = lambda x: np.sin(x)
3poli = poliLagrange(x, f(x))

5.2.2 Exercícios

E. 5.2.1.

Use a técnica de Lagrange para obter o polinômio interpolador do conjunto de pontos {(−1,−1), (−0.5,1), (1,2)}.


−1,6¯⁢x2+1.5⁢x+2.1⁢6¯

E. 5.2.2.

Use a técnica de Lagrange para obter o polinômio interpolador do conjunto de pontos {(−1,−1), (0,1), (1,1/2), (2,1)}.


0.58⁢3¯⁢x3−1.25⁢x2+0.1⁢6¯⁢x+1.

E. 5.2.3.

Use a técnica de Lagrange para obter o polinômio interpolador do conjunto de pontos {(−1,−1), (0,1), (1,1/2), (2,1), (2.5,1)}.


−0.26190476⁢x4⁢1.10714286⁢x3−0.98809524⁢x2−0.35714286⁢x⁢1.

E. 5.2.4.

Use a técnica de interpolação de Lagrange para encontrar o polinômio interpolador que aproxima a funçãof⁢(x)=ex pelos pontos x1=0, x2=1, x3=1.5 e x4=2.


0.54⁢x3−0.15⁢x2+1.3⁢x+1.

E. 5.2.5.

Use a técnica de Lagrange para aproximar a função f⁢(x)=cos⁡(x) por um polinômio interpolador p no intervalo [0,π]. Escolha pontos de forma a obter p que aproxime f com boa precisão.


Dica: use os pontos xi=(i−1)⁢π4, i=1,2,3,4.


Envie seu comentário

Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!

Opcional. Preencha seu nome para que eu possa lhe contatar.
Opcional. Preencha seu e-mail para que eu possa lhe contatar.
As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a política de uso de dados para mais informações.

Licença Creative Commons
Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional. Ícones e elementos gráficos podem estar sujeitos a condições adicionais.

Pedro H A Konzen
| |