Você está na página 1de 29

Disciplina: Métodos Numéricos

Temática: Interpolação Polinomial

Professor: Vinícius da Rocha Motta


vinicius.motta@uvv.br
Qual é o principal objetivo
da Interpolação Polinomial?

ⓘ Start presenting to display the poll results on this slide.


Introdução

Muitos dados de problemas reais são obtidos através de


experimentos, coleta em equipamentos, tabelas estatísticas,
algumas vezes de funções de difícil avaliação ou funções
complexas.

Dessa forma, em vários casos, temos uma tabela de pontos e


precisamos analisar e obter informações importantes a partir
desta tabela.
Introdução
● É muito importante saber inserir valores em uma tabela de

pontos fornecida, ou aproximar uma função dada por uma outra


visando a resolver mais facilmente o problema com esta nova
função.

● Algumas vezes, a função que forneceu as informações é uma

função difícil de derivar ou integrar, e, substituindo essa função


por outra mais simples, como funções polinomiais, o trabalho é
facilitado.
Interpolação Polinomial
Assim, o método mais usado para obter uma função dada uma tabela
de pontos ou uma função complexa é a interpolação polinomial.

Interpolar é determinar a expressão algébrica de urna função de interpolação tal que


Interpolação Polinomial
Isto é, queremos que a função interpolação passe por todos os pontos da tabela.
Sem perda de generalidade, usamos um exemplo com seis pontos, na figura
seguinte, para ilustrar a interpolação.

(x0 y0), (x1 y1), (x5 y5)


Interpolação Polinomial
Na maioria das vezes, a função de interpolação é usada para estimar
o valor de

Normalmente, as funções de interpolação podem ser divididas em dois grupos:

1. Funções definidas por uma única expressão algébrica definida para todo o intervalo
[x0, xn]. Por exemplo: funções polinomiais ou racionais.
2. Funções definidas por mais de uma expressão algébrica, que podem ser chamadas de
funções definidas por partes, pois, para cada subintervalo [x0, xn], [x1, x2], ..., [xn-1,
xn] ela é definida. Por exemplo, spline linear (funções polinomiais de grau 1) ou
spline cúbico (funções polinomiais de grau 3).
Interpolação Polinomial
O método consiste em determinar um polinômio interpolador que passe por
todos os nodos de interpolação, ou seja,

Queremos mostrar que existe um, e somente um, polinómio que satisfaz as
condições dadas em acima com grau m ≤ n, em que n é dito ordem de
interpolação.

Assim sendo, devemos determinar os coeficientes c0, c1, ..., cn-1 do polinômio
Interpolação Polinomial
Das equações apresentadas, obtemos o sistema de equações lineares nas
incógnitas c0, c1, ..., cn-1, que, resolvidas simultaneamente, nos permitem
calcular os coeficientes do polinômio que queremos determinar.

O sistema linear pode ser escrito na seguinte forma matricial:


Exemplo:
Encontre o polinômio interpolador que passa pelos pontos (1, 3), (2, 5) e (3, 7).

Solução:
Para encontrar o polinômio interpolador que passa pelos pontos dados, primeiro
precisamos construir o sistema de equações lineares correspondente. Como
temos três pontos de dados, nosso polinômio interpolador terá grau dois.
Portanto, podemos expressar o polinômio interpolador na forma:

p(x) = c0 + c1x + c2x^2


Onde c0, c1 e c2 são os coeficientes do polinômio que precisamos encontrar. A
seguir, montamos o sistema de equações lineares usando os pontos de dados
conhecidos:
c0 + c1(1) + c2(1)^2 = 3
c0 + c1(2) + c2(2)^2 = 5
c0 + c1(3) + c2(3)^2 = 7

Simplificando as equações, obtemos:


c0 + c1 + c2 = 3
c0 + 2c1 + 4c2 = 5
c0 + 3c1 + 9c2 = 7
Agora, podemos resolver esse sistema de equações simultaneamente para
obter os valores de c0, c1 e c2. Para isso, podemos usar um método de
álgebra linear, como a eliminação de Gauss, por exemplo. Resolvendo o
sistema, obtemos:
c0 = 2
c1 = 1
c2 = 0

Portanto, o polinômio interpolador que passa pelos pontos dados é dado por:
p(x) = 2 + x + 0x^2 = 2 + x
Para encontrar o polinômio interpolador que passa pelos pontos (1, 3), (2, 5) e (3, 7)
em Python, podemos utilizar o pacote NumPy. Segue abaixo o código para calcular o
polinômio interpolador:
import numpy as np

