Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Краткие сведения. Интерполяция – это нахождение по ряду данных значений функции промежуточных её значений
Интерполяция – это нахождение по ряду данных значений функции промежуточных её значений. Экстраполяция позволяет найти значения функции вне интервала интерполяции. Исходными данными для решения задач интерполяции и экстраполяции являются значения таблично заданной функции:
Узлы интерполяции могут быть неравноотстоящими и равноотстоящими , где - шаг интерполяции. Решением задачи интерполяции (экстраполяции) является интерполирующая (экстраполирующая) функция , удовлетворяющая условиям
1. Алгебраическая интерполяция При алгебраической интерполяции интерполирующая функция может быть написана непосредственно по таблице значений в виде интерполяционного полинома Лагранжа -ой степени Узлы интерполяции при этом могут быть как равноотстоящими, так и неравноотстоящими. Представленный полином позволяет выполнять прямую интерполяцию. По таблице можно написать также полином Лагранжа для обратной интерполяции Для разработки алгоритмов полиномы удобнее представить в виде Алгоритмы прямой и обратной интерполяций по полиномам Лагранжа представлены на рис.2.1 и 2.2.
Рис.2.1 – алгоритм прямой интерполяции по Лагранжу
Рис.2.2 – алгоритм обратной интерполяции по Лагранжу
2. Кусочно-линейная интерполяция При кусочно-линейной интерполяции вычисление дополнительных точек выполняется по линейной зависимости. Графически это означает соединение узловых точек отрезками прямых (рис.2.3). При экстраполяции используются отрезки прямых, проведенных через две крайние точки.
Рис.2.3 – кусочно-линейная интерполяция и экстраполяция
При небольшом числе узлов (< 10) кусочно-линейная интерполяция оказывается довольно грубой. При ней даже первая производная интерполирующей функции испытывает резкие скачки в узловых точках.
3. Сплайн-интерполяция Гораздо лучшие результаты, по сравнению с кусочно-линейной, дает сплайн-интерполяция (splinе – гибкая линейка). Здесь исходная функция заменяется отрезками кубических полиномов, проходящих через три смежные узловые точки. Коэффициенты полиномов , т.е. , рассчитываются так, чтобы первая и вторая производные были непрерывными. Линия, которую описывает сплайн-функция, напоминает по форме гибкую линейку, закрепленную в узловых точках.
4. Тригонометрическая интерполяция Пусть функция задана на отрезке таблицей значений в равноотстоящих узлах Тригонометрическим многочленом степени называют многочлен Задача тригонометрической интерполяции состоит в построении тригонометрического интерполяционного многочлена наименьшей степени, удовлетворяющего условиям Решением этой задачи является тригонометрический многочлен
Рис.2.4 – алгоритм тригонометрической интерполяции
коэффициенты которого вычисляются по следующим формулам:
Широкие возможности тригонометрической интерполяции следуют из того факта, что с возрастанием многочлен аппроксимирует с возрастающей точностью. Это справедливо для достаточно широкого класса функций. Этим тригонометрическая интерполяция существенно отличается от алгебраической интерполяции на системе равноотстоящих узлов. При алгебраическом интерполировании разность между функцией и интерполяционным многочленом может быть как угодно большой всюду, кроме узлов интерполяции. Тригонометрическое интерполирование свободно от этого недостатка. Алгоритм тригонометрической интерполяции представлен на рис.2.4.
Интерполирование в системе Mathcad Система Mathcad позволяет интерполировать двумя практически важными типами функций: кусочно-линейной и сплайновой. При кусочно-линейной интерполяции используется функция linterp(VX, VY, x). Для заданных векторов VX и VY узловых точек и заданного аргумента x функция linterp(VX, VY, x) возвращает значение функции при ее линейной интерполяции. Для экстраполяции функция linterp(VX, VY, x) не предназначена и за пределами области определения может вести себя непредсказуемо. Для сплайн-интерполяции используется четыре встроенные функции. Три из них служат для получения векторов вторых производных сплайн-функций при различном виде интерполяции: cspline(VX, VY) – возвращает вектор VS вторых производных при приближении в краевых точках к кубическому полиному; pspline(VX, VY) – возвращает вектор VS вторых производных при приближении в краевых точках к параболической кривой; lspline(VX, VY) – возвращает вектор VS вторых производных при приближении в краевых точках к прямой. Четвертая функция interp(VS, VX, VY, x) возвращает значение y(x) для заданных векторов VS, VX, VY и заданного значения x. Таким образом, сплайн-интерполяция проводится в два этапа. Сначала с помощью функций cspline(VX, VY), pspline(VX, VY) или lspline(VX, VY) отыскивается вектор вторых производных функции y(x), заданной векторами VX и VY ее значений (абсцисс и ординат). Затем для каждой искомой точки вычисляется значение y(x) с помощью функции interp(VS, VX, VY, x). Пример кусочно-линейной и сплайн-интерполяций
Примечания. 1. Функция переставляет строки матрицы таким образом, чтобы отсортированным оказался -й столбец. 2. Функция max(X) возвращает максимальный, а min(X) - минимальный по значению элемент вектора (или матрицы). 3. Операция.. (две точки) вводится как; (точка с запятой), а шаблон дроби – символом / (арифметическая операция деления).
ЛАБОРАТОРНАЯ РАБОТА 2 МЕТОДЫ ИНТЕРПОЛЯЦИИ И ЭКСТРАПОЛЯЦИИ
ЗАДАНИЕ 1. В Mathcad’ е по заданному из таблицы варианту выполнить кусочно-линейную и сплайн-интерполяции для функции, заданной таблицей значений в точках где . 2. По заданному варианту составить алгоритм и написать код для определения параметров и построения графика интерполяционного тригонометрического многочлена. Нанести на график значения функции из таблицы. Таблица
В качестве примера возьмем функцию, которая задана в точках , где , значениями: 2.0; -0.06; -1.9; -3.4; -4.9; -4.8; -4.0; -2.7; -1.1; 0.95; 3.0; 5.0; 6.7; 8.1; 8.8; 8.9; 8.5; 7.47; 5.94; 4.06; 2.43.
1. Создайте новый проект командой Файл/Новый/Приложение. 2. Сохраните файлы модуля и проекта командой Файл / Сохранить все под именами LR2 и PR_LR2. Для этого удобно использовать соответствующую быструю кнопку (Сохранить все). В последующих сеансах работы сохраненный проект можно открыть командой Файл/Открыть проект (или Повторно открыть). Теперь перейдем к проектированию приложения - переносам на форму необходимых компонентов и заданию их свойствам значений, а в обработчиках событий – размещению кодов соответствующих алгоритмов. (Рекомендуется нажимать кнопку Сохранить все по окончании работы с каждым компонентом.) В результате проектирования получим форму, представленную на рис.2.5.
|