YaChudo

Лінійний багатокроковий метод

Переглядів: 0. Оновлено 08.11.2026.

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

В однокрокових методах для обчислення значення уn+1 використовується значения тільки уn і для підвищення точності при фіксованому кроці необхідно проводити обчислення великої кількості допоміжних величин. Це є причиною того, що для багатьох задач застосування формул Рунге-Кутти неможливе внаслідок надто великого обсягу обчислень. Тому часто раціональніше переходити до багатокрокових методів, які дають можливість, використовуючи значення f(xi,yi), що обчислені на попередніх кроках, отримати прийнятну точність. Серед k-крокових методів найчастіше використовують методи інтегрування на сітці з постійним кроком, які називаються скінченно-різницевими схемами. Розглянемо загальне диференційне рівняння (1)
∫ D f ( x → ) d x → ≈ ∑ i = 1 N ω i f ( x → i ) {\displaystyle \int \limits _{D}f({\vec {x}})d{\vec {x}}\approx \sum _{i=1}^{N}\omega _{i}f({\vec {x}}^{i})}

Припустимо, що вже відомі розв'язки на множині значень Хi (і=0,1,. . .,п). Тобто можна записати рівняння (2):

y ( x n + 1 ) = y n + ∫ x n x n + 1 f ( t , y ( t ) ) d t {\displaystyle 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 ) {\displaystyle 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})} на сітці хп, xn-1, xn-2 ,...

При цьому f ( x , y ) ≡ 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 ) {\displaystyle 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 = ∇ k f n k ! h k {\displaystyle a_{k}={\frac {\nabla ^{k}f_{n}}{k!h^{k}}}} і Rm(x) - похибка інтерполяції, яка і буде визначати похибку отриманих нижче формул. Нагадаємо, що ∇ k f n {\displaystyle \nabla ^{k}f_{n}} — скінченні ліві різниці k-го порядку функції f(x,y) в точці хn. Підставивши в (2) праву частину (1) і знехтувавши оцінкою похибки, отримаємо

∫ x n x n + 1 f ( t , y ( t ) ) d t ≈ ∑ k = 0 m ∇ k f n k ! h k ∫ x n x n + 1 ( t − x n ) . . . ( t − x n − k + 1 ) d t {\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}

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

k = 0 , ∫ x n x n + 1 d t = h {\displaystyle k=0,\int _{x_{n}}^{x_{n+1}}dt=h}
k = 1 , ∫ x n x n + 1 ( t − x n ) d t = h 2 2 {\displaystyle k=1,\int _{x_{n}}^{x_{n+1}}(t-x_{n})dt={\frac {h^{2}}{2}}}
k = 2 , ∫ x n x n + 1 ( t − x n ) ( t − x n − 1 ) d t = 5 6 h 3 {\displaystyle 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 + 1 2 ∇ f n + 5 12 ∇ 2 f n + 3 8 ∇ 3 f n + 251 720 ∇ 4 f n + . . . ] {\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}+...]}

де порядок точності методу збігається з кількістю доданків у квадратних дужках. На практиці, для користування цією формулою залежно від порядку точності, необхідно знати відповідну початкову послідовність значень fi (а значить і yi) у вузлах Хi. Для їх обчислення зазвичай використовують однокроковий метод (наприклад Рунге-Кутти) в початкових точках поблизу x0, а потім переходять до використання формули Адамса.

Приклади

Розглянемо такий приклад

y ′ = y , y ( 0 ) = 1. {\displaystyle y'=y,\quad y(0)=1.}

Точним розв'язком є y ( t ) = e t {\displaystyle y(t)=\mathrm {e} ^{t}} .

Однокроковий Ейлер

Простим чисельним методом є метод Ейлера:

y n + 1 = y n + h f ( t n , y n ) . {\displaystyle y_{n+1}=y_{n}+hf(t_{n},y_{n}).\,}

Метод Ейлера можна розглядати як вироджений в однокроковий багатокроковий метод.

Цей метод, застосований з кроком розміру h = 1 2 {\displaystyle h={\tfrac {1}{2}}} на проблемі y ′ = y {\displaystyle y'=y} , дає такі висліди:

y 1 = y 0 + h f ( t 0 , y 0 ) = 1 + 1 2 ⋅ 1 = 1.5 , y 2 = y 1 + h f ( t 1 , y 1 ) = 1.5 + 1 2 ⋅ 1.5 = 2.25 , y 3 = y 2 + h f ( t 2 , y 2 ) = 2.25 + 1 2 ⋅ 2.25 = 3.375 , y 4 = y 3 + h f ( t 3 , y 3 ) = 3.375 + 1 2 ⋅ 3.375 = 5.0625. {\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}}}

Двокроковий метод Адамса-Бешфорта

Метод Ейлер однокроковий. Простий багатокроковий метод це двокроковий метод Адамса-Бешфорта (англ. Adams–Bashforth method)

y n + 2 = y n + 1 + 3 2 h f ( t n + 1 , y n + 1 ) − 1 2 h f ( t n , y n ) . {\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}).}

Цей метод для отримання наступного значення, y n + 2 {\displaystyle y_{n+2}} , потребує два значення, y n + 1 {\displaystyle y_{n+1}} і y n {\displaystyle y_{n}} . Однак, задача з початковим значенням надає лише одне, y 0 = 1 {\displaystyle y_{0}=1} . Один з підходів полягає у використанні y 1 {\displaystyle y_{1}} обчисленого методом Ейлера як другого значення. З таким вибором, метод Адамса-Бешфорта видає (округлено до чотирьох цифр):

y 2 = y 1 + 3 2 h f ( t 1 , y 1 ) − 1 2 h f ( t 0 , y 0 ) = 1.5 + 3 2 ⋅ 1 2 ⋅ 1.5 − 1 2 ⋅ 1 2 ⋅ 1 = 2.375 , y 3 = y 2 + 3 2 h f ( t 2 , y 2 ) − 1 2 h f ( t 1 , y 1 ) = 2.375 + 3 2 ⋅ 1 2 ⋅ 2.375 − 1 2 ⋅ 1 2 ⋅ 1.5 = 3.7812 , y 4 = y 3 + 3 2 h f ( t 3 , y 3 ) − 1 2 h f ( t 2 , y 2 ) = 3.7812 + 3 2 ⋅ 1 2 ⋅ 3.7812 − 1 2 ⋅ 1 2 ⋅ 2.375 = 6.0234. {\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}}}

Точний розв'язок при t = t 4 = 2 {\displaystyle t=t_{4}=2} є e 2 = 7.3891 … {\displaystyle \mathrm {e} ^{2}=7.3891\ldots } , отже двокроковий метод Адамса-Бешфорта точніший ніж метод Ейлера. Це завжди виконується якщо крок достатньо малий.

Див. також

Джерела

Джерело: стаття у Вікіпедії та історія редагувань (автори).