- •Тема 6.3. Интерполяция функций
- •6.3.1. Постановка задачи
- •6.3.2. Интерполяционная формула Лагранжа
- •6.3.3. Интерполяционные формулы Ньютона
- •6.3.3.1. Конечные разности
- •6.3.3.2. Первая интерполяционная формула Ньютона
- •6.3.3.3. Вторая интерполяционная формула Ньютона
- •6.3.4. Сплайн – интерполяция
- •6.3.5. Сравнение интерполяционных многочленов по применению
- •6.3.6. Технология интерполяции функций в среде математических пакетов
- •6.3.6.1. Технология интерполяции функций в среде системы MathCad
- •6.3.6.2. Технология интерполяции функций в среде MatLab
- •6.3.7. Тестовые задания по теме «Интерполяция функций»
- •Тема 6.3. Интерполяция функций Страница 70
6.3.2. Интерполяционная формула Лагранжа
Пусть функция f(x)задана в(n + 1) узлах, произвольно расположенных на отрезке[a;b]:y0 = f(x0), y1 = f(x1), … yn = f(xn).
Требуется найти интерполирующий алгебраический многочленLn(x), степени не вышеn, удовлетворяющий условию (6.3.1-2), такой, что:
L0 = y0, L1 = y1, …, Ln = yn.(6.3.2-1)
Будем искать Ln(x)вида:
Ln = Q0(x)y0 + Q1(x)y1 + … + Q n(x) yn, (6.3.2-2)
где Qi(x)– коэффициенты, зависящие только от
узлов
,
i=0,1,
…,n
и текущего значениях.
Для того чтобы выполнялись условия интерполяции (6.3.2-1), требуется, чтобы коэффициенты Qi(x)удовлетворяли условию:
![]()
Действительно, чтобы L(х0)=y0,необходимо, чтобы в (6.3.2-2)
Q0(x0) = 1, Q1(x0) = 0, …, Qn(x0)= 0.
В то же время в других узлах интерполяции первое слагаемое формулы 6.3.2-2, связанное с yi, должно быть равно нулю, то есть:Q0(xi) = 0, i = 1, 2, … , n.
Этим требованиям отвечает коэффициент вида:
(6.3.2-3)
Поскольку в числителе Q0(x)записано произведение разностей со всеми узлами кромех0, тоQ0(x)обращается в ноль прих = хi ; i = 1, 2, … , n. В то же время прих = х0 числитель и знаменатель дроби взаимно сокращаются иQ0(x0)=1.
Для того чтобы Ln(x1) = y1, коэффициенты в (6.3.2-2) должны принять значения:
Q1(x1) = 1; Q0(x1) = 0… Qn(x1) = 0.
Чтобы в других узлах коэффициент Q1(x),связанный сyi,принял значение ноль, нужно, чтобыQ1(xi) = 0, i = 0, 2, 3, …, n.Тогда произведение разностей в числителе обращается в ноль во всех узлах, кромех1, а прих = х1 коэффициент равен1.
Обобщая сказанное выше, получим выражение для Qi(x):
(6.3.2-4)
Для интерполяционного многочлена Лагранжа это выражение будет следующее:
.
(6.3.2-5)
Несмотря на
громоздкость (6.3.2-5), одним из преимуществ
формулы Лагранжа является возможность
ее записи непосредственно по заданной
таблице значений функции. Для этого
следует учесть следующее правило:
формула содержит столько слагаемых,
сколько узлов в таблице; каждое слагаемое
– это произведение дробного коэффициента
на соответствующее значение yi;числитель коэффициента приyiсодержит произведение разностейхсо всеми узлами кроме
а знаменатель полностью повторяет
числитель прих =
.
Используя приведенные правила, получим формулы Лагранжа для двух узлов (n=1)-линейная интерполяция:
![]()
для трех узлов (n=2)-квадратичная интерполяция:
(6.3.2-6)
Оценку погрешности формулы Лагранжа определяют исходя из приближенного равенства
![]()
где m – число узлов, используемое в формуле.
Для того, чтобы
уменьшить погрешность интерполяции,
используется прием перенумерации
узловисходной таблицы, последовательно
выбирая в качествех0,
,
х2и т.д.
узлы, наиболее близко расположенные к
искомой точкех,
по возможности симметрично относительно
точких0.Такой прием позволяет уменьшить степень
интерполяционного полинома для достижения
требуемой точности (не использовать
все заданные узлы).
Схемы алгоритма интерполяции с помощью формул Лагранжа приведены на рис. 6.3.2-1 и 6.3.2-2.
Рис. 6.3.2-1. Схема алгоритма интерполяции по формуле Лагранжа
Рис. 6.3.2-2. Схема алгоритма процедуры-функции LX( )вычисления многочлена
Лагранжа к-ой степени в точкеxl
Пример 6.3.2-1.Пусть функция y = f(x) задана таблично:
-
xi
1
1.2
1.4
1.6
1.8
y i
0
-0.16
-0.24
-0.24
-0.16
Требуется с использованием формулы Лагранжа вычислить значение f(x) в точке x = 1.45.
Перенумеруем узлы:
x0 = 1.4 y0 =-0.24
x1 = 1.6 y1 = -0.24
x2 = 1.2 y2 = -0.16
х3 = 1.8 y3 = -0.16
x4 = 1.0 y4 = 0.0 .
Для приближенного вычисления значения функции воспользуемся формулами линейной и квадратичной интерполяции:
При n + 1 = 2используем узлыx0иx1
.
При n +1 = 3используем узлыx0 , x1 и x2
![]()
Для оценки погрешности используем соотношение
![]()
Если полученная величина соответствует заданной погрешности (например, e=0.1), то вычисления прекращают. Еслиe<Rn,то количество узлов увеличивают. Вычисления повторяют до тех пор, пока не выполнится условиеRn ≤ e.
Если, в соответствии с условиями поставленной задачи, требуется найти значения функции не в одной, а в нескольких точках, то рекомендуется провести преобразования формулы и получить многочлен в явном виде (Пример 6.3.1-1).
Если в формуле были использованы все точки, заданные таблицей, то оценить погрешность не представляется возможным.