# Definindo os pontos
x = np.array([1, 2, 3])
y = np.array([3, 5, 7])

# Calculando os coeficientes do polinômio interpolador


coef = np.polyfit(x, y, 2)

# Criando o polinômio interpolador


polinomio = np.poly1d(coef)

# Imprimindo o polinômio interpolador


print(polinomio)
Interpolação Polinomial
A solução do sistema linear fornece os coeficientes do polinómio
interpolador.

A matriz x é denominada matriz de Vandermonde. Verificar det(x) ≠ 0


se é solução é única.

As matrizes de Vandermonde são muito mal condicionadas, suas


soluções são muito sensíveis a erros de arredondamento.

Pelo motivo exposto, esse método não é utilizado para fazer uma
interpolação polinomial, por isso, vamos aprender alternativas que são
mais adequadas para efetuar a implementação computacional.
ESCOLHA DOS PONTOS PARA INTERPOLAÇÃO

Independentemente do método de interpolação numérica, quando temos


uma quantidade de pontos maior do que a quantidade necessária para
escrever o polinômio que desejamos interpolar, precisamos escolher os
pontos de interpolação, e essa escolha não deve ser feita de forma
aleatória.

Na prática, é necessário escolher n+1 pontos dentre os m valores de


uma tabela, sendo n+1 < m, isto é, deseja-se construir um polinômio
interpolador de grau n, e a tabela fornece uma quantidade maior do que
os n+1 pontos necessários à construção do polinômio.
● Essa escolha é importante, pois não se devem construir
polinômios de grau elevado por causa do erro de
arredondamento
● Devemos evitar uma extrapolação que é quando o valor de x se
encontra fora do intervalo dos pontos utilizados para construir o
polinômio.
● A extrapolação é uma condição de avaliação fora do intervalo
da região conhecida. É um passo com o qual, se necessário,
devemos tomar extremo cuidado.
ESCOLHA DOS PONTOS PARA INTERPOLAÇÃO
Para escolher os pontos adequados, devemos escolher os
pontos cujo valor está mais próximo possível do valor que
se deseja interpolar.
Os dois primeiros pontos devem ser os pontos mais
próximos, de forma que o valor a inserir esteja entre eles,
isto é, devemos escolher

tais que
ESCOLHA DOS PONTOS PARA INTERPOLAÇÃO

A partir do terceiro ponto, a escolha deve ser feita calculando a menor distância do ponto a
interpolar para os pontos

ou seja devemos calcular Solução

Para escrever um polinômio de grau 2, devemos


escolher três pontos.
Exemplo: Supondo que vamos estimar v = f(1.8) com um
polinômio de grau 2 na tabela seguinte, quais Os dois primeiros pontos são (1.0; 2.3) e (4.0;
3.2), pois 1.0 < 1.8 < 4.0 e são os pontos mais
pontos devemos usar para efetuar a
próximos de 1.8.
interpolação?
O terceiro ponto deve ser escolhido ao
calcularmos |0.0 — 1.8| = 1.8 e |6.0 — 1.8| = 4.2.
Assim, escolhemos o ponto (0.0; 1.0) pois 1.8 <
4.2.
Polinômios interpoladores de lagrange
TCC - Braço Robótico com visão Computacional - YouTube

Vamos iniciar o item de polinômios na forma de Lagrange, com uma aplicação


interessante.
Braço Robótico

Visão Computacional

Denavit Hartenberg

Interpolação Polinomial - Polinómio de Lagrange

Programação Python com OpenCV

Cinemática Direta e Inversa TCC - Braço Robótico com


visão Computacional
Polinômios interpoladores de lagrange
Escrever um polinómio interpolador linear como a média
ponderada dos dois valores que são ligados por uma reta.

Sendo Ls os coeficientes de ponderação.

O primeiro coeficiente de ponderação é uma reta igual a 1 em x0 e 0 em x1


sendo: Assim, o polinómio interpolador
de Lagrange linear é:

Descrição geométrica
da lógica dos
polinômios de
Lagrange usando um
caso de primeiro grau.
Polinômios interpoladores de lagrange
Da mesma forma que o polinômio de grau 1, podemos interpolar uma
parábola através de três pontos. Três parábolas seriam usadas, com
cada uma passando através de um dos pontos e igualando a zero
nos outros dois pontos. Assim, a soma delas daria a única parábola que
interpolaria os três pontos, que é escrita da seguinte forma:

De maneira genérica, podemos escrever os polinômios apresentados e


