Forma de Lagrange

Ver Todos os Exercícios

Teoria

Introdução

Falaaaaaa meus jovenzitos, no tópico sobre Interpolação por sistema linear nós vimos um basicão sobre interpolação. Basicamente, quando eram conhecidos apenas valores numéricos da função para um conjunto de pontos e era necessário calcular um ponto não tabelado. Hmmmm... show, um dos métodos mais conhecidos pra resolver esse tipo de situação é usando Interpolação polinomial.

Interpo... o quê??? Era um método que dizia que qualquer função definida e contínua em um intervalo fechado, existe um polinômio que está tãoooooo próximo da função quanto quisermos.

Maaaaaaas, apesar da facilidade de aplicação desse método, ele tem alguns problemas que se devem aos métodos numéricos para a resolução de sistemas lineares. Por exemplo, se tivéssemos pontos muito próximos de zero, já que o sistema linear a ser resolvido seria algo do tipo:

1 0.001 0.002 1 0.003 0.005 1 0.007 0.007 a 0 a 1 a 2 17 - 5 7

Sendo assim, precisamos de métodos mais confiáveis para a obtenção da nossa função de interpolação e é aí que entra a forma de Lagrange.

Polinômios Interpoladores de Lagrange

A ideia é parecida com a da interpolação linear. Dá pra fazer isso generalizando o conceito de interpolação linear. Veja bem, vamos montar um polinômio de grau n (onde a maiooooooor potência de x será n ) que vai interpolar nossa função f x nos pontos x 0 ,   x 1   e   x n . Os coeficientes a k de p n x devem ser tais que:

f x k =   p n x k

Definiremos as funções L i   ( x k ) com a seguinte propriedade:

Nosso objetivo nesse método é escrever nosso polinômio p n x como combinação de polinômios L 0 ,   L 1 ,   … ,   L n de grau n . Assim oh:

p n x = y 0 L 0 x + y 1 L 1 x + … + y n L n x

onde y i = f x i .

Para que p n x i = f x i = y i definimos os polinômios L k como:

L k x = x - x 0 x - x 1 … x - x k - 1 x - x k + 1 … x - x n x k - x 0 x k - x 1 … x k - x k - 1 x k - x k + 1 … x k - x n

Veja bem, se: x 0 ,   x 1 … x n são diferentes e a f ( x ) é uma função de valores são dados esses números. Então existe um ÚNICO POLINÔMIO DE GRAU MÁXIMO N.

p n x i = f x i

Meio confuso? Vamos ver um exemplo para ficar melhor, pode ser? Determine o polinômio interpolador para os pontos:

Primeiro: Analisar o número de i presentes na função dada. No caso temos três pontos i = 0,1   e   2 . Isso significa que temos TRÊS NÓS, mas o grau do polinômio é 2. Então uma regrinha legal de marcar é que o grau de polinômio sempre vai ser n ú m e r o   t o t a l   d e   p o n t o s   - 1 , ou seja, se temos n pontos, o polinômio será de grau n - 1 .

Como temos 3 nós de interpolação, nosso polinômio será de grau 2 . E definindo x 0 = - 1 ,   x 1 = 0 e x 2 = 1 , temos:

p 2 x = y 0 L 0 + y 1 L 1 + y 2 L 2

Onde:

y 0 = f x 0 = 6

y 1 = f x 1 = 1

y 2 = f x 2 = 0

Segundo: a PRÓXIMA coisa importante para se fazer é analisar que termos nós temos e como montar os interpoladores de Lagrange. Seguindo a fórmula geral:

L k x = x - x 0 x - x 1 … x - x k - 1 x - x k + 1 … x - x n x k - x 0 x k - x 1 … x k - x k - 1 x k - x k + 1 … x k - x n

Veja bem, nós temos nesse caso :   x 0 ,   x 1   e   x n = x 2 . Isso significa que temos que montar L 0 ,   L 1   e   L 2 . Um bom macete pra montar essa estrutura é:

Quem manda no L 0 é o grau 0, então x 0 fica no quociente e manda sempre subtrair os outros termos. E ele nuuuuuunca vai aparecer em cima. Já os outros 2 pontos ( x 1 e   x 2 ) aparecem em cima e embaixo. Fica assim:

