9. Интерполяция сплайнами.
Когда надо провести график функции по известным точкам то обычно пользуются лекалом. Однако если точки расположены редко, то нелегко бывает подобрать участок лекала, проходящий сразу через много точек. Тогда опытные инженеры берут гибкое лекало — металлическую линейку, ставят ее на ребро и изгибают, придерживая в нескольких местах пальцами так, чтобы ее ребро проходило сразу через все точки (рис. 6).
Рис. 6.
Этот способ интерполяции можно описать математически. Гибкая линейка — это упругий брусок; из курса сопротивления материалов известно, что уравнение его свободного равновесия есть . Значит, в промежутке между каждой парой соседних узлов интерполяционная функция является многочленом третьей степени, который удобно записать в таком виде:
Коэффициенты многочлена на каждом интервале определяют из условий в узлах. Очевидно, в узлах многочлен должен принимать табличные значения функции:
Число этих уравнений вдвое меньше числа неизвестных коэффициентов, поэтому для определенности задачи нужны дополнительные условия.
Для их получения вычислим первую и вторую производные многочлена (20):
и потребуем непрерывности этих производных (т. е. гладкости линейки) во всех точках, включая узлы. Приравнивая во внутреннем узле правые и левые пределы производных, получим
Недостающие два условия обычно получают из естественного предположения о нулевой кривизне графика на концах:
что соответствует свободно отпущенным концам линейки. Но если есть дополнительные сведения об асимптотике функции, то можно записать другие краевые условия.
Уравнения (21) — (25) образуют систему линейных уравнений для определения неизвестных коэффициентов. Эту систему можно решить методом исключения Гаусса, описанным в главе V. Но гораздо выгоднее сначала привести ее к специальному виду. Уравнение (21) сразу дает нам все коэффициенты Из уравнений (24) и (25) следует
Подставим соотношение (26) в (22), одновременно исключая оттуда тогда получим
Исключим теперь из (23) величины при помощи (27), соответственно увеличивая во втором случае индекс на единицу, а величину — на основании (26). Останется система линейных уравнений для коэффициентов легко приводящаяся к следующему виду:
Матрица этой системы трехдиагональна, т. е. ненулевыми в ней являются только элементы главной диагонали и двух соседних. Такие системы экономно решаются методом прогонки, изложенным в главе V. После нахождения коэффициентов остальные коэффициенты нетрудно вычислить по формулам (21), (26) и (27).
Можно рассмотреть более общую задачу интерполяции функции сплайном — многочленом степени:
коэффициенты которого кусочно-постоянны и который в узлах интерполяции принимает заданные значения и непрерывен вместе со своими производными. При нечетной степени многочлена можно рассматривать сплайновую интерполяцию как решение задачи лангранжевой интерполяции при дополнительном условии
Из этого условия следует уравнение для интерполирующей функции, условия непрерывности производных во внутренних узлах и естественные ограничения на производные в крайних узлах.
На практике употребительны два случая. Один — подробно рассмотренный здесь случай Второй — когда сплайн совпадает с многочленом Ньютона первой степени и соответствует аппроксимации графика ломаной, построенной по узлам; определение коэффициентов при этом очевидно.
Сплайновая интерполяция напоминает лагранжеву тем, что она требует знания в узлах только значений функции, но не ее производных. По области применения она занимает промежуточное положение между линейной и нелинейной лагранжевой интерполяцией. Ее целесообразно применять тогда, когда сетка недостаточно подробна для интерполяции многочленом Ньютона, но еще не настолько редка, чтобы необходимо было прибегать к нелинейной интерполяции. Если функция так же резко меняется за один шаг сетки, как в таблице 5, то сплайновая интерполяция не гарантирует хорошей точности.
Наиболее успешно применяют сплайновые интерполяции при разностном решении краевых задач для эллиптических уравнений в частных производных с гладкими коэффициентами.