qualquer outro de ordem superior da seguinte forma:
Polinômios interpoladores de lagrange
De maneira genérica, podemos escrever os polinômios apresentados e
qualquer outro de ordem superior da seguinte forma:

em que

são polinômios de LAGRANGE

Note que os polinômios são definidos como:


Polinômios interpoladores de lagrange
Propriedades dos polinômios de Lagrange:
Em Python, podemos implementar o método de interpolação polinomial de Lagrange usando a
biblioteca NumPy. Aqui está um exemplo de como podemos implementar essa técnica:
import numpy as np
import matplotlib.pyplot as plt
Neste exemplo, os pontos (1, 3), (2, 5) e (3, 7)
# Definindo os pontos são armazenados nos arrays x e y,
x = np.array([0, 1, 2, 3, 4, 5, 6])
respectivamente. A função lagrange é definida
y = np.array([2, 3, 4, 5, 6, 7, 8])
para calcular os polinômios de Lagrange
# Definindo a função de Lagrange correspondentes aos pontos dados. A função
def lagrange(x, y):
dot da biblioteca NumPy é usada para calcular
def L(i):
def product(j): o produto escalar entre os arrays y e a matriz
if i == j: diagonal cujos elementos são os polinômios
return 1
de Lagrange.
else:
return (x[i] - x[j])/(x[i] - x[j])
return np.prod([product(j) for j in O polinômio interpolador de Lagrange
range(len(x))])
correspondente aos pontos (1, 3), (2, 5) e (3,
return np.array([L(i) for i in range(len(x))])
7) é 2x^2 - x + 2.
Neste exemplo, definimos uma lista de pontos que podem ser bem aproximados
por um polinômio de baixa ordem. A partir desses pontos, criamos o polinômio
interpolador de Lagrange utilizando o método descrito anteriormente. O
resultado é um gráfico que mostra os pontos e o polinômio interpolador que se
ajusta bem aos dados.
# Plotando os pontos e o polinômio interpolador
xp = np.linspace(min(x), max(x), 100)
plt.plot(xp, polinomio(xp), label='Polinômio Interpolador')
plt.plot(x, y, '.', label='Pontos')

# Configurando o gráfico
plt.title('Polinômio Interpolador de Lagrange')
plt.xlabel('X')
plt.ylabel('Y')
plt.legend()

# Mostrando o gráfico
plt.show()
Utilize um sensor para coletar dados de temperatura de um ambiente. Coletar, por exemplo, 5 valores de
temperatura em intervalos regulares de tempo.

Anote os valores de temperatura coletados e organize-os em uma tabela.

Realize a interpolação polinomial de Lagrange para esses dados.

Use o polinômio interpolador obtido para estimar a temperatura em um momento intermediário a partir dos
dados coletados. Por exemplo, suponha que você coletou dados de temperatura em intervalos de 10
minutos e quer estimar a temperatura em um momento que ocorreu 5 minutos após a última leitura.

Crie o modelo matemático usando a tabela abaixo:

Tempo (minutos) Temperatura (°C)

0 20.0

10 21.5

20 23.0

30 25.0

40 27.0
Fontes de dados abertos

Dados climáticos - O National Centers for Environmental Information (NCEI) fornece dados climáticos para
várias cidades dos EUA. Os dados incluem informações sobre temperatura, precipitação e outras variáveis
climáticas que podem ser utilizadas para criar modelos de interpolação polinomial.

Dados de preços de ações - O Yahoo Finance fornece dados históricos de preços de ações para várias
empresas. Esses dados podem ser utilizados para criar modelos de interpolação polinomial que ajudem a
prever o preço futuro das ações.

Dados de população - O World Bank fornece dados sobre a população de vários países. Esses dados podem
ser utilizados para criar modelos de interpolação polinomial que ajudem a prever a população futura dos países.

Dados de tráfego - O Bureau of Transportation Statistics fornece dados sobre o tráfego em várias estradas dos
EUA. Esses dados podem ser utilizados para criar modelos de interpolação polinomial que ajudem a prever o
fluxo de tráfego em determinadas áreas.

Dados de consumo de energia - A US Energy Information Administration fornece dados sobre o consumo de
energia em vários setores da economia. Esses dados podem ser utilizados para criar modelos de interpolação
polinomial que ajudem a prever o consumo futuro de energia.
Exercicio
Explore o repositório de dados abertos e use o excel
para interpolar os dados. Após isso, crie um programa
em python utilizando o polinômio interpolador para fazer
previsões.
Dúvidas?

ⓘ Start presenting to display the audience questions on this slide.

Você também pode gostar