L 0 = x - x 1 x - x 2 x 0 - x 1 x 0 - x 2 = x - 0 x - 1 - 1 - 0 - 1 - 1 = x 2 - x 2

Quem manda no L 1 é o grau 1, então x 1 fica no quociente e manda sempre subtrair os outros termos. E ele nuuuuuunca vai aparecer em cima. Já os outros 2( x 0 e   x 2 ) aparecem em cima e embaixo. Fica assim:

L 1 = x - x 0 x - x 2 x 1 - x 0 x 1 - x 2 = x - - 1 x - 1 0 - - 1 0 - 1 = ( x + 1 ) ( x - 1 ) - 1 = x 2 - 1 - 1

Quem manda no L 2 é o grau 2, então x 2 fica no quociente e manda sempre subtrair os outros termos. E ele nuuuuuunca vai aparecer em cima. Já os outros 2( x 0 e   x 1 ) aparecem em cima e embaixo. Fica assim:

L 2 = x - x 0 x - x 1 x 2 - x 0 x 2 - x 1 = x - - 1 x - 0 1 - - 1 1 - 0 = x 2 + x 2

Terceiro: Agora juntamos tudo no polinômio:

p 2 x = y 0 L 0 + y 1 L 1 + y 2 L 2

p 2 x = 6 x 2 - x 2 + 1 . x 2 - 1 - 1 + 0 x 2 + x 2 =   2 x 2 - 3 x + 1

Olha como ficam essas coisas todos no gráfico. Os pontos são:

E o polinômio que achamos fica:

Não é fácil, nem difícil. Mas se fizer com calma e paciência fica bem automático pra responder né?

O chato aqui é que à medida que aumentamos o grau de p n nós não só precisamos calcular mais polinômios L i como eles também se tornam mais trabalhosos de se calcular. Fora que o cálculo final de p n x também vai ficando cada vez mais chato à medida que aumentamos o grau do nosso polinômio interpolador.

Algoritmo

Agora nosso algoritmo vai sofrer uma mudança haha. Vamos lá:

Passo 1. Dados iniciais (o que seu programa vai receber de você):

a. Vetor de valores x = x 0 , x 1 , … , x n

b. Vetor de valores f x = f x 0 , f x 1 , … , f x n

c. Valor x - onde se quer avaliar f x

Passo 2. Para i de 0 a n faça os passos de 3 a 4:

Passo 3. L i = 1

Passo 4. Para j de 0 a n faça o passo 5:

Passo 5. Se j ≠ i : L i = L i ∙ x - - x j x i - x j

Passo 6. Nossa aproximação para f x ¯ será o valor y 0 L 0 + y 1 L 1 + … + y n L n

Como nosso objetivo final em geral é aproximar f x em algum ponto x ¯ , o algoritmo já calcula diretamente o valor de p n x nesse ponto x ¯ ao invés de nos dar a função de interpolação (o que seria bem mais trabalhoso).

Algoritmo

Exercícios Resolvidos

Exercício Resolvido #1

Dada a tabela da população de uma vila no início de cada ano, estimar a população em setembro de 1972, usando o polinômio de Lagrange de grau 2 .

Passo 1

Vamos encontrar uma função de interpolação através do método de lagrange. Para isso vamos relacionar a população como (y) e o ano com (x). Ele quer um polinômio de Lagrange de grau 2 , então precisamos de 3 pontos. Os anos mais próximos de setembro de 1972 são:

x 0 = 1972

x 1 = 1973

x 2 = 1974

E temos:

y 0 = 6600

y 1 = 7200

y 2 = 8000

Nosso p 2 x será da forma:

p 2 x = y 0 L 0 + y 1 L 1 + y 2 L 2

Passo 2

Calculando os polinômios L k :

L k x = x - x 0 x - x 1 … x - x k - 1 x - x k + 1 … x - x n x k - x 0 x k - x 1 … x k - x k - 1 x k - x k + 1 … x k - x n

Primeiro o L 0 , como

L 0 = x - x 1 x - x 2 x 0 - x 1 x 0 - x 2 = x - 1973 x - 1974 1972 - 1973 1972 - 1974 = x 2 - 3947 x + 3894702 2

