Аппроксимация и интерполяция в MathCad

Интерполяция использует значения некоторой функции, заданные в ряде точек, чтобы предсказать значения функции между ними. В MathCAD можно соединять точки данных прямыми линиями (линейная интерполяция) или соединять их отрезками кубического полинома (кубическая сплайн-интерполяция).

Функции интерполяции определяют кривую, точно проходящую через заданные точки. Из-за этого результат очень чувствителен к ошибкам данных. Кроме того, каждый элемент массива, который используется в любой из функций, описанных в этом разделе, содержит определенное значение. Поскольку MathCAD присваивает значение 0 любым элементам, которые явно не определены.

Для построения интерполяции в MathCAD имеются несколько встроенных функций, позволяющих "соединить" точки выборки данных (xi,yi) кривой разной степени гладкости. По определению, интерполяция означает построение функции D(х), аппроксимирующей зависимость у(х) в промежуточных точках. Поэтому интерполяцию еще по-другому называют аппроксимацией. В точках xi значения интерполяционной функции должны совпадать с исходными данными, т. е. A(xi)=y(xi).

Самый простой вид интерполяции - линейная, которая представляет искомую зависимость А(х) в виде ломаной линии. Интерполирующая функция А(х) состоит из отрезков прямых.

В MathCAD для построения линейной интерполяции служит встроенная функция

linterp(х, у, t),

где

х - вектор действительных данных аргумента;

у - вектор действительных данных значений того же размера;

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

Элементы вектора х должны быть определены в порядке возрастания, т. е. Х1<Х2<Х3<. . . <XN.

Для проведения кубической сплайн-интерполяции MathCAD предлагается три встроенные функции (VX, VY – вектора узловых точек):

-cspline(VX, VY) – возвращает вектор вторых производных (VK) при приближении в опорных точках к кубическому полиному;

-pspline(VX, VY) – возвращает вектор вторых производных (VK) при приближении в опорных точках к параболической кривой;

-lspline(VX, VY) – возвращает вектор вторых производных (VK) при приближении в опорных точках к прямой.

Интерполирующая функция строится с помощью стандартной функции interp, имеющей следующий общий вид:

interp(VK,VX, VY, x),

где

VK – вектор вторых производных сплайна в опорных точках;

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

MathCAD позволяет проводить линейную регрессию общего вида, в которой аппроксимирующая функция задается линейной комбинацией функций, причем сами функции fi(x) могут быть нелинейными:

 
 


(1.3)

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

linfit(VX, VY, F),

где

VX, VY – координаты исходных точек;

F - вектор, содержащий функции fi(x) , записанные в символьном виде.

Функция linfit еще называется функцией аппроксимации по методу наименьших квадратов.

Результатом работы функцииlinfit является вектор коэффициентов К, при котором среднеквадратичная погрешность приближения исходных точек с координатами VX, VY, минимальна.

Вектор VX должен быть возрастающим.

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

Для этого используется встроенная функцияgenfit,имеющая следующий общий вид:

genfit(VX,VY,VS,F),

где

VS -вектор, который задает начальные приближения элементов вектора K, рассчитываемых итерационным способом;

F -вектор, который содержит искомую функцию и ее частные производные по параметрам Ki в аналитическом виде:

 
 


 

(1.4)