Як виконати лінійну інтерполяцію в python (з прикладом)


Лінійна інтерполяція — це процес оцінювання невідомого значення функції між двома відомими значеннями.

Враховуючи два відомих значення (x 1 , y 1 ) і (x 2 , y 2 ), ми можемо оцінити значення y для точки x за такою формулою:

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

Ми можемо використовувати наступний базовий синтаксис для виконання лінійної інтерполяції в Python:

 import scipy. interpolate

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

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

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: лінійна інтерполяція в Python

Припустимо, що ми маємо наступні два списки значень у Python:

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

Ми можемо створити швидкий графік залежності x від y:

 import matplotlib. pyplot as plt

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

Тепер припустімо, що ми хочемо знайти значення y, пов’язане з новим значенням x 13 .

Для цього ми можемо використати такий код:

 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

Розрахункове значення y виявляється рівним 33,5 .

Якщо ми додамо точку (13, 33.5) до нашого графіка, здається, що вона досить добре відповідає функції:

 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 ')

Ми можемо використовувати цю точну формулу для виконання лінійної інтерполяції для будь-якого нового значення x.

Додаткові ресурси

У наступних посібниках пояснюється, як виправити інші типові помилки в Python:

Як виправити KeyError у Pandas
Як виправити: ValueError: неможливо перетворити float NaN на int
Як виправити: ValueError: операнди не можна транслювати з фігурами

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *