БлогNot. MathCAD: Полином Лагранжа и исключение "повторяющихся" строк из матрицы

MathCAD: Полином Лагранжа и исключение "повторяющихся" строк из матрицы

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

На практике узлы интерполяции (точки, в которых нам известны значения X) могут оказаться не равноотстоящими, а среди значений X могут попасться одинаковые. Приложенный пример пытается решить эти проблемы, строя по N точкам {Xi,Yi} интерполяционный полином (N-1)-го порядка в форме Лагранжа.

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

Вот основная часть документа на скриншоте и сам документ для скачивания:

Полином Лагранжа в MathCAD
Полином Лагранжа в MathCAD

 Скачать полином Лагранжа для произвольных узлов интерполяции в формате .XMCD (72 Кб)

В документ также добавлен график, иллюстрирующий полученное решение.

Если среди значений X могут попадаться одинаковые, их следует исключить. Тогда вместо стандартной сортировки с помощью встроенного метода csort мы могли бы применить, например, такое решение:

Удаление строк матрицы, содержащих повторяющиеся значения в заданном столбце
Удаление строк матрицы, содержащих повторяющиеся значения в заданном столбце

 Исключить одинаковые значения из k-го столбца матрицы и "сжать" матрицу, удалив соответствующие строки, формат .XMCD (27 Кб)

Здесь в выходной матрице подпрограммы сохраняется только первая строка с уникальным значением в k-ом столбце, остальные удаляются. Напоминаю, что в MathCAD нумерация с нуля, поэтому на скриншоте удалены "дубли" по второму столбцу исходной матрицы R.

01.07.2013, 15:39 [40996 просмотров]


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

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