Открыть сервис

Линейная интерполяция

Линейная интерполяция — это метод приближённого нахождения промежуточных значений функции по известным значениям в двух крайних точках, основанный на предположении, что на заданном отрезке функция изменяется линейно. Является простейшим и наиболее распространённым видом интерполяции, широко применяется в численных методах, компьютерной графике, обработке сигналов, инженерных расчётах и статистическом анализе.

Математическое определение

Пусть известны значения функции \( f(x) \) в двух точках \( (x_0, y_0) \) и \( (x_1, y_1) \), где \( y_0 = f(x_0) \), \( y_1 = f(x_1) \). Линейная интерполяция предполагает, что на отрезке \( [x_0, x_1] \) функция \( f(x) \) аппроксимируется прямой линией, проходящей через эти точки. Тогда значение функции в произвольной точке \( x \in [x_0, x_1] \) вычисляется по формуле:

\[ f(x) \approx y_0 + \frac{y_1 - y_0}{x_1 - x_0} (x - x_0) \]

Эта формула представляет собой уравнение прямой в форме с угловым коэффициентом. Выражение \( \frac{y_1 - y_0}{x_1 - x_0} \) — это тангенс угла наклона прямой (скорость изменения функции). В более симметричной форме, часто используемой в компьютерных алгоритмах, формула записывается через параметр \( t \in [0, 1] \):

\[ f(x) = (1 - t) y_0 + t y_1 \]

где \( t = \frac{x - x_0}{x_1 - x_0} \). Такая запись называется линейной интерполяцией (LERP) и является базовой операцией в трёхмерной графике и анимации.

Геометрическая интерпретация

Геометрически линейная интерполяция означает проведение прямой линии между двумя известными точками на графике. Искомое значение функции в точке \( x \) лежит на этой прямой. Погрешность метода тем меньше, чем ближе истинная функция на отрезке \( [x_0, x_1] \) к линейной. Если функция является строго линейной, то интерполяция даёт точное значение.

История

Понятие интерполяции восходит к древним цивилизациям. Вавилонские астрономы (II тысячелетие до н. э.) использовали линейную интерполяцию для предсказания положений планет, заполняя пробелы в таблицах наблюдений. В древнегреческой математике метод упоминается в работах Клавдия Птолемея (II век н. э.) в «Альмагесте» для вычисления синусов и дуг.

В эпоху Возрождения линейная интерполяция активно применялась в навигации и картографии. С развитием численного анализа в XVII—XVIII веках (работы Исаака Ньютона, Готфрида Лейбница, Леонарда Эйлера) были разработаны более сложные методы (полиномиальная интерполяция, сплайны), однако линейная интерполяция осталась базовым инструментом из-за своей простоты и вычислительной эффективности.

Погрешность и ограничения

Линейная интерполяция даёт точный результат только для линейных функций. Для нелинейных функций возникает погрешность, величина которой зависит от кривизны функции на отрезке и длины интервала.

Оценка погрешности

Если функция \( f(x) \) дважды непрерывно дифференцируема на отрезке \( [x_0, x_1] \), то погрешность \( R(x) \) линейной интерполяции в точке \( x \) может быть оценена по формуле:

\[ |R(x)| \leq \frac{M_2}{2} \max_{x \in [x_0, x_1]} |(x - x_0)(x - x_1)| \]

где \( M_2 = \max_{x \in [x_0, x_1]} |f''(x)| \) — максимальное значение второй производной (кривизны) на отрезке. Максимальная погрешность достигается в середине отрезка и равна \( \frac{M_2}{8} (x_1 - x_0)^2 \).

Из этого следует, что:

Ограничения

Применение

Численные методы и вычислительная математика

Линейная интерполяция является основой для построения таблиц функций (например, тригонометрических, логарифмических, статистических). В численном интегрировании используется метод трапеций, который основан на кусочно-линейной аппроксимации подынтегральной функции. В численном решении дифференциальных уравнений (метод Эйлера) используется линейная аппроксимация производной.

Компьютерная графика и анимация

В трёхмерной графике операция LERP (Linear Interpolation) используется для:

Обработка сигналов и аудио

В цифровой обработке сигналов линейная интерполяция применяется для:

Инженерные расчёты

Статистика и анализ данных

Смежные методы

Полиномиальная интерполяция

Обобщение на случай \( n+1 \) точек: строится многочлен степени \( n \), проходящий через все точки. Даёт более точную аппроксимацию для гладких функций, но подвержен осцилляциям (феномен Рунге) при большом числе узлов.

Сплайн-интерполяция

Кусочно-полиномиальная интерполяция, где на каждом отрезке используется многочлен низкой степени (обычно кубический), а в узлах обеспечивается непрерывность первой и второй производной. Обеспечивает гладкость и высокую точность, но сложнее в реализации.

Билинейная интерполяция

Двумерное обобщение линейной интерполяции. Используется для интерполяции значений функции двух переменных (например, яркости пикселя в изображении) по четырём ближайшим точкам. Применяется в обработке изображений (масштабирование, поворот).

Трилинейная интерполяция

Трёхмерное обобщение, используемое в объёмной визуализации (например, в медицинской томографии) и текстурировании трёхмерных объектов.

Реализация в программировании

Линейная интерполяция реализуется крайне просто. Пример на языке Python:

```python def lerp(y0, y1, t): """Линейная интерполяция между y0 и y1 с параметром t (0 <= t <= 1)""" return (1 - t) y0 + t y1

def linear_interpolation(x, x0, y0, x1, y1): """Линейная интерполяция для произвольного x между x0 и x1""" t = (x - x0) / (x1 - x0) return lerp(y0, y1, t) ```

В графических библиотеках (OpenGL, DirectX, Unity, Unreal Engine) функция LERP встроена в аппаратное обеспечение и выполняется за один такт.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →