Интерполяционный полином Лагранжа
В различных областях науки и техники часто возникает задача приближенной замены некоторой зависимости f(x) другой функцией (x) таким образом, чтобы отклонение (в некотором смысле) функции (x) от f(x) на заданном отрезке [a , b] было наименьшим. Функция (x) называется аппроксимирующей, а сама процедура замены – аппроксимацией. Если приближение строится на дискретном множестве точек xi , то такая аппроксимация называется точечной. Одним из основных типов точечной аппроксимации является интерполирование.
Задача интерполирования формулируется так: для данной функции y=f(x) построить функцию, принимающую в заданных точках xi , называемых узлами интерполирования, те же значения yi , что и функция f(x), т.е. (x)=yi , (i=0,1,…,n) . При этом функция y=f(x) может быть задана в виде координат точек xi и yi , полученных различными способами, в том числе и экспериментальным путем.
Известно
много видов интерполяционных функций
(x)
. Наиболее удобной для практического
использования функцией является
алгебраическийgполином
Интерполяционные многочлены могут строиться отдельно для разных частей рассматриваемого отрезка [a , b] изменения xi . Такая интерполяция называется кусочной (локальной). Если учитываются все узлы отрезка [a , b] , то говорят о глобальной интерполяции.
Пусть на отрезке [a , b] в неравноотстоящих n+1 узлах x0, x1, . . . , xn известны значения функции y0=f(x0) , y1=f(x1) , . . . , yn =f(xn) . Требуется построить многочлен L(x) так, чтобы в узлах x0, x1, . . . , xn его значения совпадали со значениями заданной функции, т.е. L(x0)=y0 , L(x1)=y1 , . . . ,L(xn)=yn .
Будем искать многочлен степени не выше n
L(x)=a0+a1x+a2x2+. . . +anxn , (1)
где a0, a1, . . . , an - постоянные коэффициенты, которые требуется найти.
Подставим вместо x значения x0, x1, . . . , xn, а вместо L(x) их значения y0, y1, . . . , yn. Получим систему уравнений
a0+a1 x0+ a2 x02+ + an x0n = y0
a0+a1 x1+ a2 x12+ + an x1n = y1 (2)
. . . . . . . . . . . .
a0+a1 xn+ a2 xn2+ + an xnn = yn
Решение этой системы позволит определить все коэффициенты a0, a1, . . . , an многочлена (1). Так и поступают, когда требуется многократно использовать многочлен (1). Для разового использования гораздо быстрее и удобнее воспользоваться многочленом в форме Лагранжа, который предложил линейную комбинацию многочленов степени n :
L(x)=y0 l0(x)+ y1 l1(x)+ . . . + yn ln(x) (3)
Потребуем, чтобы каждый многочлен li(x) обращался в нуль во всех узлах интерполяции, за исключением одного i-го, где он должен равняться единице. Этим условиям отвечает многочлен вида
(4)
Действительно, при x=x0 l0(x0)=1 . При всех остальных значениях x=x1, x2, . . . , xn числитель выражения (4) обращается в нуль. По аналогии с (4) получим
(5)
Подставляя в (3) выражения (4) и (5), получим
или в более компактной записи
(6)
Эта формула называется интерполяционным многочленом Лагранжа. Она позволяет избавиться от необходимости вычисления коэффициентов a0, a1, . . . , an в (1) путем решения системы (2), а использовать только известные значения узлов интерполяции. Непременное условие – отсутствие совпадающих узлов.
При n =1 формула (6) преобразуется в формулу линейной интерполяции, при n =2 - квадратичной (параболической) интерполяции.
К недостаткам формулы Лагранжа следует отнести большую осцилляцию между узлами для некоторых функций при недостаточном количестве узлов и очень большие погрешности при попытках его использования в целях экстраполяции за пределами отрезка [a , b] заданных узлов. В наибольшей степени это свойственно функциям гиперболического типа (например, функция Рунге).
Рассмотрим пример: ( см. вставку *)