ЛАБОРАТОРНАЯ РАБОТА ПО ИНФОРМАЦИОННЫМ ТЕХНОЛОГИЯМ В УПРАВЛЕНИИ КАЧЕСТВОМ «ИНТЕРПОЛЯЦИЯ ТАБЛИЧНО ПРЕДСТАВЛЕННЫХ ДАННЫХ. » - Студенческий научный форум

VIII Международная студенческая научная конференция Студенческий научный форум - 2016

ЛАБОРАТОРНАЯ РАБОТА ПО ИНФОРМАЦИОННЫМ ТЕХНОЛОГИЯМ В УПРАВЛЕНИИ КАЧЕСТВОМ «ИНТЕРПОЛЯЦИЯ ТАБЛИЧНО ПРЕДСТАВЛЕННЫХ ДАННЫХ. »

Санникова А.Г. 1, Растеряев Н.В. 2
1Южно-Российский государственный политехнический университет (НПИ) имени М.И. Платова
2Филиал ЮФУ в г. Новошахтинске
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Цель работы: овладеть навыками линейной и кубической сплайн-интерполяции таблично представленных данных в среде пакета Mathcad.  

Пояснения к работе

Интерполяция использует значения функции, заданные в 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 генерирует кривую сплайна, которая может быть кубическим полиномом в граничных точках.

Пример выполнения лабораторной работы

Просмотров работы: 586