Интерполяционный многочлен Лагранжа

Материал из свободной русской энциклопедии «Традиция». Вы можете дополнить или исправить его.
(перенаправлено с «Полином»)
Перейти к навигации Перейти к поиску
Этот пример показывает интерполяционный многочлен Лагранжа для четырёх точек (-9,5), (-4,2), (-1,-2) и (7,9), а также полиномы yj lj(x), каждый из которых проходит через одну из выделенных точек, и принимает нулевое значение в остальных xi

Интерполяцио́нный многочле́н Лагра́нжа (интерполяционный полином Лагранжа) — многочлен минимальной степени, принимающий данные значения в данном наборе точек. Для n+1n+1 пар чисел (x0,y0),(x1,y1),(xn,yn)(x_0, y_0), (x_1, y_1)\dots ,(x_n, y_n), где все xix_i различны, существует единственный многочлен L(x)L(x) степени не более nn, для которого L(xi)=yiL(x_i) = y_i.[1]

В простейшем случае (n=1n=1) — это линейный многочлен, график которого — прямая, проходящая через две заданные точки.

Определение[править | править код]

Лагранж предложил способ вычисления таких многочленов: L(x)=j=0nyjlj(x)L(x) = \sum_{j=0}^n y_j l_j(x) где базисные полиномы определяются по формуле: lj(x)=i=0,jinxxixjxi=xx0xjx0xxj1xjxj1xxj+1xjxj+1xxnxjxnl_j(x)=\prod_{i=0, j\neq i}^{n} \frac{x-x_i}{x_j-x_i} = \frac{x-x_0}{x_j-x_0} \cdots \frac{x-x_{j-1}}{x_j-x_{j-1}} \frac{x-x_{j+1}}{x_j-x_{j+1}} \cdots \frac{x-x_{n}}{x_j-x_{n}}\,\! lj(x)l_j(x) обладают следущими свойствами:

  • являются многочленами степени nn
  • lj(xj)=1l_j(x_j)=1
  • lj(xi)=0l_j(x_i)=0 при iji\ne j

Отсюда следует, что L(x)L(x), как линейная комбинация lj(x)l_j(x), может иметь степень не больше nn, и L(xj)=yjL(x_j)=y_j, Q.E.D.

Применения[править | править код]

Полиномы Лагранжа используются для интерполяции, а также для численного интегрирования.

Пусть для функции f(x)f(x) известны значения yj=f(xj)y_j=f(x_j) в некоторых точках. Тогда мы можем интерполировать эту функцию как f(x)j=0nf(xj)lj(x)f(x) \approx \sum_{j=0}^n f(x_j) l_j(x)

В частности, abf(x)dxj=0nf(xj)ablj(x)dx\int\limits_a^b f(x)dx \approx \sum_{j=0}^n f(x_j) \int\limits_a^b l_j(x) dx Значения интегралов от ljl_j не зависят от f(x)f(x), и их можно вычислить заранее, зная последовательность xix_i.

Для случая равномерного распределения по отрезку узлов интерполяции[править | править код]

В указанном случае можно выразить xix_i через расстояние между узлами интерполяции h и начальную точку x0x_0: xjx0+jh, x_j \equiv {x_0 + jh}, и, следовательно, xixj(ij)h. {x_i - x_j} \equiv (i - j)h . Подставив эти выражения в формулу базисного полинома и вынеся h за знаки перемножения в числителе и знаменателе, получим li(x)=j=0,jin(xxj)(xixj)=j=0,jin(xx0jh)hn1j=0,jin(ij)l_i(x) = { \prod_{j=0,\,j \ne i}^n {(x - x_j) \over (x_i - x_j)}} = {\prod\limits_{j=0,\,j \ne i}^n (x - x_0 - jh) \over h^{n-1} \prod\limits_{j=0,\,j \ne i}^n (i - j)} Теперь можно ввести замену переменной y=xx0hy = {{x - x_0} \over h}\,\! и получить полином от yy, который строится с использованием только целочисленной арифметики. Недостатком данного подхода является факториальная сложность числителя и знаменателя, что требует использования алгоритмов с многобайтным представлением чисел.

Ссылки[править | править код]

Внешние ссылки[править | править код]