Agora para os outros polinômios:

L 1 = x - x 0 x - x 2 x 1 - x 0 x 1 - x 2 = x - 1972 x - 1974 1973 - 1972 1973 - 1974 = - x 2 + 3946 x - 3892728

L 2 = x - x 0 x - x 1 x 2 - x 0 x 2 - x 1 = x - 1972 x - 1973 1974 - 1972 1974 - 1973 = x 2 - 3945 x + 3890756 2

Passo 3

Jogando tudo na fórmula:

p 2 x = y 0 L 0 + y 1 L 1 + y 2 L 2

p 2 x = 6600 x 2 - 3947 x + 3894702 2 + 7200 - x 2 + 3946 x - 3892728 + 8000 x 2 - 3945 x + 3890756 2

p 2 x = 100 x 2 - 393900 x + 387899000

Agora tem que tomar cuidado com uma coisa. Nós usamos a população do começo de cada ano para fazer essa aproximação. Mas ele pede a população em setembro de 1972! Então como fazemos isso? Bom, o ano tem 12 meses (que seria 100%) então cada mês corresponde a 100 % 12 = 8,3333 % do ano. Setembro é o 9° mês do ano que corresponde a 8,3333 % × 9 = 75 %   no ano. Se considerarmos o mês como sendo uma parte decimal do ano teremos que do inicio do ano até setembro de 1972 equivale ao ano 1972 + 0,75 = 1972,75 . Substituindo esse valor na nossa função de interpolação:

p 2 1972.75 = 7031.25

Logo, temos aproximadamente 7031 pessoas nessa vila em setembro de 1972.

Resposta

A população desta vila em setembro de 1972 é de aproximadamente 7031 pessoas.

Exercício Resolvido #2

A tabela abaixo representa a inflação bimestral medida pelo I N P C no ano de 2000 .

Estime qual foi a inflação em abril, utilizando o polinômio de Lagrange de grau n ≤ 2 .

Passo 1

Para encontrarmos o polinômio de Lagrange de grau 2 precisamos de 3 pontos. Como queremos estimar a inflação em abril, vamos pegar os meses mais próximos dele. E os meses mais próximos de abril são:

x 0 = f e v e r e i r o = 2

x 1 = m a r ç o = 3

x 2 = m a i o = 5

E temos:

y 0 = 0.64

y 1 = 0.24

y 2 = 2.94

Nosso p 2 x será da forma:

p 2 x = y 0 L 0 + y 1 L 1 + y 2 L 2

Passo 2

Calculando os polinômios L i :

L 0 = x - x 1 x - x 2 x 0 - x 1 x 0 - x 2 = x - 3 x - 5 2 - 3 2 - 5 = x 2 - 8 x + 15 3

L 1 = x - x 0 x - x 2 x 1 - x 0 x 1 - x 2 = x - 2 x - 5 3 - 2 3 - 5 = - x 2 + 7 x - 10 2

L 2 = x - x 0 x - x 1 x 2 - x 0 x 2 - x 1 = x - 2 x - 3 5 - 2 5 - 3 = x 2 - 5 x + 6 6

Passo 3

Jogando tudo na fórmula:

p 2 x = 175 x 2 - 995 x + 1482 300

Substituindo 4 no nosso polinômio que seria o valor de abril temos:

p 2 4 = 1.00667

Resposta

A partir das informações dadas podemos estimar que a inflação em abril foi de aproximadamente 1.00667 .

Exercício Resolvido #3

Para as funções f x abaixo, sejam x 0 = 1 , x 1 = 1.25 e x 2 = 1.6 . Encontre funções de interpolação de grau 1 e 2 para aproximar f 1.4 e encontre o erro absoluto.

a f x = sin ⁡ π x

b f x = x - 1 3

c f x = log 10 ⁡ 3 x - 1

d f x = e 2 x - x

Passo 1

a Para encontrar o polinômio de Lagrange de grau 1 vamos usar os pontos:

x 0 = 1.25

x 1 = 1.6

pois estão mais próximos de 1.4 . Temos então que:

p 1 x = y 0 L 0 + y 1 L 1 ,

onde:

y 0 = sin ⁡ 1.25 π = - 0.70711

y 1 = sin ⁡ 1.6 π = - 0.95106

