Como realizar interpolação linear em python (com exemplo)


A interpolação linear é o processo de estimar um valor desconhecido de uma função entre dois valores conhecidos.

Dados dois valores conhecidos (x 1 , y 1 ) e (x 2 , y 2 ), podemos estimar o valor y para um ponto x usando a seguinte fórmula:

y = y 1 + (xx 1 )(y 2 -y 1 )/(x 2 -x 1 )

Podemos usar a seguinte sintaxe básica para realizar interpolação linear em Python:

 import scipy. interpolate

y_interp = scipy. interpolate . interp1d (x,y)

#find y-value associated with x-value of 13
print (y_interp( 13 ))

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: interpolação linear em Python

Suponha que temos as duas listas de valores a seguir em Python:

 x = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
y = [4, 7, 11, 16, 22, 29, 38, 49, 63, 80]

Podemos criar um gráfico rápido de x versus y:

 import matplotlib. pyplot as plt

#create plot of x vs. y
plt. plot (x, y, ' -ob ')

Agora suponha que queremos encontrar o valor de y associado a um novo valor de x de 13 .

Podemos usar o seguinte código para fazer isso:

 import scipy. interpolate
y_interp = scipy. interpolate . interp1d (x,y)

#find y-value associated with x-value of 13
print (y_interp( 13 ))

33.5

O valor estimado de y acaba sendo 33,5 .

Se adicionarmos o ponto (13, 33,5) ao nosso gráfico, ele parece corresponder muito bem à função:

 import matplotlib. pyplot as plt

#create plot of x vs. y
plt. plot (x, y, ' -ob ')

#add estimated y-value to plot
plt. plot (13, 33.5, ' ro ')

Podemos usar esta fórmula exata para realizar interpolação linear para qualquer novo valor de x.

Recursos adicionais

Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:

Como corrigir KeyError em Pandas
Como corrigir: ValueError: não é possível converter float NaN em int
Como corrigir: ValueError: os operandos não puderam ser transmitidos com formas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *