Математика / Начала анализа

Интерполяция Лагранжа: полином через заданные точки

Формула Лагранжа строит полином степени не выше n по n+1 различным узлам. Каждый базисный множитель выбирает значение своего узла и обращает вклады остальных узлов в ноль.

Опубликовано: Обновлено:

Формула

$$P_n(x)=\sum_{k=0}^{n}y_kL_k(x),\qquad L_k(x)=\prod_{\substack{0\leq j\leq n\\j\ne k}}\frac{x-x_j}{x_k-x_j}$$
Схема Лагранж в точке x = 1,5
Лагранж в точке x = 1,5Лагранж в точке x = 1,5L₀−0,125L₁0,75L₂0,375Сумма весов 1; ответ 2,875

Сумма весов 1; ответ 2,875

Обозначения

$x_j$
различные узлы аргумента, единица аргумента
$y_k$
значение в k-м узле, единица функции
$L_k(x)$
базисный полином Лагранжа, 1
$P_n(x)$
интерполяционный полином, единица функции
$n$
верхняя граница степени полинома, целое неотрицательное число

Условия применения

Все n+1 аргументов различны, а значения заданы для одной функции в согласованных единицах. Построенный полином существует и единственен в классе степени не выше n. Для оценки ошибки по производной нужны дополнительно гладкость исходной функции и охватывающий узлы интервал.

Ограничения

Увеличение степени само по себе не гарантирует улучшения приближения: расположение узлов и поведение функции существенны. Шум в данных также интерполируется точно и не сглаживается. Прямая форма не всегда удобна для многократного вычисления при большом числе узлов.

Подробное объяснение

В базисном полиноме Lₖ числитель содержит множители x−xⱼ для всех чужих узлов. Поэтому при подстановке любого из них произведение равно нулю. В собственном узле числитель совпадает со знаменателем, и Lₖ принимает единицу. Сумма yₖLₖ автоматически возвращает нужное значение в каждом узле.

Единственность объясняется числом корней: разность двух подходящих полиномов степени не выше n имела бы n+1 различных нулей. Такой ненулевой полином невозможен, поэтому любые корректные формы Ньютона или Лагранжа описывают один результат.

Внутри диапазона значения базисов могут быть отрицательными. В отличие от прямолинейной оценки между двумя точками полином не обязан лежать между соседними y. Сумма всех Lₖ равна единице, но этого недостаточно для выпуклой комбинации, если отдельные веса отрицательны.

Для достаточно гладкой функции остаток содержит производную порядка n+1 и произведение расстояний от x до всех узлов. Формула ошибки требует информации о функции сверх самих табличных значений. Точное совпадение с измерениями не означает точности между ними.

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

Как пользоваться формулой

  1. Перечислите различные узлы и значения, задайте верхнюю степень n и убедитесь, что речь идёт об интерполяции, а не регрессии.
  2. Для каждого k выпишите произведение по всем j, кроме k; сохраните знаки разностей как в числителе, так и в знаменателе.
  3. Вычислите базисы в точке запроса и сумму yₖLₖ без преждевременного округления; проверьте, что сумма базисов равна единице.
  4. Подставьте каждый исходный узел и сравните с данными; для неизвестной функции оцените остаток, если доступна нужная производная.

Историческая справка

Имя Лагранжа связано с алгебраическим анализом XVIII века, но интерполяционные методы составляют более широкую традицию приближённых вычислений. Представление через базисы особенно прозрачно показывает условия в узлах: каждый полином отвечает только за одно значение. В современном справочнике NIST DLMF эта структура рассматривается вместе с единственностью интерполяционного полинома и остаточным членом. Позднейшая вычислительная практика разделила две задачи: удобно записать полином и устойчиво многократно вычислять его значения. Поэтому барицентрическое представление не заменило математическую идею Лагранжа, а сделало тот же объект удобнее для численной работы. Здесь традиционное название не используется как доказательство единоличного первенства всех формул восстановления таблиц.

Историческая линия формулы

