EssayAI
Блог
Блог
Математика и алгоритмы

Интерполяционная формула Лагранжа: узлы и базисные полиномы

2 мая 2026Время чтения: 7 минут
#интерполяционная формула Лагранжа#базисные полиномы#узлы интерполяции#погрешность интерполяции#многочлен Ньютона
Интерполяционная формула Лагранжа: узлы и базисные полиномы

Интерполяционная формула Лагранжа - это способ построить единственный многочлен степени не выше nn, который проходит ровно через n+1n+1 заданную точку (x0,y0),,(xn,yn)(x_0, y_0), \dots, (x_n, y_n). В отличие от подгонки коэффициентов через систему уравнений, интерполяционная формула Лагранжа даёт готовое явное выражение: она сразу собирает искомый полином из элементарных «кирпичиков» - базисных полиномов, каждый из которых отвечает за один узел. Это делает её удобной для теории и для ручного счёта по короткой таблице, хотя на практике у неё есть и слабые места, о которых речь ниже.

Постановка задачи интерполяции

Дана таблица значений неизвестной функции: набор узлов интерполяции x0,x1,,xnx_0, x_1, \dots, x_n (все различны) и соответствующие значения yi=f(xi)y_i = f(x_i). Требуется найти многочлен Ln(x)L_n(x) степени не выше nn, такой что Ln(xi)=yiL_n(x_i) = y_i во всех узлах. Такой многочлен существует и единственен - это следствие того, что определитель Вандермонда для различных узлов отличен от нуля. Единственность важна: какой бы метод вы ни применили (Лагранжа, Ньютона, решение системы), при одних и тех же узлах получится один и тот же полином, отличаться будет лишь форма записи и объём вычислений.

Интерполяционная формула Лагранжа отвечает именно на этот вопрос, не требуя решать линейную систему. Ниже - мини-форма: впишите узлы и значения из своей таблицы, а в чате соберём базисные полиномы i(x)\ell_i(x), итоговый многочлен и при желании оценку погрешности.

Базисные полиномы Лагранжа

Ключевая идея - для каждого узла xix_i построить свой базисный полином i(x)\ell_i(x), который равен единице в «своём» узле и нулю во всех остальных:

i(xj)={1,j=i,0,ji.\ell_i(x_j) = \begin{cases} 1, & j = i, \\ 0, & j \ne i. \end{cases}

Такой полином легко выписать явно как произведение: в числителе перемножаются все множители (xxj)(x - x_j) при jij \ne i, а знаменатель нормирует значение до единицы в точке xix_i:

i(x)=j=0jinxxjxixj.\ell_i(x) = \prod_{\substack{j=0 \\ j \ne i}}^{n} \frac{x - x_j}{x_i - x_j}.

Подстановка x=xix = x_i обнуляет всё, кроме нужного множителя, и даёт ровно 11; подстановка любого другого узла x=xkx = x_k (kik \ne i) включает в числитель множитель (xkxk)=0(x_k - x_k) = 0. Каждый i(x)\ell_i(x) - многочлен степени ровно nn.

Знаменатель $\prod_{j \ne i}(x_i - x_j)$ - это просто число, оно не зависит от $x$. Считайте его один раз для каждого узла, иначе арифметические ошибки почти неизбежны.

Сборка интерполяционного многочлена

Имея базисные полиномы, итоговый многочлен собирается как линейная комбинация значений yiy_i с весами i(x)\ell_i(x) - это и есть интерполяционная формула Лагранжа:

Ln(x)=i=0nyii(x)=i=0nyij=0jinxxjxixj.L_n(x) = \sum_{i=0}^{n} y_i\, \ell_i(x) = \sum_{i=0}^{n} y_i \prod_{\substack{j=0 \\ j \ne i}}^{n} \frac{x - x_j}{x_i - x_j}.

Проверка условия интерполяции тривиальна: подставив x=xkx = x_k, мы получаем Ln(xk)=iyii(xk)=ykL_n(x_k) = \sum_i y_i \ell_i(x_k) = y_k, потому что все i(xk)\ell_i(x_k) зануляются, кроме k(xk)=1\ell_k(x_k) = 1. Так интерполяционная формула Лагранжа гарантированно проходит через все табличные точки. Для двух узлов она вырождается в обычную линейную интерполяцию (прямую через две точки), для трёх - в параболу.

Пример: парабола по трём точкам

Пусть даны три узла: (0,1)(0, 1), (1,3)(1, 3), (2,7)(2, 7). Тогда n=2n = 2, и базисные полиномы такие:

0(x)=(x1)(x2)(01)(02)=(x1)(x2)2,\ell_0(x) = \frac{(x-1)(x-2)}{(0-1)(0-2)} = \frac{(x-1)(x-2)}{2}, 1(x)=(x0)(x2)(10)(12)=x(x2),\ell_1(x) = \frac{(x-0)(x-2)}{(1-0)(1-2)} = -x(x-2), 2(x)=(x0)(x1)(20)(21)=x(x1)2.\ell_2(x) = \frac{(x-0)(x-1)}{(2-0)(2-1)} = \frac{x(x-1)}{2}.

Подставляя в формулу с весами y0=1y_0 = 1, y1=3y_1 = 3, y2=7y_2 = 7, после раскрытия скобок получаем L2(x)=x2+x+1L_2(x) = x^2 + x + 1. Легко проверить: L2(0)=1L_2(0) = 1, L2(1)=3L_2(1) = 3, L2(2)=7L_2(2) = 7 - все узлы воспроизведены точно.

Погрешность интерполяции

Если значения yiy_i взяты от гладкой функции ff, отклонение многочлена от самой функции в произвольной точке описывает остаточный член. При fCn+1f \in C^{n+1} на отрезке, содержащем узлы и точку xx, найдётся точка ξ\xi внутри этого отрезка, для которой

f(x)Ln(x)=f(n+1)(ξ)(n+1)!ωn+1(x),ωn+1(x)=i=0n(xxi).f(x) - L_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!}\, \omega_{n+1}(x), \qquad \omega_{n+1}(x) = \prod_{i=0}^{n}(x - x_i).

