🎨
Цвет акцента
Синий
Фиолетовый
Пурпурный
Учебник · Глава 12

Решение обыкновенных дифференциальных уравнений первого порядка.

4. Семейство методов Рунге-Кутта второго порядка.

     Заменим в выражении для k2 (12.7) коэффициенты при \(\displaystyle \tau\) неизвестными параметрами \(\displaystyle \beta_{21}, \alpha_2\):

  \(\displaystyle k_1 = f(t^n, u^n) = f^n; \quad k_2 = f(t^n + \alpha_2 \tau, \ u^n + \beta_{21} \tau k_1).\)
Разностную схему для уравнения (12.1) представим в виде:
  \(\displaystyle \frac{u^{n+1} - u^n}{\tau} = \gamma_1 k_1 + \gamma_2 k_2 .\)
Тогда решение на (n + 1)-ом шаге по времени будет определяться рекуррентным соотношением:
  \(\displaystyle u^{n+1} = u^n + \gamma_1 \tau k_1 + \gamma_2 \tau k_2 .\) (12.8)
     Разложим функцию k2 в ряд Тейлора:
  \(\displaystyle k_2 = f^n + \left. \frac{\partial f}{\partial t} \right|^n \alpha_2 \tau + \left. \frac{\partial f}{\partial u} \right|^n \beta_{21} \tau f^n + O(\tau^2).\)
Подставим данное выражение в рекуррентное соотношение (12.8):
  \(\displaystyle u^{n+1} = u^n + \gamma_1 \tau f^n + \gamma_2 \tau f^n + \left. \frac{\partial f}{\partial t} \right|^n \gamma_2 \alpha_2 \tau^2 + \left. \frac{\partial f}{\partial u} \right|^n \gamma_2 \beta_{21} \tau^2 f^n + O(\tau^3).\) (12.9)
     Разложим функцию \(\displaystyle u^{n+1}\) в ряд Тейлора:
  \(\displaystyle u^{n+1} = u^n + \left. \frac{du}{dt} \right|^n \tau + \frac{1}{2} \left. \frac{d^2 u}{dt^2} \right|^n \tau^2 + O(\tau^3).\)
Данная формула с учётом равенств
  \(\displaystyle \left. \frac{du}{dt} \right|^n = f(t^n, u^n) = f^n, \quad \frac{d^2 u}{dt^2} = \frac{d}{dt} \left[ \frac{du}{dt} \right] = \frac{d}{dt} f(t, u) = \frac{\partial f}{\partial t} + \frac{\partial f}{\partial u} \frac{du}{dt} = \frac{\partial f}{\partial t} + \frac{\partial f}{\partial u} f(t, u), \quad \left. \frac{d^2 u}{dt^2} \right|^n = \left. \frac{\partial f}{\partial t} \right|^n + \left. \frac{\partial f}{\partial u} \right|^n f^n\)
примет следующий вид:
  \(\displaystyle u^{n+1} = u^n + \tau f^n + \frac{1}{2} \left. \frac{\partial f}{\partial t} \right|^n \tau^2 + \frac{1}{2} \left. \frac{\partial f}{\partial u} \right|^n \tau^2 f^n + O(\tau^3).\) (12.10)
     Сравнивая соотношения (12.9) и (12.10), получаем следующую систему уравнений:
  \(\displaystyle \begin{cases} \gamma_1 \tau f^n + \gamma_2 \tau f^n = \tau f^n \\ \left. \dfrac{\partial f}{\partial t} \right|^n \gamma_2 \alpha_2 \tau^2 = \dfrac{1}{2} \left. \dfrac{\partial f}{\partial t} \right|^n \tau^2 \\ \left. \dfrac{\partial f}{\partial u} \right|^n \gamma_2 \beta_{21} \tau^2 f^n = \dfrac{1}{2} \left. \dfrac{\partial f}{\partial u} \right|^n \tau^2 f^n \end{cases} \quad \Rightarrow \quad \begin{cases} \gamma_1 + \gamma_2 = 1 \\ \gamma_2 \alpha_2 = \dfrac{1}{2} \\ \gamma_2 \beta_{21} = \dfrac{1}{2} \end{cases}\) (12.11)
Система (12.11) состоит из трёх уравнений с четырьмя неизвестными, поэтому она не может иметь однозначного решения. Для определения значений неизвестных параметров необходимо задать значение одного из них (обычно задают значение параметра \(\displaystyle \alpha_2\)); тогда значения остальных параметров можно определить из уравнений системы (12.11):
  \(\displaystyle \beta_{21} = \alpha_2, \qquad \gamma_1 = 1 - \frac{1}{2\alpha_2}, \qquad \gamma_2 = \frac{1}{2\alpha_2}.\)
По этой причине принято говорить не о методе Рунге-Кутта второго порядка, а о семействе методов Рунге-Кутта второго порядка, поскольку в зависимости от выбранного значения параметра \(\displaystyle \alpha_2\) мы получим тот или иной вид рекуррентного соотношения (12.8).
     На практике используются, как правило, два случая:
  \(\displaystyle 1. \ \alpha_2 = 0{,}5, \quad \beta_{21} = 0{,}5, \quad \gamma_1 = 0, \quad \gamma_2 = 1, \quad k_1 = f(t^n, u^n), \quad k_2 = f(t^n + 0{,}5\tau, \ u^n + 0{,}5\tau k_1), \quad \frac{u^{n+1} - u^n}{\tau} = k_2, \quad u^{n+1} = u^n + \tau k_2;\)
  \(\displaystyle 2. \ \alpha_2 = 1, \quad \beta_{21} = 1, \quad \gamma_1 = 0{,}5, \quad \gamma_2 = 0{,}5, \quad k_1 = f(t^n, u^n), \quad k_2 = f(t^n + \tau, \ u^n + \tau k_1), \quad \frac{u^{n+1} - u^n}{\tau} = \frac{1}{2}(k_1 + k_2), \quad u^{n+1} = u^n + \frac{\tau}{2}(k_1 + k_2).\)
Видно, что первый случай совпадает с методом Рунге-Кутта второго порядка, рассмотренным в предыдущем разделе.