Интерполяция применяется для решения уравнений вида
. (2.17)
Если в области корня уравнения (2.17) вычислить его левую часть (n +1)точке и результаты поместить в табл. 2.1, то для определения корня можно поменять местами столбцы таблицы и с помощью одного из алгоритмов интерполяции найти значение аргумента х, при котором функция f(x) принимает значение . Нахождение значений аргумента x по заданным значениям функции называется обратной интерполяцией.
Значение корня, найденное с помощью обратной интерполяции, будет приближенным за счет погрешности интерполяции. Для его уточнения необходимо организовать итерационный процесс, на каждом шаге которого узел, где величина принимает наибольшее значение, заменяется найденным приближением к корню. Критерием окончания итераций будет выполнение одного из условий
,
где хк— приближение к корню на k-й итерации; — заданная погрешность определения корня; — предельная величина невязки.
Обычно при решении уравнений методом обратной интерполяции выбирают фиксированное и сравнительно небольшое количество узлов. Если выбрать два узла, то получим алгоритм, полностью совпадающий с методом секущих.
Рассмотрим случай трех узлов. При этом левая часть решаемого уравнения аппроксимируется полиномом второй степени и алгоритм называется методом парабол. Итак, пусть известны три начальных приближения к корню x0,x1 и . Вычислим значения левой части уравнений в этих точках и . По полученным данным построим интерполяционный полином Ньютона второй степени:
.
Для простоты полагаем , тогда, приравнивая полином к нулю, получим квадратное уравнение для определения очередного приближения к корню уравнения.
Введем обозначение тогда , и квадратное уравнение принимает вид
где
.
Из двух корней последнего уравнения относительно zвыбираем минимальный по модулю, затем вычислим величины.
На следующей итерации полином строим по точкам Окончание итерационного процесса наступит, когда выполнится одно из условий
Основное время при решении уравнений методом парабол затрачивается на вычисление левой части уравнений f(x). Можно составить программу таким образом, что функция f(x) вычисляется три раза только на первой итерации, а на последующей итерации лишь один раз, информация о значении функции в двух других узлах сохраняется от предыдущей итерации.