- •Глава 2 Аппроксимация
- •Интерполяция Постановка задачи
- •Единственность интерполяционного полинома
- •Полином Лагранжа
- •Оценка погрешности интерполяционного полинома
- •Полином Ньютона
- •Интерполяционный полином Ньютона
- •Задача интерполяции в точке Постановка задачи
- •Метод наименьших квадратов
- •Сплайн-интерполяция
Задача интерполяции в точке Постановка задачи
Дана таблица с n+1 узлом. Представим себе, что эти узлы есть значения некоторой функции f(x). Требуется получить приближенное значение функции в точке x=a, не совпадающей с узлами.
Очевидно, что результаты будут неточными, или приближенными. Хотелось бы еще выяснить, как далеки (или близки) эти результаты от неизвестного точного значения функции f(a). Для этого нужно оценить погрешность результатов.
Примеры: Есть таблица зависимости температуры в начале каждого часа за сутки. Какая была температура в 12-20. Или так: известны значения функции Cos(x) в точках 0, 30, 45, 60, 90 градусов. Какое значение Cos(x) при 50 градусах.
Геометрически постановку задачи интерполяции в точке можно представить так:
Рис.2.4
При решении этой задачи возникает несколько вопросов.
Сколько узлов использовать? Неужели все сразу? Может быть удастся получить требуемую точность на меньшем количестве узлов?
Если использовать не все узлы, то как и какие надо выбрать?
Цель такого выбора – уменьшить оценку погрешности решения задачи.
При использовании универсального, в смысле выбора узлов, полинома Лагранжа ответы на эти вопросы следуют из оценки его погрешности (2.11).
= | | ,
где = (x - ) (x - )… (x - ),
Выбор узлов влияет на значение выражения . Поэтому узлы надо выбирать так, чтобы это выражение принимало наименьшее значение.
Это будет достигнуто, если точка x=a находится внутри таблицы и будут выбраны ближайшими к точке x=a узлы .
Геометрически
решение задачи интерполяции в точке
можно представить следующим образом
Рис.2.5
Итак, для решения задачи интерполяции в точке надо правильно выбрать узлы, строить последовательность полиномов L1, L2, L3, … и оценивать погрешность. Запишем три первых полинома Лагранжа:
+
+
+
.
Полином Лагранжа – это хорошо, он универсален, то есть может использоваться для любой системы узлов, но в задаче интерполяции в точке, когда надо получать последовательность полиномов L1, L2, L3 и т.д. приходится выполнять много вычислений, причем для каждого полинома все эти вычисления надо делать заново.
Однако есть другое представление интерполяционного полинома, в котором при переходе к полиному следующей степени используется полином предыдущей степени и небольшая поправка, которая делает у получающегося полинома степень на единицу большую, чем была у предыдущего. И это полином Ньютона. Такое построение существенно сокращает объем вычислений при получении семейства полиномов различных степеней. Конечно за это надо будет чем-то «заплатить». Чтобы добиться такого сокращения объема вычислений, узлы интерполяции должны располагаться специальным образом: быть равноотстоящими, то есть расстояние между соседними узлами должно быть одинаковым. Ну а это повлечет за собой ограничения при выборе узлов в задаче интерполяции в точке.
В этом случае, согласно (2.18) и (2.21), справедливы следующие оценки погрешности:
=
|
|
<= |
Точка x = a, в которой надо получить приближенное значение функции, должна находиться внутри таблицы узлов. Это первое обязательное условие выбора узлов.
Если
начинать строить последовательность
полиномов с полинома Ньютона первой
степени, то узлы
должны находиться по разные стороны
этой точки a. Выбор двух первых узлов
однозначно определит шаг ( h =
) в равноотстоящей таблице узлов. И тогда
следующие узлы будут лежать или все
правее, или все левее точки a. Получается,
что точка a будет находиться в начале
таблицы. Если этого не сделать, то
построить последовательность полиномов
Ньютона не удастся. Но в этом случае
узлы не будут ближайшими к точке a, как
это рекомендуется для уменьшения
погрешности. При таком выборе узлов
погрешность полинома будет больше, чем
при выборе ближайших узлов.
Что же в итоге - для ускорения получения результатов специально загубили точность результата? Да, именно так! Идет размен точности решения задачи на скорость получения результата. Расчет, очевидно, такой: требуемую точность придется получить на полиноме Ньютона более высокой степени, затратив на это все-таки меньше времени, чем получать результат с использованием «медленного» полинома Лагранжа, но с наилучшим выбором ближайших узлов.
Рис.2.6, 2.7, 2.8 Выбор узлов для решения задачи интерполяции в точке с использованием различных вариантов интерполяционных полиномов.
Нужен пример с cos(x), заданным таблично. С разными вариантами полиномов и разными оценками погрешности. Рис.2.9.
Интерполяционные полиномы имеют особенности, которые существенны при их использовании:
- очень жесткий критерий близости полинома и таблицы с исходными данными – полином должен проходить через все узлы интерполяции;
- степень полинома на единицу меньше их количества.
Очевидно, что второе ограничение есть следствие первого условия.
Возможно ли «развязать» степень полинома и количество исходных данных и, тем не менее, получить функцию, похожую на исходные данные?
Один из вариантов – использовать менее жесткий критерий близости искомой функции и таблицы. Примером такого подхода к аппроксимации служит метод наименьших квадратов. В этом случае степень полинома никак не связана с объемом исходных данных, а подбирается исходя из условий достижения требуемой точности аппроксимации.
Другой вариант – разбить таблицу данных на части и на каждой из таких частей решать задачу интерполяции отдельно. Степень полученных полиномов будет меньше. Такая задача получила название сплайн-интерполяция.
