Лабораторная работа № 7
Интерполяция данных и обработка наблюдений
в среде Mathcad
Цель работы: изучить основные способы обработки экспериментальных данных в среде Mathcad.
Интерполяция данных
1.1. Кусочно-линейная интерполяция
Кусочно-линейная интерполяция производится функцией linterp(vx, vy,x). Аргументы функции: vx - вектор аргументов x точек, через которые должна пройти кривая; vy - вектор ординат y тех же точек; x – значение аргумента интерполирующей функции.
Задание 1. Провести кусочно-линейную интерполяцию, если vx= (1, 2, 3, 4, 5) , vy= (98, 85, 32, 79, 30) при с шагом 0,1.
Рисунок 1. Кусочно-линейная интерполяция
1.2. Сплайн-интерполяция
В большинстве случаев желательно соединять экспериментальные точки не ломаной линией, а гладкой кривой. Для этого используется сплайн-интерполяция. Кубическая сплайн-интерполяция позволяет провести кривую через набор точек таким образом, что первые и вторые производные кривой непрерывны в каждой точке. Эта кривая образуется путём создания ряда кубических полиномов, проходящих через три смежные узловые точки. Кубические полиномы затем состыковываются друг с другом так, чтобы образовать единую кривую. Линия, которую описывает сплайн-функция, напоминает по форме гибкую линейку, закрепленную в узловых точках (отсюда и название аппроксимации: splain - гибкая линейка).
Рисунок 2. Использование встроенных функций среды
Mathcad для выполнения сплайн-интерполяции
Для осуществления сплайн-интерполяции среда Mathcad предлагает четыре встроенные функции (Рисунок 2). Три из них служат для получения векторов вторых производных сплайн-функций при различном виде интерполяции:
cspline(vx, vy) - возвращает вектор vs вторых производных при приближении в опорных точках к кубическому полиному;
pspline(vx, vy) - возвращает вектор vs вторых производных при приближении к опорным точкам параболической кривой;
lspline(vx, vy) - возвращает вектор vs вторых производных при приближении к опорным точкам прямой.
Функция interp(vs, vx, vy, x) - возвращает значение у(х) для заданных векторов vs, vx, vy и заданного значения x.
Рисунок 3. Интерполяция различными сплайнами
Сначала строятся базовые точки. Для создания вектора узловых точек и значений функции в них выбрана произвольная функция (с осцилляциями — для большей наглядности). Потом по этим базовым точкам строятся три сплайн-интерполяции — с кубическими, квадратичными и линейными сплайнами в граничных точках. Результат показан на рисунке 3.
Задание 2. Выполнить сплайн-интерполяцию как показано на рисунках 2 и 3.
Таким образом, сплайн-интерполяция проводится в два этапа. На первом с помощью функций cspline, pspline или Ispline отыскивается вектор вторых производных функции у(х), заданной векторами vx и vy её значений (абсцисс и ординат). Затем, на втором этапе для каждой искомой точки вычисляется значение у(х) с помощью функции interp.
Задание 3. Выполнить сплайн-интерполяцию для данных из задания 1 с использованием функции pspline.
Рисунок 4. Интерполяция параболическими сплайнами
На рисунке 4 приведен пример аппроксимации параболическими сплайнами. Аппроксимация проведена для тех же заданных точек, что и в задании 1. Набраны вектора vx, vy и с помощью функции pspline получены коэффициенты сплайнов. Чтобы убедиться, что аппроксимирующая кривая проходит через заданные точки, функция interp вычислена для заданных значений х. Поэтому результатом interp явились заданные значения у. Чтобы более точно просмотреть аппроксимирующую кривую для графика х задан в том же интервале, но с шагом 0.1. Как видно из графика, интерполяция сплайнами совершенно не похожа на кусочно-линейную интерполяцию.
В функции interp – vx,vy- те же векторы заданных значений, а vs – вектор коэффициентов уравнений для сплайнов, полученный из функций pspline или cspline.