Множитель ωn+1(x)\omega_{n+1}(x) показывает: погрешность мала вблизи узлов и растёт между ними, особенно у краёв отрезка. Поэтому наивное увеличение числа равноотстоящих узлов не всегда улучшает приближение - на функции f(x)=1/(1+25x2)f(x) = 1/(1+25x^2) возникает феномен Рунге: колебания на концах отрезка только усиливаются. Лекарство - выбирать узлы Чебышёва, которые сгущаются к краям и минимизируют максимум ωn+1(x)|\omega_{n+1}(x)|.

Сравнение с формулой Ньютона

Интерполяционная формула Лагранжа и интерполяционный многочлен Ньютона задают один и тот же полином, но Ньютон использует разделённые разности и схему, удобную для добавления новых узлов: чтобы учесть ещё одну точку, к формуле Ньютона дописывают одно слагаемое, тогда как формула Лагранжа требует пересчёта всех базисных полиномов с нуля. Зато запись Лагранжа нагляднее и удобнее в теоретических выкладках. Идею вычислений через узловые значения продолжают и другие табличные методы - например, метод Симпсона для интегрирования по сути интегрирует именно интерполяционный многочлен по трём узлам.

Отдельно стоит барицентрическая форма формулы Лагранжа - алгебраически эквивалентная, но численно устойчивая и быстрая: после однократного вычисления барицентрических весов значение в новой точке считается за O(n)O(n) операций. На практике для повторных вычислений используют именно её, а не прямую формулу с произведениями.

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

Интерполяционная формула Лагранжа лежит в основе многих численных методов: вывода квадратурных формул (Ньютона-Котеса), численного дифференцирования, восстановления функции по таблице, а также в криптографии - схема разделения секрета Шамира восстанавливает секрет именно лагранжевой интерполяцией по долям-точкам. Везде, где есть набор точек и нужен проходящий через них многочлен, эта формула даёт явный ответ.

Частые ошибки

  • Совпадающие узлы: если два xix_i равны, знаменатель ji(xixj)\prod_{j \ne i}(x_i - x_j) обнуляется и формула теряет смысл - узлы обязаны быть различными.
  • Путаница индексов в произведении: в i(x)\ell_i(x) из перемножения исключается множитель именно с j=ij = i (и в числителе, и в знаменателе), а не какой-то другой.
  • Ожидание, что больше узлов всегда лучше: на равномерной сетке высокая степень провоцирует феномен Рунге - растущие осцилляции у краёв.
  • Прямой пересчёт при добавлении точки: добавив узел, нельзя «дописать» слагаемое как у Ньютона - все базисные полиномы меняются, нужен полный пересчёт.
  • Численная неустойчивость наивной формы при большом nn: вычитания близких чисел в знаменателях накапливают ошибку - используйте барицентрическую форму.

FAQ

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

Сколько узлов нужно для многочлена степени n? Ровно n+1n+1 различный узел задаёт единственный многочлен степени не выше nn. Три точки дают параболу, две - прямую.

Почему интерполяция иногда ухудшается с ростом числа узлов? Из-за феномена Рунге: на равноотстоящих узлах множитель ωn+1(x)\omega_{n+1}(x) сильно растёт у краёв отрезка. Помогает переход к узлам Чебышёва.

Коротко

Интерполяционная формула Лагранжа строит единственный многочлен степени не выше nn через n+1n+1 заданную точку как сумму Ln(x)=yii(x)L_n(x) = \sum y_i\, \ell_i(x), где базисные полиномы i(x)=ji(xxj)/(xixj)\ell_i(x) = \prod_{j \ne i}(x - x_j)/(x_i - x_j) равны 11 в своём узле и 00 в остальных. Погрешность контролирует остаточный член с множителем ωn+1(x)\omega_{n+1}(x), а выбор узлов (Чебышёва вместо равномерных) спасает от феномена Рунге. Полином совпадает с ньютоновским, но для устойчивых повторных расчётов применяют барицентрическую форму.

Доверьте текст нейросети EssayAI

Открыть EssayAI

Бесплатно, на русском языке и без VPN

Читайте также