Алгоритм Невилла
В математике алгоритм Невилла — это алгоритм, используемый для полиномиальной интерполяции , который был выведен математиком Эриком Гарольдом Невиллом в 1934 году. Для заданных n + 1 точек существует уникальный многочлен степени ≤ n , который проходит через данные точки. Алгоритм Невилла оценивает этот полином.
Алгоритм Невилла основан на форме Ньютона интерполяционного полинома и рекурсивном соотношении для разделенных разностей . Он похож на алгоритм Эйткена (названный в честь Александра Эйткена ), который в настоящее время не используется.
Алгоритм
[ редактировать ]Учитывая набор из n +1 точек данных ( x i , y i ), где нет двух x i одинаковых , интерполяционный полином представляет собой полином p степени не выше n со свойством
- p ( x i ) = y i для всех i = 0,..., n
Этот многочлен существует и он единственный. Алгоритм Невилла оценивает полином в некоторой точке x .
Пусть p i , j обозначают многочлен степени j − i , который проходит через точки ( x k , y k ) для k = i , i + 1, ..., j . p i , j удовлетворяют рекуррентному соотношению
Это повторение можно вычислить п 0, п ( х ), какова искомая ценность. Это алгоритм Невилла.
Например, для n = 4 можно использовать рекурсию, чтобы заполнить треугольную таблицу ниже слева направо.
Этот процесс дает р 0,4 ( х ), значение полинома, проходящего через n + 1 точку данных ( x i , y i ) в точке x .
Этот алгоритм требует O ( n 2 ) операции с плавающей запятой для интерполяции одной точки и O ( n 3 ) операции с плавающей запятой для интерполяции полинома степени n.
Производная полинома может быть получена тем же способом, т.е.:
Приложение к численному дифференцированию
[ редактировать ]Лайнесс и Молер показали в 1966 году, что, используя неопределенные коэффициенты для полиномов в алгоритме Невилла, можно вычислить разложение Маклорена окончательного интерполяционного полинома, что дает численные аппроксимации для производных функции в начале координат. Хотя «этот процесс требует большего количества арифметических операций, чем требуется в методах конечных разностей», «выбор точек для вычисления функции никак не ограничивается». Они также показывают, что их метод можно применять непосредственно к решению линейных систем типа Вандермонда.
Ссылки
[ редактировать ]- Пресс, Уильям; Саул Теукольский; Уильям Веттерлинг; Брайан Флэннери (1992). «§3.1 Полиномиальная интерполяция и экстраполяция (зашифровано)» (PDF) . Численные рецепты в C. Искусство научных вычислений (2-е изд.). Издательство Кембриджского университета. ISBN 978-0-521-43108-8 . (ссылка плохая)
- Дж. Н. Лайнесс и К. Б. Молер, Системы Ван дер Монда и числовое дифференцирование, Numerische Mathematics 8 (1966) 458-464 ( doi: 10.1007/BF02166671 )
- Невилл, Э.Х.: Итеративная интерполяция. Дж. Индийская математика. Сок.20, 87–120 (1934)