Здесь коэффициенты a0, a1 и a2 разные на каждом интервале и определяются решением системы уравнений для условия прохождения параболы через три точки:
(2.9)
Квадратичная интерполяция также является частным случаем многочлена Лагранжа, построенного по трем точкам, поэтому вместо прямого вычисления коэффициентов можно воспользоваться формулой:
(2.10)
При использовании кусочно-линейной интерполяции сначала нужно определить интервал i, в который попадает расчетное значение x, а затем в выражение (2.10) подставить значения ,, для данного интервала.
Рисунок 2.2 – Кусочно-квадратичная интерполяция
2.4 Кубические сплайны
Кубическим сплайном называется функция, которая удовлетворяет следующим требованиям:
на каждом i-ом локальном отрезке интерполяции между соседними заданными узлами она является многочленом третьей степени;
имеет непрерывные первую и вторую производные на всём интервале интерполяции ;
во всех узлах интерполяции выполняются условия равенства значений исходной табличной функции и функции , а также их первых производных: и ;
выполняются граничные условия для вторых производных: (в этом случае существует единственный такой сплайн).
Кубические сплайны делятся на два класса.
Локальные. Используются первые производные , вычисляемые по трем ближайшим к точке x узлам интерполяции. Локальные сплайны ненамного лучше кусочно-линейной или кусочно-квадратичной интерполяции и используются редко.
Глобальные. Основаны на вычислении массива вторых производных по всем узлам , который рассчитывается заранее путем решения единой трехдиагональной СЛАУ. Такие сплайны достаточно хороши и являются одним из основных методов интерполяции. В отличие от кусочно-линейной и кусочно-квадратичной интерполяции они дают гладкие кривые за счет непрерывности первой и второй производных. К недостаткам относится то, что на каждом интервале расчетная формула своя.
Пусть имеется таблица значений , где , то есть у нас есть узел интерполяции и n интервалов между ними. В общем случае шаг сетки узлов может быть неравномерным.
Для нахождения значения сплайна в некоторой введенной точке необходимо сначала проверить, принадлежит ли данная точка общему интервалу интерполяции . Если принадлежит, то нужно определить, между какими заданными узлами находится введенная точка, то есть найти номер i подынтервала .
Формула вычисления значения сплайна в точке имеет вид:
,
(2.11)
где
– расстояния между соседними узлами;
– значения вторых производных в узловых точках.
Вторые производные находятся из трех диагональной СЛАУ:
.
(2.12)
Всего в этой системе уравнение и неизвестных вторых производных , поэтому система не полностью определяет . Сведем ее к трехдиагональной СЛАУ заданием граничных условий. Для нормального сплайна . Теперь в СЛАУ неизвестная и она является трехдиагональной. Такая система эффективнее всего решается методом прогонки.
Если введенная точка не принадлежит общему интервалу интерполяции , то для расчета значений функции за его пределами можно воспользоваться методами экстраполяции.
Простейший способ – использовать линейную экстраполяцию. В этом случае асимптотическое поведение функции вне интервала описывается формулами линейной экстраполяции влево (2.13) или вправо (2.14):