Метод Адамса

Метод Адамса - группа методов численного интегрирования обыкновенных дифференциальных уравнений, которые позволяют вычислять таблицу приближенных значений решения по данным в начальных точках.

В одношаговых методах для вычисления значения в n +1 используется значения только в n и для повышения точности при фиксированном шаге необходимо проводить вычисления большого количества вспомогательных величин. Это является причиной того, что для многих задач применения формул Рунге-Кутты невозможно вследствие слишком большого объема вычислений. Поэтому часто рационально переходить к многошаговых методов, которые дают возможность, используя значение f (x i, y i), вычисленные на предыдущих шагах, получить приемлемую точность. Среди k-шаговых методов чаще всего используют методы интегрирования на сетке с постоянным шагом, которые называются конечно-разностными схемами. Рассмотрим общее дифференциальное уравнение (1)
\ Int \ limits_D f (\ vec x) d \ vec x \ approx \ sum_ {i = 1} ^ N \ omega_i f (\ vec x ^ i)

Предположим, что уже известны решения на множестве значений Х i (i = 0,1, ..., п). То есть можно записать уравнение (2):

y (x_ {n +1}) = y_n + \ int_ {x_n} ^ {x_ {n +1}} f (t, y (t)) dt

При вычислении интеграла в правой части этого выражения подынтегральной функции заменим на интерполяционный многочлен Ньютона для интерполирования назад P_ {n-1} (x) = f (x_n) + f (x_ {n-1}; x_n) (x-x_n) + ... + f (x_1; ...; x_n) (x-x_n ) ... (x-x_1) на сетке х п, x n-1, x n-2,...

При этом f (x, y) \ equiv f (x) = a_0 + a_1 (x-x_n) + a_2 (x-x_n) (x-x_ {n-1}) + ... + a_m (x-x_n). .. (x-x_ {n-m +1}) + R_m (x) где a_k = \ frac {\ nabla ^ k f_n} {k! h ^ k} и R m (x) - погрешность интерполяции, которая i будет определять погрешность полученных ниже формул. Напомним, что \ Nabla ^ k f_n - Конечные левые разницы k-го порядка функции f (x, y) в точке х n. Подставив в (2) правую часть (1) и пренебрегая оценкой погрешности, получим

\ Int_ {x_n} ^ {x_ {n +1}} f (t, y (t)) dt \ approx \ sum_ {k = 0} ^ m \ frac {\ nabla ^ k f_n} {k! h ^ k} \ int_ {x_n} ^ {x_ {n +1}} (t-x_n) ... (t-x_ {n-k +1}) dt

Обсчитаем несколько первых интегралов:

k = 0, \ int_ {x_n} ^ {x_ {n +1}} dt = h
k = 1, \ int_ {x_n} ^ {x_ {n +1}} (t-x_n) dt = \ frac {h ^ 2} {2}
k = 2, \ int_ {x_n} ^ {x_ {n +1}} (t-x_n) (t-x_ {n-1}) dt = \ frac {5} {6} h ^ 3

В результате получим формулу Адамса

y_ {n +1} = y_n + h [f_n + \ frac {1} {2} \ nabla f_n + \ frac {5} {12} \ nabla ^ 2 f_n + \ frac {3} {8} \ nabla ^ 3 f_n + \ frac {251} {720} \ nabla ^ 4 f_n + ...]

где порядок точности метода совпадает с количеством слагаемых в квадратных скобках. На практике, для пользования этой формуле в зависимости от порядка точности, необходимо знать соответствующую начальную последовательность значений f i (а значит и y i) в узлах Х i. Для их вычисления обычно используют одношаговый метод (например Рунге-Кутты) в начальных точках вблизи x 0, а затем переходят к использованию формулы Адамса.


Источники