| | | | |

5.2 Interpolação de Lagrange

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

Interpolação de Lagrange4848endnote: 48Joseph-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=1nyiLi(x) (5.12a)
=y1L1(x)+y2L2(x)++ynLn(x), (5.12b)

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

Li(xj)={1,i=j0,ij (5.13)

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

Li(x) =cijij=1n(xxj) (5.14a)
=ci(xx1)(xxi1)
×(xxi)(xxn). (5.14b)

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

ci=1jij=1n(xixj). (5.15)

Assim sendo, podemos concluir que

Li(x) =jij=1nxxjxixj (5.16a)
=(xx1)(xxi1)(xix1)(xixi1)
×(xxi+1)(xxn)(xixi+1)(xixn). (5.16b)
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)=y1L1(x)+y2L2(x)+y3L3(x), (5.17)

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

L1(x) =(xx2)(xx3)(x1x2)(x1x3) (5.18)
=12x212x, (5.19)
L2(x) =(xx1)(xx3)(x2x1)(x2x3) (5.20)
=x2+1, (5.21)
L3(x) =(xx1)(xx2)(x3x1)(x3x2) (5.22)
=12x2+12x. (5.23)

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

p(x)=1.25x2+0.75x+1. (5.25)
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 fCn+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(xxi). (5.26)
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.41x2+1.3x, (5.27)

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)}.

Resposta.

1,6¯x2+1.5x+2.16¯

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)}.

Resposta.

0.583¯x31.25x2+0.16¯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)}.

Resposta.

0.26190476x41.10714286x30.98809524x20.35714286x1.

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.

Resposta.

0.54x30.15x2+1.3x+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.

Resposta.

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


Envie seu comentário

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. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!