Полиномиальная интерполяция
Функция polyint(vx, vy, x) возвращает интерполированное значение в точке x, полученное с использованием функции полинома и ожидаемой погрешности.
Функция polyint выполняет полиномиальную интерполяцию набора данных длиной N в указанной точке, x, с использованием алгоритма Невилла. Функция находит уникальный полином степени N – 1, который проходит через все точки.
Функция polycoeff(vx, vy) возвращает коэффициенты полинома интерполирующей функции.
Функция polycoeff вычисляет коэффициенты интерполирующего полинома для использования в последующих вычислениях.
Функция polyiter(vx, vy, x, N, e) возвращает интерполированное значение в точке x, полученное с использованием полиномиальной функции с максимальным порядком N и максимальной погрешностью e.
Функция polyiter возвращает вектор, где первый элемент — это флаг "сходимости" (1 — сходится, 0 — не сходится), второй элемент — число итераций, необходимое для достижения указанного допуска, а третий элемент — конечная оценка y, полученная для входной величины x.
Аргументы
vx, vy являются векторами из вещественных значений, имеющими одинаковую длину.
x — значение независимой переменной, для которого требуется рассчитать кривую интерполяции. Для получения наилучших результатов переменная x должна быть в интервале значений vx.
Если входные векторы используют единицы измерения, то у x должны быть те же единицы измерения, что и у vx.
N — максимальное количество итераций. Кроме того, N — это максимальный порядок полиномиальной функции, потому что после каждой итерации степень полинома увеличивается на единицу.
e — входной допуск.
Если входные векторы используют единицы измерения, то у e должны быть те же единицы измерения, что и у vy.
Дополнительные сведения
Интерполяция Айткена-Невилла, используемая в функции polyiter, выполняется аналогично полиномиальной интерполяции, реализованной в функциях polyint и polycoeff. Но поскольку интерполяция выполняется методом последовательных приближений (итераций), в функции polyiter предусмотрена возможность задать входной допуск e и максимальное число итераций N. Выполнение алгоритма останавливается, когда две последние итерации оценки точки данных удовлетворяют допуску e или когда число итераций достигает значения, заданного аргументом N. Интерполяцию с последовательным приближением хорошо использовать, например, при вычислении определенных интегралов с помощью квадратуры Ромберга. Численное интегрирование требует большие вычислительные мощности. Возможность досрочного выхода позволяет сократить время на вычисления в обмен на снижение точности результата. Интерполяция Айткена-Невилла обычно используется для поиска нескольких интерполированных точек с некоторой заданной погрешностью.
Процедуры polyint и polycoeff базируются на polyint (с. 109) и polycoeff (с. 121) из книги "Numerical Recipes in C, The Art of Scientific Computing (Цифровые рецепты в C. Искусство научных расчетов)" (Cambridge University Press), © 1987, 1988 Numerical Recipes Software и используются по лицензии. Процедура polyiter описана в книге McCalla, Thomas Richard (1967). Introduction to Numerical Methods and FORTRAN Programming (Введение в численные методы и программирование на ФОРТРАНе), John Wiley.
Было ли это полезно?