BL2.ru

Билинейная интерполяция (Двойная линейная интерполяция)

Двойная (билинейная) интерполяция — когда значение зависит от двух параметров, как в таблице «строка × столбец». Введите четыре угловых значения таблицы и точку (x; y): калькулятор найдёт значение, уравнение поверхности и построит карту.

Рассчитать
Билинейная интерполяция, как и обычная линейная интерполяция и экстраполяция позволяет найти значения неизвестной функции, но на результат данной функции влияет не одна переменная а две. Также для рассчета интерполяции можно воспользоваться сервисами полином Ньютона и полином Лагранжа

Что это такое

Билинейная (двойная линейная) интерполяция находит значение функции двух переменных f(x, y), когда оно известно только в четырёх точках — углах прямоугольника. Это прямое обобщение обычной линейной интерполяции: там значение ищут между двумя точками на прямой, здесь — внутри прямоугольника на плоскости.

Типичная ситуация — таблица с двумя входами: по строкам одна величина (например, температура), по столбцам другая (давление), а нужное значение попадает между строками и столбцами.

Как считается

Известны значения в углах: f(x0, y0), f(x0, y2), f(x2, y0) и f(x2, y2). Нужно найти f(x1, y1) для точки внутри. Расчёт идёт в три обычные линейные интерполяции:

  • по оси x на нижней стороне: f(x1, y0) — между f(x0, y0) и f(x2, y0);
  • по оси x на верхней стороне: f(x1, y2) — между f(x0, y2) и f(x2, y2);
  • по оси y между двумя найденными значениями — это и есть f(x1, y1).

Калькулятор заодно находит значения на левой и правой сторонах — f(x0, y1) и f(x2, y1): это пригодится, если нужен весь срез таблицы. Общая формула:

f(x1, y1) = f00·(1−t)(1−u) + f20·t(1−u) + f02·(1−t)u + f22·t·u,
где t = (x1 − x0) / (x2 − x0), u = (y1 − y0) / (y2 − y0) — доли пути по каждой оси (от 0 до 1 внутри прямоугольника).

Результат не зависит от того, с какой оси начинать: если сначала идти по y, а потом по x, получится то же число.

Пример

Температура воздуха известна на высоте 0 и 2 км над широтами 40° и 60°. Нужна температура на высоте 0,5 км над широтой 55°:

широта 40° (y0)широта 60° (y2)
высота 0 км (x0)18 °C8 °C
высота 2 км (x2)6 °C−4 °C
  • Доли пути: t = (0,5 − 0) / (2 − 0) = 0,25, u = (55 − 40) / (60 − 40) = 0,75.
  • На широте 40°: 18 + 0,25 · (6 − 18) = 15 °C.
  • На широте 60°: 8 + 0,25 · (−4 − 8) = 5 °C.
  • Между ними по широте: 15 + 0,75 · (5 − 15) = 7,5 °C.

Именно эти числа показывает демо выше.

Что важно знать

  • Нужны четыре угла прямоугольника, стороны которого параллельны осям: x0 ≠ x2 и y0 ≠ y2. Для произвольно разбросанных точек нужны другие методы (триангуляция, обратные расстояния).
  • Это не плоскость. Вдоль каждой оси функция меняется линейно, но в целом поверхность изогнута (гиперболический параболоид). Поэтому по четырём углам она проходит точно.
  • Точность хорошая, если функция внутри ячейки меняется плавно. Если таблица крупная, а зависимость сильно нелинейная, лучше брать ближайшую ячейку или более сложную бикубическую интерполяцию.
  • Экстраполяция. Если точка вне прямоугольника (t или u вне диапазона 0…1), калькулятор всё равно посчитает, но ошибка быстро растёт с удалением.

Где применяется

  • Справочные таблицы с двумя входами — СНиП и ГОСТ, теплотехника, гидравлика, свойства воды и пара: например, плотность или вязкость по температуре и давлению, коэффициент теплопередачи по скорости потока и температуре.
  • Погода, карты, ГИС — температура, давление, высота рельефа известны в узлах регулярной сетки (метеомодели, цифровые модели рельефа), а нужна точка между узлами.
  • Изображения и видео — при увеличении или повороте картинки цвет нового пикселя считается по четырём соседним; так работает режим «bilinear» в Photoshop, браузерах и видеокартах.
  • 3D-графика и игры — фильтрация текстур, высота ландшафта под персонажем по карте высот.
  • Инженерные расчёты — характеристики насосов, вентиляторов и двигателей (КПД, мощность по оборотам и нагрузке), аэродинамические таблицы, калибровочные таблицы датчиков с двумя параметрами.
  • Финансы — ставка или коэффициент по сетке «срок × сумма», поверхности волатильности опционов (страйк × срок).
  • Учёба — проверить решение задачи и увидеть промежуточные значения на всех сторонах прямоугольника.

Как пользоваться

  • Заполните первую и третью строку: x0, y0, f(x0, y0) и x2, y2, f(x2, y2). Во второй строке — точку x1, y1, в которой нужно значение.
  • Серые поля x и y ниже заполняются сами — осталось ввести f(x0, y2) и f(x2, y0).
  • Нажмите «Рассчитать». С галочкой в кнопке расчёт идёт автоматически при каждом изменении.
  • Можно вводить дроби (1/2), числа с запятой (0,5) и выражения вроде sqrt(2).

Частые вопросы

Когда нужна двойная интерполяция?
Когда в таблице норматива значение зависит сразу от двух величин — например, коэффициент от высоты и от типа местности, или от двух размеров. Нужное значение лежит и между строками, и между столбцами.
Как вводить данные из таблицы?
x₀ и x₂ — соседние значения по строкам, y₀ и y₂ — соседние значения по столбцам. Четыре f — значения таблицы на их пересечении. В x₁ и y₁ введите свою точку.
Как это посчитать вручную?
Сделайте три линейные интерполяции: две по x (для y₀ и для y₂), затем одну по y между полученными значениями. Калькулятор показывает все промежуточные результаты.
А если параметр один?
Тогда нужна обычная линейная интерполяция или, для длинной таблицы, интерполяция по таблице.