Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы (методичка) .doc
Скачиваний:
15
Добавлен:
17.11.2019
Размер:
2.82 Mб
Скачать

Встроенные функции интерполирования Пакет mathcad

В MATHCAD можно использовать линейную интерполяцию, когда точки данных соединяются отрезками прямых, или кубическую сплайн-интерполяцию, когда точки соединятся отрезками кубической параболы.

Линейная интерполяция выполняется функцией linterp(vx,vy,x), которая возвращает линейно интерполируемое значение y, соответствующее третьему аргументу x. Аргументы vx,vy – это исходные векторы данных одинаковой длины, причем элементы вектора vx должны быть расположены в порядке возрастания.

Кубическая сплайн-интерполяция позволяет провести кривую через заданные точки так, чтобы первые и вторые производные были непрерывны в каждой точке. Эта кривая образуется кубическими полиномами, проходящими через наборы из трех смежных точек, которые затем состыковываются друг с другом, чтобы образовать одну кривую. Порядок выполнения такого вида интерполяции следующий:

1. Создать векторы исходных данных vx,vy одинаковой длины, причем элементы вектора vx должны быть расположены в порядке возрастания.

2. Вычислить вектор vs , который будет содержать значения вторых производных интерполяционной кривой в заданных точках. Вектор vs можно вычислить, используя одну из функций, которые отличаются лишь граничными условиями, а именно:

  • lspline(vx,vy) – генерация сплайна, который приближается к прямой линии в граничных точках;

  • pspline(vx,vy) – генерация сплайна, который приближается к параболе граничных точках;

  • cspline(vx,vy) – генерация сплайна, который приближается к кубической параболе в граничных точках.

  1. Чтобы найти интерполируемое значение в произвольной точке, например в точке x , необходимо вычислить функцию interp(vs,vx,vy,x).

Обратите внимание, что можно сделать то же самое, вычисляя, например, interp(cspline(vx,vy),vx,vy,x). Пример сплайн-интерполяции показан на рис. 8.1.

Для узловой и промежуточной точек найдены ординаты y соответствующих точек сплайна. Нахождение значения в узловой точке – это проверка правильности алгоритма. На рис. 8.1 также построен график интерполирующей функции и крестиками отмечены узловые точки. Для получения наилучших результатов значение x должно находиться между значениями в векторе vx.

Иногда необходимо оценить поведение функции вне отрезка, на котором заданы данные. В MATHCAD есть функция predict, которая позволяет это сделать. Эта функция использует линейный алгоритм предсказания, который бывает полезен в том случае, если экстраполируемая функция гладкая и осциллирующая, но не обязательно периодическая. Формат написания функции: predict(vy,m,n) . Возвращает n предсказанных значений, используя m последних последовательных значений вектора данных vy. Элементы вектора vy должны представлять собой значения, взятые через равные интервалы. Необходимо отметить, что задача экстраполяции хорошо решаема в случае монотонных функций, представляемых полиномом невысокой степени, а также для функций, содержащих колебательную компоненту.

Рис. 8.1. Пример построения кубического сплайна

В заключение приведем список функций интерполяции и экстраполяции:

linterp (vx, vy, x);csline (vx, vy); psline (vx, vy); lsline (vx, vy); interp (vs, vx, vy, x); cspline (Mxy, Mz); pspline (Mxy, Mz); lspline (Mxy, Mz); interp (vs, Mxy, Mz, v); predict (v, m, n).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]