БлогNot. Полином Ньютона для неравноотстоящих узлов в MathCAD

Полином Ньютона для неравноотстоящих узлов в MathCAD

Интерполяционный многочлен Ньютона, записанный для неравноотстоящих узлов, в сущности, является многочленом Лагранжа, представленным в другой форме:

Формула многочлена Ньютона для неравноотстоящих узлов
Формула многочлена Ньютона для неравноотстоящих узлов

Смысл такого подхода к расчёту состоит в том, что при добавлении к данным нового узла формула многочлена удлиняется только на 1 слагаемое, так что не приходится все расчёты выполнять заново. Впрочем, если мы реализуем данный расчёт "в лоб", и не вручную, а с помощью MathCAD, то пусть себе считает заново :)

Итак, заданы векторы X и Y, содержащие исходные данные - координаты точек {Xi,Yi}. Сначала нужно построить матрицу разделённых разностей, её размерность будет на 1 меньше, чем количество точек:

Матрица разделённых разностей для полинома Ньютона
Матрица разделённых разностей для полинома Ньютона

После этого можно написать подпрограмму для вычисления значения полинома Ньютона в точке x малое (MathCAD, как и C++, соблюдает регистр символов в именах переменных).

Вычисление полинома Ньютона в точке x
Вычисление полинома Ньютона в точке x

Теперь с помощью этой подпрограммы нетрудно посчитать значение полинома в любом количестве нужных точек. Возьмём для примера весь диапазон изменения значений исходного вектора X большое и пройдём его с шагом, равным 0.01. Подпрограмма сформирует матрицу, в первом столбце которой будут записаны значения аргумента, а во втором - вычисленные значения полинома.

Вычисление полинома Ньютона на множестве узлов
Вычисление полинома Ньютона на множестве узлов

Осталось нарисовать картинку, в приложенном документе она есть.

 Скачать пример в формате .XMCD - полином Ньютона для неравноотстоящих узлов (102 Кб)

04.07.2013, 17:40 [31795 просмотров]


теги: алгоритм mathcad

показать комментарии (1)