Метод Адамса — група методів чисельного інтегрування звичайних диференційних рівнянь, які дозволяють обчислювати таблицю наближених значень розв'язку за даними в початкових точках.
В однокрокових методах для обчислення значення уn+1 використовується значения тільки уn і для підвищення точності при фіксованому кроці необхідно проводити обчислення великої кількості допоміжних величин. Це є причиною того, що для багатьох задач застосування формул Рунге-Кутти неможливе внаслідок надто великого обсягу обчислень. Тому часто раціональніше переходити до багатокрокових методів, які дають можливість, використовуючи значення f(xi,yi), що обчислені на попередніх кроках, отримати прийнятну точність.
Серед k-крокових методів найчастіше використовують методи інтегрування на сітці з постійним кроком, які називаються скінченно-різницевими схемами. Розглянемо загальне диференційне рівняння (1)
Припустимо, що вже відомі розв'язки на множині значень Хi (і=0,1,. . .,п). Тобто можна записати рівняння (2):
![{\displaystyle y(x_{n+1})=y_{n}+\int _{x_{n}}^{x_{n+1}}f(t,y(t))dt}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8ae6ff64eff1b316e9c6a2552cb20be8fb51434f)
При обчисленні інтеграла в правій частині цього виразу підінтегральну функцію замінимо на інтерполяційний многочлен Ньютона для інтерполяції назад
на сітці хп, xn-1, xn-2 ,...
При цьому
де
і Rm(x) - похибка інтерполяції, яка і буде визначати похибку
отриманих нижче формул. Нагадаємо, що
— скінченні ліві різниці k-го порядку функції f(x,y) в точці хn. Підставивши в (2) праву частину (1) і знехтувавши оцінкою похибки, отримаємо
![{\displaystyle \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}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8fc7a8c39839986576484119c2e16ab4c02770d5)
Обчислимо декілька перших інтегралів:
![{\displaystyle k=0,\int _{x_{n}}^{x_{n+1}}dt=h}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f4bd6ccdff7d6cef9f51d671adcbd2a5baaef0e0)
![{\displaystyle k=1,\int _{x_{n}}^{x_{n+1}}(t-x_{n})dt={\frac {h^{2}}{2}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/152098a7e5070dc9b5568762993bec3132ae8e0d)
![{\displaystyle k=2,\int _{x_{n}}^{x_{n+1}}(t-x_{n})(t-x_{n-1})dt={\frac {5}{6}}h^{3}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f00eb4cd638430b33247efe08da399985e70b0dd)
У результаті отримаємо формулу Адамса
![{\displaystyle 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}+...]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c19fb54a8279715f60035fd2d101ece27676f3a1)
де порядок точності методу збігається з кількістю доданків у квадратних дужках.
На практиці, для користування цією формулою залежно від порядку точності, необхідно знати відповідну початкову послідовність значень fi (а значить і yi) у вузлах Хi. Для їх обчислення зазвичай використовують однокроковий метод (наприклад Рунге-Кутти) в початкових точках поблизу x0, а потім переходять до використання формули Адамса.
Розглянемо такий приклад
![{\displaystyle y'=y,\quad y(0)=1.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5ebd692b57415d17d211275c464993e38f47a648)
Точним розв'язком є
.
Простим чисельним методом є метод Ейлера:
![{\displaystyle y_{n+1}=y_{n}+hf(t_{n},y_{n}).\,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6602dfb4d17640c13141993f3fc7af55515f31c6)
Метод Ейлера можна розглядати як вироджений в однокроковий багатокроковий метод.
Цей метод, застосований з кроком розміру
на проблемі
, дає такі висліди:
![{\displaystyle {\begin{aligned}y_{1}&=y_{0}+hf(t_{0},y_{0})=1+{\tfrac {1}{2}}\cdot 1=1.5,\\y_{2}&=y_{1}+hf(t_{1},y_{1})=1.5+{\tfrac {1}{2}}\cdot 1.5=2.25,\\y_{3}&=y_{2}+hf(t_{2},y_{2})=2.25+{\tfrac {1}{2}}\cdot 2.25=3.375,\\y_{4}&=y_{3}+hf(t_{3},y_{3})=3.375+{\tfrac {1}{2}}\cdot 3.375=5.0625.\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/132c126b51a063e7e99e572e5b2e2e76a02c1198)
Метод Ейлер однокроковий. Простий багатокроковий метод це двокроковий метод Адамса-Бешфорта (англ. Adams–Bashforth method)
![{\displaystyle y_{n+2}=y_{n+1}+{\tfrac {3}{2}}hf(t_{n+1},y_{n+1})-{\tfrac {1}{2}}hf(t_{n},y_{n}).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e7c19f4ef1a113146a6c50f5e32e6f4b07765c4d)
Цей метод для отримання наступного значення,
, потребує два значення,
і
. Однак, задача з початковим значенням надає лише одне,
. Один з підходів полягає у використанні
обчисленого методом Ейлера як другого значення. З таким вибором, метод Адамса-Бешфорта видає (округлено до чотирьох цифр):
![{\displaystyle {\begin{aligned}y_{2}&=y_{1}+{\tfrac {3}{2}}hf(t_{1},y_{1})-{\tfrac {1}{2}}hf(t_{0},y_{0})=1.5+{\tfrac {3}{2}}\cdot {\tfrac {1}{2}}\cdot 1.5-{\tfrac {1}{2}}\cdot {\tfrac {1}{2}}\cdot 1=2.375,\\y_{3}&=y_{2}+{\tfrac {3}{2}}hf(t_{2},y_{2})-{\tfrac {1}{2}}hf(t_{1},y_{1})=2.375+{\tfrac {3}{2}}\cdot {\tfrac {1}{2}}\cdot 2.375-{\tfrac {1}{2}}\cdot {\tfrac {1}{2}}\cdot 1.5=3.7812,\\y_{4}&=y_{3}+{\tfrac {3}{2}}hf(t_{3},y_{3})-{\tfrac {1}{2}}hf(t_{2},y_{2})=3.7812+{\tfrac {3}{2}}\cdot {\tfrac {1}{2}}\cdot 3.7812-{\tfrac {1}{2}}\cdot {\tfrac {1}{2}}\cdot 2.375=6.0234.\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e32f7ffa638e950e2123e0d1233b46ee7ad866fb)
Точний розв'язок при
є
, отже двокроковий метод Адамса-Бешфорта точніший ніж метод Ейлера. Це завжди виконується якщо крок достатньо малий.