Пояснения к работе
Интерполяция использует значения функции, заданные в n точках, чтобы вычислить значения исследуемого признака между ними. В пакете Mathcad можно или соединять точки данных прямыми линиями (линейная интерполяция) или соединять их отрезками кубического полинома (кубическая сплайн-интерполяция).
При линейной интерполяции пакет Mathcad соединяет существующие точки данных прямыми линиями. Для этого используется функция linterp, которая имеет три аргумента. Например, функция linterp(X,Y,x) использует векторы данных X и Y, чтобы возвратить линейно интерполируемое значение y, соответствующее третьему аргументу x. Аргументы X и Yдолжны быть векторами одинаковой длины, при этом вектор X должен содержать вещественные значения, расположенные в порядке возрастания на отрезке [x1;xn]. Функция linterpсоединяет точки данных прямыми, создавая таким образом ломаную. Интерполируемое значение для конкретного x есть ордината y соответствующей точки ломаной.
Для значений x, расположенных перед первой точкой в X, пакет Mathcad продолжает ломанную прямой линией, проходящие через первые две точки данных. Для значений x, расположенных за последней точкой в X, пакет Mathcad продолжает ломанную прямой линией, проходящей через последние две точки данных. Однако при этом необходимо помнить, что функция linterpпредназначена для интерполяции значений на отрезке [x1;xn], а не для их экстраполяции (выполнения прогноза).
Кубическая сплайн-интерполяция позволяет провести кривую через набор точек таким образом, что первые и вторые производные созданной кривой непрерывны в каждой точке. Эта кривая образуется путём создания ряда кубических полиномов, проходящих через наборы из трёх смежных точек. Кубические полиномы затем состыковываются друг с другом, чтобы образовать одну кривую. Чтобы провести кубический сплайн через набор точек необходимо:
Создать вектор-столбцы X и Y, содержащие значения х и у, через которые нужно провести кубический сплайн. Элементы Хдолжны быть расположены в порядке возрастания. Хотя используются идентификаторыХ, Y и vs, нет никаких ограничений на имена этих переменных (можно использовать любые имена).
Вычислить вектор vs:=cspline(Х,Y). Вектор vsсодержитвторые производные интерполяционной кривой в рассматриваемых точках.
Чтобы найти интерполируемое значение в произвольной точке, например хо, вычислите interp(vs,X,Y,xo), где vs, X, Y – вектор-столбцы, описанные ранее.
Обратите внимание, что можно сделать то же самое, вычисляя interp(cspline(X, Y), X, Y, xo). Однако, если придётся вычислять interp во многих различных точках, то обращение к cspline может требовать много времени, и так как возвращаемый ею результат не зависит от рассматриваемой точки, имеет смысл сделать это один раз, сохранить результат и многократно использовать, как описано выше.
В дополнение к cspline пакет Mathcad поставляется с двумя другими кубическими сплайн-функциями. Они все возвращают вектор коэффициентов вторых производных, который мы обозначаем vs. Эти три функции отличаются только граничными условиями:
функция lspline генерирует кривую сплайна, которая приближается к прямой линии в граничных точках;
функция pspline генерирует кривую сплайна, которая приближается к параболе в граничных точках;
функция cspline генерирует кривую сплайна, которая может быть кубическим полиномом в граничных точках.
Пример выполнения лабораторной работы