Интерполяция – ключевой инструмент для приближенного вычисления значений функции на основе ограниченного набора данных в численных методах. В задачах, где функция задана множеством точек, а вычисления необходимо произвести в точках отличных от заданных, или когда функция задана аналитически, но слишком трудна для вычисления по формуле, интерполяционные формулы широко применяются для аппроксимации функций и получения приближенных значений.
В данной статье будет рассмотрено сравнении двух распространенных интерполяционных формул: Лагранжа и Ньютона, а также проведен сравнительный анализ точности обоих методов, скорости выполнения, а также их преимущества и недостатки.
Алгоритмы вычисления интерполяционных формул Лагранжа и Ньютона будут реализованы в программах, написанных на языке программирования С++.
На основе полученных результатов можно будет сделать выводы о том, какой метод, формула Лагранжа или формула Ньютона, более предпочтительный в различных ситуациях. Это может помочь ученым, инженерам и другим специалистам в выборе наиболее подходящего метода интерполяции для своих конкретных задач.
Формула интерполяционного многочлена Лагранжа имеет вид:
(1)
где – многочлен Лагранжа
(2)
Тогда
, при (3)
Числитель и знаменатель не включают в себя значение , чтобы результат не был равен нулю.
В полном виде формула Лагранжа будет иметь следующий вид:
(4)
Рис. 1. Реализация интерполяционной формулы Лагранжа на языке C++
Интерполяционный многочлен, предложенный Ньютоном, используется в случае равностоящих узлов:
, (5)
где h – шаг интерполяции.
Первая интерполяционная формула Ньютона (Прямое интерполирование Ньютона) имеет вид:
, (6)
где – табличные разности n-ого порядка.
Данная формула используется для интерполяции в начале таблицы.
Вторая интерполяционная формула Ньютона (Обратное интерполирование Ньютона) имеет вид:
(7)
Данная формула используется для интерполяции в конце таблицы и для ее продолжения.
Рис. 2. Реализация интерполяционных формул Ньютона на языке C++
Работа программы будет оцениваться на примере функции заданной в табличном виде:
x |
0,64 |
1,29 |
2,59 |
2,96 |
3,93 |
4,27 |
4,38 |
4,8 |
6,33 |
y |
2,74 |
2,96 |
3,68 |
4,46 |
5,22 |
6,52 |
7,43 |
7,85 |
8,02 |
Необходимо найти интерполяционный многочлен в точке
Рис. 3. Входные данные для программы
Рис. 4. Результат работы программы
Исходя из результатов работы программы можно сделать вывод о том, что алгоритм вычисления интерполяционного многочлена по формуле Лагранжа выполняется во много раз быстрее, чем с помощью формул Ньютона. В то же время при нескольких запусках программы можно заметить, что прямая и обратная интерполяция по формулам Ньютона занимает приблизительно одинаковое время. При этом точность алгоритмов находится на одном уровне.
Список литературы:
В.И. Ракитин, В.Е. Первушин – Практическое руководство по методам вычислений с приложением программ для персональных компьютеров: Учеб. пособие. – М.: Высш. шк., 1998 г. 383c.
Пименов, В. Г. Численные методы в 2 ч. Ч. 1: учебное пособие для вузов / В. Г. Пименов. — Москва : Издательство Юрайт, 2022. — 111 с. — (Высшее образование).
Бельхеева, Р. К. Вычислительные методы в примерах: учеб. пособие / Р. К. Бельхеева, С. П. Шарый ; Новосиб. гос. ун-т. — Новосибирск : ИПЦ НГУ, 2022. — 90 с.