Система MATHCAD: Методические указания к лабораторным работам по курсу «Информатика», страница 7

При линейной интерполяции аппроксимирующая функция соединяет опытные точки отрезками прямых линий. Для этого используется функция

linterp(x,y,t), где x – вектор опытных значений аргумента (в увеличивающемся порядке);

y – вектор опытных значений функции;

t – значение аргумента, при котором вычисляется интерполирующее значение функции (t может быть и массивом значений).

Кубическая сплайн-интерполяция

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

interp(vs,x,y,t), где vs – вектор вторых производных;

x – вектор опытных значений аргумента (в увеличивающемся порядке);

y – вектор опытных значений функции;

t – значение аргумента, при котором вычисляется интерполирующее значение функции.

Вектор vs определяется перед использованием функции interp с помощью одной из следующих функций:

а) lspline(x,y) – создает вектор коэффициентов кривой, которая приближается к прямой линии в граничных точках;

б) pspline(x,y) – создает вектор коэффициентов кривой, которая приближается к квадратичной параболе в граничных точках;

в) cspline(x,y) – создает вектор коэффициентов кривой, которая приближается к кубической параболе в граничных точках;

7.2 Регрессия

Функции регрессии создают кривые с минимальным отклонением от имеющегося набора данных. В отличие от интерполяции эти функции не требуют, чтобы аппроксимирующая кривая проходила через опытные точки.

Функции регрессии делятся на два вида:

1) функции, возвращающие коэффициенты аналитической функции и позволяющие записать аппроксимирующую функцию в явном виде;

2) функции, возвращающие численные результаты в виде таблиц или графиков.

Первая группа функций:

а) expfit(x,y,V) – регрессия экспонентой вида ;

б) sinfit(x,y,V) – регрессия синусоидой вида ;

в) pwrfit(x,y,V) – регрессия степенной зависимостью вида ;

г) lgfit(x,y,V) – регрессия логистической функцией вида ;

д) logfit(x,y,V) – регрессия логарифмической функцией вида ;

е) line(x,y) – регрессия прямой линией вида ;

ж) lnfit(x,y) – регрессия логарифмической функцией вида .

В данных функциях x – вектор значений аргумента (в порядке возрастания); y – вектор значений функции; V – вектор начальных приближений коэффициентов; t – значение аргумента, для которого вычисляется функция (может быть вектором).

С помощью указанных функций формируется вектор коэффициентов и найденные значения подставляются в уравнение кривой.

Вторая группа функций:

а) регрессия с использованием одного полинома (реализуется комбинацией функций регрессии и интерполяции):

interp(s,x,y,t),

regress(x,y,n), где x – вектор значений аргумента, элементы которого расположены в порядке возрастания;

y – вектор значений функции того же размера;

s – вектор коэффициентов для построения аппроксимирующего полинома, создаваемый функцией regress;

t – значение аргумента, при котором вычисляется интерполирующая функция;

n – степень аппроксимирующего полинома (может быть любой).

б) регрессия с использованием нескольких отрезков полинома (реализуется комбинацией встроенных функций регрессии и интерполяции):

interp(s,x,y,t),

loess(x,y,span), где x, y, t – см. выше;

s – вектор коэффициентов для построения аппроксимирующего полинома второй степени, создаваемый функцией loess;

span – параметр (>0), определяющий размер отрезков полинома (на практике 0,2<span<2).

В данных видах регрессий искомая функция определяется с помощью функции interp.

7.3 Экстраполяция

Кроме обработки опытных данных в пределах заданных точек, бывает необходимо оценить значения функции за пределами этих точек, то есть предсказать поведение кривой. В MathCAD есть специальная функция предсказания:

predict(y,m,n), где y – вектор заданных значений, взятых через равные интервалы аргумента;