Одномерная сплайн-интерполяция и сплайн-аппроксимация



Одномерная сплайн-интерполяция и сплайн-аппроксимация

При небольшом числе узловых точек (менее 10) линейная интерполяция оказывается довольно грубой. При ней даже первая производная функции аппроксимации испытывает резкие скачки в узловых точках. Для целей экстраполяции функция linterp не предназначена и за пределами области определения может вести себя непредсказуемо.

Гораздо лучшие результаты дает сплайн-аппроксимация. При ней исходная функция заменяется отрезками кубических полиномов, проходящих через три смежные узловые точки. Коэффициенты полиномов рассчитываются так, чтобы непрерывными были первая и вторая производные. Линия, которую описывает сплайн-функция, напоминает по форме гибкую линейку, закрепленную в узловых точках (отсюда и название аппроксимации: splain — гибкая линейка).

Для осуществления сплайновой аппроксимации система MathCAD предлагает четыре встроенные функции. Три из них служат для получения векторов вторых производных сплайн-функций при различном виде интерполяции:

cspline(VX, VY) — возвращает вектор VS вторых производных при приближении в опорных точках к кубическому полиному;

pspline(VX, VY) — возвращает вектор VS вторых производных при приближении к опорным точкам параболической кривой;

lspline(VX, VY) — возвращает вектор VS вторых производных при приближении к опорным точкам прямой. Наконец, четвертая функция

interp(VS, VX, VY, x)

возвращает значение у(х) для заданных векторов VS, VX, VY и заданного значения x.

Таким образом, сплайн-аппроксимация проводится в два этапа. На первом с помощью функций cspline, pspline или Ispline отыскивается вектор вторых производных функции у(х), заданной векторами VX и VY ее значений (абсцисс и ординат). Затем, на втором этапе для каждой искомой точки вычисляется значение у(х) с помощью функции interp.



Содержание раздела