При выполнении интерполяции степенными полиномами возможно появление явления волнистости, при котором значение интерполирующей функции между узлами сколь угодно сильно отличается (осциллирует) от значений интерполируемой функции в близлежащих узлах. Это является свойством степенного полинома. Так как явление волнистости не проявляется для полиномов степени три и менее, то для его преодоления используют линейную, квадратичную или кубическую сплайн-интерполяцию.
Функция S(x), заданная на отрезке [a, b], называется сплайном порядка p, если она:
1. На каждом из частичных отрезков
, i = 0, 1, …, n-1 заданной степени
, то есть может быть записана как
.
2. р-1 раз непрерывно дифференцируема на [a, b].При сплайн-интерполяции интерполируемая функция представляется набором полиномов первой, второй или третьей степени соответственно – своим для каждого из внутренних подотрезков
. На рис. 2 для случая функции одной независимой переменной f(x) показана программа для Mathcad, реализующая кубическую сплайн-интерполяцию.
Для реализации одномерной сплайн-интерполяции в пакете Mathcad имеются следующие функции:
· cspline(vx,vy) –возвращает вектор вторых производных (первый из аргументов в функции interp(vs,vx,vy,x)) по векторам исходных данных vx и vyдля кубичного сплайна.
· pspline(vx,vy) -возвращает вектор вторых производных по векторам исходных данных vx и vyдля параболического сплайна.
· lspline(vx,vy) -возвращает вектор вторых производных по векторам исходных данных vx и vyдля линейного сплайна.
· interp(vs,vx,vy,x) – возвращает значение, найденное сплайн-интерполяцией для заданных векторов vs, vx, vy и значения x.