Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Пакет mathcad. В 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) – генерация сплайна, который приближается к кубической параболе в граничных точках. 3. Чтобы найти интерполируемое значение в произвольной точке, например в точке 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);
|