Используется общепринятое название формулы Лагранжа. Персональная связь относится к данной базисной записи в традиции алгебраического анализа; статья не утверждает, что интерполяция вообще или все её вычислительные формы были изобретены одним исследователем.

Пример

Точки (0;1), (1;3), (2;2) задают квадратный полином. Найдём значение при x = 1,5. Получаем L₀ = (1,5−1)(1,5−2)/((0−1)(0−2)) = −0,125; L₁ = 1,5·(−0,5)/(1·(−1)) = 0,75; L₂ = 1,5·0,5/(2·1) = 0,375. Сумма базисов равна 1. Ответ P = −0,125·1+0,75·3+0,375·2 = 2,875. Независимая проверка: раскрытый полином P(x) = 1+3,5x−1,5x² даёт 1+5,25−3,375 = 2,875 и возвращает все три узловых значения. Все числа безразмерны. Отрицательный L₀ здесь правилен; замена его знака разрушила бы и сумму базисов, и ответ. Данные описывают полином, но не устанавливают ошибку относительно иной неизвестной функции.

Частая ошибка

Не теряйте отрицательный знак произведения расстояний. Не включайте j = k в знаменатель. Не объявляйте все базисные веса положительными внутри общего интервала. Не смешивайте точное прохождение через данные со сглаживанием шума. Не считайте увеличение степени безусловным улучшением качества.

Практика

Задачи с решением

Другая тройка узлов

Условие. Для (0;2), (2;4), (4;10) найдите P(1).

Решение. Базисы при x = 1 равны 3/8, 3/4 и −1/8. Сумма значений: 2·3/8+4·3/4−10/8 = 0,75+3−1,25 = 2,5. Проверка полиномом 2+x²/2.

Ответ. P(1) = 2,5.

Квадратичная функция

Условие. Для (1;1), (2;4), (3;9) найдите P(2,5).

Решение. Базисы равны −0,125; 0,75; 0,375. Сумма −0,125+3+3,375 = 6,25. Это совпадает с x² в точке 2,5, поскольку квадратный полином определяется тремя узлами.

Ответ. P(2,5) = 6,25.

Дополнительные источники

  • https://dlmf.nist.gov/3.3
  • https://fncbook.com/polynomial/
  • https://mathshistory.st-andrews.ac.uk/Biographies/Lagrange/

Связанные формулы

Математика

Линейная интерполяция: значение между двумя узлами

$P(x)=y_0+\frac{y_1-y_0}{x_1-x_0}(x-x_0)=(1-t)y_0+ty_1,\quad t=\frac{x-x_0}{x_1-x_0}$

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

Математика

Интерполяция Ньютона: таблица разделённых разностей

$P_n(x)=f[x_0]+\sum_{k=1}^{n}f[x_0,\ldots,x_k]\prod_{j=0}^{k-1}(x-x_j),\quad f[x_i,\ldots,x_j]=\frac{f[x_{i+1},\ldots,x_j]-f[x_i,\ldots,x_{j-1}]}{x_j-x_i}$

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

Математика

Кубическая интерполяция Эрмита по значениям и наклонам

$H(x)=h_{00}(s)y_0+h_{10}(s)\ell m_0+h_{01}(s)y_1+h_{11}(s)\ell m_1,\quad s=\frac{x-x_0}{\ell},\quad \ell=x_1-x_0$

Кубический полином Эрмита согласует значения и первые производные на двух концах интервала. Четыре заданных условия определяют единственную кубическую или более простую кривую между узлами.

Математика

Барицентрическая интерполяция: веса и вычисление полинома

$P(x)=\frac{\sum_{k=0}^{n}\dfrac{w_ky_k}{x-x_k}}{\sum_{k=0}^{n}\dfrac{w_k}{x-x_k}},\qquad w_k=\frac{1}{\prod_{j\ne k}(x_k-x_j)},\quad x\ne x_k$

Барицентрическая форма вычисляет полином Лагранжа через заранее рассчитанные веса узлов. Она удобна для множества запросов по одной таблице; при точном совпадении аргумента с узлом нужно сразу вернуть узловое значение.