Аппроксимация и интерполяция в 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)