L 0 = x - x 1 x 0 - x 1 = 1.6 - x 0.35

L 1 = x - x 0 x 1 - x 0 = x - 1.25 0.35

Logo,

p 1 x = 0.16414 - 0.697 x

Substituindo 1.4 no polinômio:

p 1 1.4 = - 0.81166

O valor real da função nesse ponto é:

f 1.4 = sin ⁡ 1.4 π = - 0.95106

E o erro absoluto vale:

E A = p 1 1.4 - f 1.4 = 0.1394

Passo 2

Para encontrar o polinômio de Lagrange de grau 2 vamos usar os pontos:

x 0 = 1

x 1 = 1.25

x 2 = 1.6

Temos então que:

p 2 x = y 0 L 0 + y 1 L 1 + y 2 L 2 ,

onde:

y 0 = sin ⁡ π = 0

y 1 = sin ⁡ 1.25 π = - 0.70711

y 2 = sin ⁡ 1.6 π = - 0.95106

Repare que como o y 0 foi zerado não precisamos nos preocupar em calcular L 0 !

L 1 = x - x 0 x - x 2 x 1 - x 0 x 1 - x 2 = x - 1 x - 1.6 1.25 - 1 1.25 - 1.6 = - 11.4286 x 2 + 29.7143 x - 18.2857

L 2 = x - x 0 x - x 1 x 2 - x 0 x 2 - x 1 = x - 1 x - 1.25 1.6 - 1 1.6 - 1.25 = 4.7619 x 2 - 10.7143 x + 5.95238

Logo,

p 2 x = 3.55242 x 2 - 10.8213 x + 7.26893

Substituindo 1.4 no polinômio:

p 2 1.4 = - 0.91819

O valor real da função nesse ponto é:

f 1.4 = sin ⁡ 1.4 π = - 0.95106

E o erro absoluto vale:

E A = p 2 1.4 - f 1.4 = 0.03287

Passo 3

b Para encontrar o polinômio de Lagrange de grau 1 vamos usar os pontos:

x 0 = 1.25

x 1 = 1.6

pois estão mais próximos de 1.4 . Temos então que:

p 1 x = y 0 L 0 + y 1 L 1 ,

onde:

y 0 = 1.25 - 1 3 = 0.62996

y 1 = 1.6 - 1 3 = 0.84343

L 0 = x - x 1 x 0 - x 1 = 1.6 - x 0.35

L 1 = x - x 0 x 1 - x 0 = x - 1.25 0.35

Logo,

p 1 x = 0.60991 x - 0.13243

Substituindo 1.4 no polinômio:

p 1 1.4 = 0.72145

O valor real da função nesse ponto é:

f 1.4 = 1.4 - 1 3 = 0.73681

E o erro absoluto vale:

E A = p 1 1.4 - f 1.4 = 0.01536

Passo 4

Para encontrar o polinômio de Lagrange de grau 2 vamos usar os pontos:

x 0 = 1

x 1 = 1.25

x 2 = 1.6

Temos então que:

p 2 x = y 0 L 0 + y 1 L 1 + y 2 L 2 ,

onde:

y 0 = 1 - 1 3 = 0

y 1 = 1.25 - 1 3 = 0.62996

y 2 = 1.6 - 1 3 = 0.84343

Repare que como o y 0 foi zerado não precisamos nos preocupar em calcular L 0 !

L 1 = x - x 0 x - x 2 x 1 - x 0 x 1 - x 2 = x - 1 x - 1.6 1.25 - 1 1.25 - 1.6 = - 11.4286 x 2 + 29.7143 x - 18.2857

L 2 = x - x 0 x - x 1 x 2 - x 0 x 2 - x 1 = x - 1 x - 1.25 1.6 - 1 1.6 - 1.25 = 4.7619 x 2 - 10.7143 x + 5.95238

Logo,

p 2 x = - 3.18323 x 2 + 9.68206 x - 6.49884

Substituindo 1.4 no polinômio:

p 2 1.4 = 0.8169

O valor real da função nesse ponto é:

f 1.4 = 1.4 - 1 3 = 0.73681

E o erro absoluto vale:

E A = p 2 1.4 - f 1.4 = 0.08009