MathCAD: интерполяция одной формулой
На практике мы редко программируем численные методы в MathCAD, гораздо чаще нам нужно быстро найти готовую формулу, желательно, встроенную в пакет.
Для большинства нужных случаев одномерной и двумерной интерполяции такие решения есть.
Возьмём 2 любых вектора одинаковой размерности, содержащих значения Xi
и Y(Xi)
соответственно:
Определение исходных данных для задачи интерполяции
Нумерация элементов векторов и матриц для удобства установлена со значения 1
вместо стандартного 0
.
Для N
точек на плоскости построить регрессию порядка M
, 0<M<N
, можно, создав простую функцию вида
r(x):=interp(regress(X,Y,4),X,Y,x)
Функция считает значение полинома степенной регрессии в заданной точке x
малое.
Если вместо 4
поставить 1
- получится МНК первого порядка (сглаживание точек прямой линией), при значении 2 построится кусочек параболы, а при максимально допустимом для 5 точек значении порядка регрессии 4 мы построили кривую, совпадающую и с каноническим степенным полиномом, и с полиномом Лагранжа.
В последних версиях MathCAD значение интерполяционного полинома степени N-1
в точке x
малое можно вычислить и функцией
p(x):=polyint(X,Y,x)
Неудобство лишь в том, что p(x)
будет возвращать вектор из двух элементов (обратите внимание, что выводится на график значение p(x)1
). Зато во втором элементе сразу будет "лежать" погрешность в точке вычисления.
На практике высокие степени полиномов обычно не нужны, если мы хотим провести гладкую и дифференцируемую кривую через известные точки, обычно хорошим решением оказывается интерполяционный сплайн 3 порядка, значение которого в точке x
малое можно вычислить функцией
s(x):=interp(lspline(X,Y),X,Y,x)
На каждом интервале [Xi,Xi+1]
такой сплайн представляется функцией от третьей степени x
и является гладкой дважды дифференцируемой кривой.
Вот реализация всех трёх формул и график:
Реализация стандартных формул интерполяции в MathCAD
Скачать этот пример в формате .xmcd (MathCAD 14/15) (31 Кб)
Далее показан скриншот соответствующего расчёта в Mathcad Prime 7 и прикреплён документ этой линейки Mathcad.
Интерполяционный полином, Кубический интерполяционный сплайн, МНК в Mathcad Prime 7
Скачать этот пример в архиве .zip с файлом .mcdx (Mathcad Prime 7 и выше) (15 Кб)
13.06.2014, 11:01 [24165 просмотров]