Сплайн-интерполяция
Часто хорошие результаты дает сплайн-аппроксимация отрезками кубических полиномов, проходящих через три смежные узловые точки. Коэффициенты полиномов рассчитываются так, чтобы непрерывными были первая и вторая производные. Линия, которую описывает сплайн-функция, напоминает по форме гибкую линейку, закрепленную в узловых точках (откуда и название аппроксимации: splaine – гибкая линейка). Для осуществления сплайн-аппроксимации система Mathcad предлагает следующие функции:
cspline (VX, VY) – возвращает вектор VS вторых производных при приближении в опорных точках отрезками кубических полиномов;
pspline (VX, VY) – возвращает вектор VS вторых производных при приближении к опорным точкам отрезками парабол;
lspline (VX, VY) - возвращает вектор VS вторых производных при приближении к опорным точкам отрезками прямой;
interp (VS, VX, VY, x) –возвращает значение функции y(x) для заданных векторов VS, VX, и значения x.
Сплайн-аппроксимация проводится в два этапа. Вначале с помощью функций cspline, pspline или lspline отыскивается вектор вторых производных функции y(x), заданной векторами VX и VY ее абсцисс и ординат. Затем для каждой точки вычисляется y(x) с помощью функции interp.
Сплайн интерполяции даже при небольшом количестве точек (5-6) дает хорошие результаты:
· график функции оказывается плавным;
· точки его перегиба незаметны.
Проведем сплайн-интерполяцию для рассмотренного выше примера.
V:= csort (V,0)
Этапы записи таблицы в виде матрицы и сортировки аналогичны кусочно-линейной интерполяции.
Далее записываем:
S:=
Открываем встроенные функции f(x) и в разделе «категория функций» выбираем «интерполяция», а в разделе «имя функции» - «cspline». После щелчка по клавише «ОК» появится
S:=cspline( , )
Вводим под знак cspline аргумент Х и функцию Y.
S:=cspline(X, Y)
Далее записываем:
W(x):=
Открываем встроенные функции f(x) и в разделе «категория функций» выбираем «интерполяция», а в разделе «имя функции» - «interp». После щелчка по клавише «ОК» появляется:
W(x):= interp( , , , ),
куда последовательно под знак функции вводятся обозначения S,X,Y,x.
W(x):= interp(S, X, Y, x).
Далее по правилам построения графиков строим в декартовой системе координат график функции W(x)= f(x) (Рис. 6.38).
Рис.6.38 График функции W(x)= f(x)
Экстраполяция
В математике экстраполяцией называется предсказание поведения некоторой зависимости по имеющимся измерениям ее характеристики в определенной, иногда довольно узкой области.
В MathCAD экстраполяция основывается на анализе поведения зависимости в нескольких точках.
Функцией, реализующей алгоритм линейной экстраполяции является встроенная функция
predict (y, m, n),
где y – вектор эмпирических значений экстраполируемой характеристики по оси ординат. Особенность алгоритма, используемого функцией, заключается в том, что экстраполяцию он делает только на основании y-координат выборки при постоянном шаге по оси абсцисс;
m– количество ближайших к правой границе выборки точек, на основании которых проводится экстраполяция;
n – количество точек в просчитываемом векторе прогноза.
При помощи функции «predict» можно проводить довольно эффективную экстраполяцию непрерывных, периодических или осциллирующих функций в относительно неширокой области.
Пример:
Предсказать поведение кривой затухающих колебаний.
Для этого зададим вектор из y-координат его 101-ой точкой на промежутке от 0 до 3π. Шаг изменения переменной при определении вектора данных должен быть постоянным. Организуем вектор путем использования ранжированных переменных.
Далее зададим векторы экстраполяции при помощи функции «predict».
Чтобы сравнить степень влияния количества анализируемых точек выборки на качество предсказания, определим три экстраполяционных вектора при различных значениях параметра m. Размерность этих векторов определим, например, 150.
Строим графики векторов приближений (рис. 6.39 ).
Рис. 6.39 Графики векторов приближений
При этом переменная для векторов экстраполяции может быть определена прибавлением к вектору x соответствующей координаты крайнего значения в выборке (3π).
Из анализа графиков можно сказать, что функция «predict» довольно эффективна лишь на небольшом отрезке правой крайней точки выборки, что отсутствует прямая зависимость между обрабатываемым числом точек и точностью информации о продолжаемой кривой.
Успех экстраполяции зависит от типа исследуемой зависимости. Лучше всего удается предсказание поведения парабол, экспоненциальных кривых и несложных периодических функций.
Чем сложнее зависимость, тем короче интервал экстраполяции.
Если в выборке мало точек и шаг между ними велик, то экстраполяция бессмысленна.
Вопросы для самоконтроля
1. Понятие об интерполяции и экстраполяции
2. Понятие о кусочно-линейной интерполяции
3. Способ реализации кусочно-линейной интерполяции в среде MathCAD
4. Понятие о сплайн-интерполяции
5. Способ реализации сплайн-интерполяции в среде MathCAD
Дата добавления: 2017-05-02; просмотров: 1798;