Одномерная сплайн-интерполяция
При небольшом количестве узловых точек (менее 10) линейная интерполяция оказывается довольно грубой. При ней даже первая производная функции аппроксимации испытывает резкие скачки в узловых точках. Для целей экстраполяции функция linterp(VX, VY, x ) не предназначена и за пределами области определения может вести себя непредсказуемо. Гораздо лучшие результаты дает сплайн-аппроксимация. При ней исходная функция заменяется отрезками кубических полиномов, проходящих через три смежные узловые точки. Коэффициенты полиномов рассчитываются так, чтобы непрерывными были первая и вторая производные. Линия, которую описывает сплайн-функция, напоминает по форме гибкую линейку, закрепленную в узловых точках (откуда и название аппроксимации spline - гибкая линейка). Для осуществления сплайновой аппроксимации система Mathcad предлагает четыре встроенные функции. Три из них служат для получения векторов вторых производных сплайн-функций при различном виде интерполяции: cspline(VX, VY) - возвращает вектор VS вторых производных при приближении в опорных точках к кубическому полиному; pspline(VX, VY) - возвращает вектор VS вторых производных при приближении в опорных точках к параболической кривой; lspline(VX, VY) - возвращает вектор VS вторых производных при приближении к опорным точкам прямой. Наконец, четвертая функция interp(VS, VX, VY, x ) - возвращает значение y(x) для заданных векторов VS, VX, VY и заданного значения x. На рис. 72 приведены примеры линейной и сплайновой аппроксимаций функции. Рис.72. Примеры линейной и сплайновой аппроксимаций
|