БлогNot. Кусочно-линейная интерполяция в MathCAD

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

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

Реализуем данный расчёт в MathCAD, задав абсциссы и ординаты известных точек векторами X и Y соответственно. Предположим при этом, что одинаковых значений среди Xi нет, и они уже упорядочены по возрастанию. Если это не так, добавьте решение из этой записи блога.

Подпрограмма PieceLinear по заданным векторам значений X и Y вычисляет значение кусочно-линейной функции в точке x малое. Учитывается, что x может совпасть с одним из узлов или оказаться меньше (больше) диапазона известных значений X.

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

Вторая подпрограмма, используя первую, строит таблицу значений кусочно-линейной функции в заданных пределах изменения x с заданным шагом. На выходе подпрограммы - матрица, в первом столбце которой записаны значения x, а во втором y.

Таблица значений кусочно-линейной функции
Таблица значений кусочно-линейной функции

По этим данным можно, например, построить график, добавить на него исходные точки и убедиться, что всё "линеаризовано" верно.

График векторов исходных данных и построенной кусочно-линейной функции
График векторов исходных данных и построенной кусочно-линейной функции

 Скачать в формате .XMCD пример: Кусочно-линейная интерполяция в MathCAD (50 Кб)

P.S. Если нужен "не алгоритм, а только результат", обратите внимание на стандартную функцию linterp, аппроксимирующую данные векторов х и у кусочно-линейной зависимостью.

24.09.2013, 14:04 [17872 просмотра]


теги: программирование mathcad

К этой статье пока нет комментариев, Ваш будет первым