Интерполяция средствами MathCad
Как было описано выше, интерполяция использует значения некоторой функции, заданные в ряде точек, чтобы предсказать значения функции между ними. В MathCad можно соединять точки данных прямыми линиями (линейная интерполяция) или соединять их отрезками кубического полинома (кубическая сплайн-интерполяция).
Функции интерполяции определяют кривую, точно проходящую через заданные точки. Из-за этого результат очень чувствителен к ошибкам данных. Кроме того, необходимо убедиться, что каждый элемент массива, который используется в любой из функций, описанных в этом разделе, содержит определенное значение. Поскольку MathCad присваивает значение 0 любым элементам, которые явно не определены.
Линейная интерполяция
При линейной интерполяции MathCad соединяет существующие точки данных прямыми линиями. Это выполняется функцией linterp.
Эта функция соединяет точки данных отрезками прямых, создавая таким образом ломаную. Интерполируемое значение для конкретного x: есть ордината y соответствующей точки ломаной.
Для значений x, расположенных перед первой точкой в векторе vx, MathCad продолжает ломаную прямой линией, проходящей через первые две точки данных. Для значений x, расположенных за последней точкой vx, MathCad продолжает ломаную прямой линией, проходящей через последние две точки данных.
Для получения наилучших результатов x должно находится между самыми большими и самыми маленькими значениями vx - маловероятно, что будут полезны значения, вычисленные для вне этого диапазона. Функция linterp предназначена для интерполяции, а не для экстраполяции. Рис. 8.2 показывает некоторые примеры линейной интерполяции.
Рис. 8.2. Линейная интерполяция
Кубическая сплайн-интерполяция
Кубическая сплайн-интерполяция позволяет провести кривую через набор точек таким образом, что первые и вторые производные кривой непрерывны в каждой точке. Эта кривая образуется путем создания ряда кубических полиномов, проходящих через наборы из трех смежных точек. Кубические полиномы затем состыковываются друг с другом, чтобы образовать одну кривую.
MathCad поставляется с тремя сплайн функциями:
cspline (vx, vy)
pspline (vx, vy)
lspline (vx, vy)
Они возвращают вектор коэффициентов вторых производных, который мы будем называть vs. Этот вектор vs обычно используется в функции interp, описанной ниже. Аргументы vx и vy должны быть вещественными векторами одинаковой длины. Значения вектора vx должны быть расположены в порядке возрастания.
Эти три функции отличаются только граничными условиями:
· функция lspline генерирует кривую сплайна, которая приближается к прямой линии в граничных точках;
Рис. 8.3. Кубическая сплайн-интерполяция
· функция pspline генерирует кривую сплайна, которая приближается к параболе в граничных точках.
· функция cspline генерирует кривую сплайна, которая может быть кубическим полиномом в граничных точках.
Чтобы провести кубический сплайн через набор точек (рис. 8.3):
· создайте векторы vx и vy, содержащие координаты x и y,через которые нужно провести кубический сплайн. Элементы vx должны быть расположены в порядке возрастания. (Хотя мы используем имена vx, vy и vz, нет никаких ограничений на имена этих переменных; можно использовать любые имена);
· Вычислите вектор vs:= cspline (vx, vy).
Рис. 8.4. Экстраполяция
Вектор vs содержит вторые производные интерполяционной кривой в рассматриваемых точках;
· чтобы найти интерполируемое значение в произвольной точке x0, вычислите interp(vs, vx, vy, x0), где vs, vx, vy - векторы, описанные ранее.
Интерполируемое значение для конкретного x: есть ордината y соответствующей точки сплайна. Для значений x, расположенных перед первой точкой вектора vx, MathCad продолжает сплайн первой из составляющих его кубических парабол. Для значений x, расположенных за последней точкой vx, MathCad продолжает сплайн первой из составляющих его кубических парабол.
Для получения наилучших результатов x должно находится между самыми большими и самыми маленькими значениями vx - маловероятно, что будут полезны значения, вычисленные для х вне этого диапазона. Сплайны предназначены для интерполяции, а не для экстраполяции.
Линейное предсказание (экстраполяция)
Иногда необходимо оценить значения формул в точках, находящихся вне области расположения сетки, на которой заданы значения функции. В MathCad есть функция predict, которая позволяет это сделать.
Эта функция использует линейный алгоритм предсказания, который является полезным, когда экстраполируемая функция является гладкой и осциллирующей, хотя не обязательно периодической. Линейное предсказание можно рассматривать как разновидность экстраполяции, но нельзя путать с линейной или полиномиальной экстраполяцией.
Функция predict использует последние m исходных значений данных, чтобы вычислять коэффициенты предсказания. Как только это сделано она использует последние m точек, чтобы предсказать координаты (m+1)-ой точки, фактически создавая скользящее окно шириной в m точек (рис. 8.4).
Yandex.RTB R-A-252273-3
- Введение
- Основы работы с MathCad
- 1. Введение в численные методы. Теория погрешностей и машинная арифметика Понятие о вычислительном эксперименте
- Классификация погрешностей
- Элементы теории погрешностей
- 2. Теория погрешностей и машинная арифметика Погрешности арифметических действий Погрешность функции
- Погрешности арифметических действий
- 3. Численное решение нелинейных уравнений
- Решение нелинейных уравнений
- 4. Численное решение систем уравнений Решение систем линейных уравнений
- Решение матричных уравнений
- Решение систем нелинейных уравнений
- 5. Решение систем уравнений и систем уравнений MathCad Решение одного уравнения
- Нахождение корней полинома
- Решение систем уравнений
- Приближенные решения
- Символьное решение уравнений
- 6. Интерполяция функций
- Глобальная интерполяция
- 7. Интерполяция функций Интерполяционные формулы Ньютона
- Локальная интерполяция
- 8. Интерполяция функций Кубическая сплайн-интерполяция
- Интерполяция средствами MathCad
- 9. Математическая обработка экспериментальных данных Элементы теории ошибок
- Элементы теории ошибок Случайные ошибки
- Аппроксимация в виде линейной комбинации функций
- Полиномиальная аппроксимация в Mathcad
- С помощью функции regress
- 11. Численное интегрирование и дифференцирование Численное интегрирование
- Методы прямоугольников
- Метод трапеций
- Метод Симпсона
- Метод Монте - Карло
- Численное дифференцирование
- 12. Решение обыкновенных дифференциальных уравнений
- Одношаговые методы решения задачи Коши
- Общая характеристика одношаговых методов
- 13. Решение дифференциальных уравнений в частных производных Уравнения первого порядка
- Типы дифференциальных уравнений в частных производных
- Уравнения первого порядка
- Лабораторная работа
- Варианты задания 1
- Варианты задания 2
- Варианты задания 3
- Локальная интерполяция
- Предсказание
- Варианты заданий 4
- Полиномиальная регрессия
- Обобщенная регрессия
- Варианты задания 5
- Численное интегрирование и дифференцирование
- Варианты задания 6