2018-05-30
Науково-дослідний сайт В'ячеслава Горчіліна
Всі статті
Таблиця алгоритмів чисельних рішень деяких диференціальних рівнянь
Для поліпшення візуального представлення алгоритмів введемо деякі спрощення. Наприклад, \(\dot Y = \frac{dY(x)}{dx}\), а значення функції в точці \(x_i\) будуть записуватися так: \[Y(x_i) = Y_i \quad f(x_i) = f_i \quad g(x_i) = g_i \quad h(x_i) = h_i\] Відстань між точками стандартне і незмінне на всьому інтервалі: \(\Delta x = x_i - x_{i-1}\). Воно вибирається в залежності від вимог розв'язуваної задачі і обчислювальних можливостей процесора. Від нього також залежить і загальне число ітерацій: \i \in 1, 2, 3, ..., N\). Саме значення координати знаходиться просто: \(x_i = i\,\Delta x\). Символами \(a, b, \omega, \alpha\) позначаються константи, а символом \(\mathbf{i}\) — уявна одиниця.

Назва Рівняння Чисельне рішення
Лінійне рівняння Бернуллі \[g(x)\,\dot Y = f(x)\,Y + h(x)\] \[Y_i = {g_i\,Y_{i-1} + h_i\,\Delta x \over g_i - f_i\,\Delta x}, \quad Y_0 = Y(0)\]
Шукана функція знаходиться в показнику експоненти \[\dot Y = f(x) \exp(a\,Y) + h(x)\] \[Y_i = Y_{i-1} + {f_i \exp(a\,Y_{i-1}) + h_i \over 1 + a\,f_i \exp(a\,Y_{i-1}) \Delta x } \Delta x, \quad Y_0 = Y(0)\]
Шукана функція знаходиться під логарифмом \[\dot Y = f(x) \ln(1+a\,Y) + h(x) \\ a\Y \ge 0 \] \[Y_i = Y_{i-1} + \left[ f_i \ln(1+a\,Y_{i-1}) - {a\,f_i\,Y_{i-1} \over 1+a\,Y_{i-1}} + h_i \right] \Delta x \\ a\,Y_i \ge 0, \quad Y_0 = Y(0)\]
Шукана функція знаходиться під синусом \[\dot Y = f(x) \sin(\omega\,Y + \alpha) + h(x)\] \[Y_i = Y_{i-1} + {f_i \sin(A) + h_i \over 1 - f_i\,\omega\cos(A) } \Delta x \\ A = \omega\,Y_{i-1} + \alpha, \quad Y_0 = Y(0)\]
Рівняння з квадратом похідної \[(\dot Y)^2 = f(x)\,Y + h(x)\] \[Y_i = \begin{cases} Y_{i-1} \pm \Delta x \sqrt{A}, & A \ge 0 \\ Y_{i-1} \pm \mathbf{i} \Delta x \sqrt{|A|}, & A \lt 0 \end{cases} \\ A = f_i\,Y_{i-1} + h_i \\ Y_0 = Y(0)\]
Рівняння з квадратним коренем з шуканої функції \[\dot Y = f(x) \sqrt{Y} + h(x)\] \[Y_i = \begin{cases} A + \Delta x\,f_i \sqrt{Y_{i-1}}, & Y_{i-1} \ge 0 \\ A + \mathbf{i}\Delta x\,f_i \sqrt{|Y_{i-1}|}, & Y_{i-1} \lt 0 \end{cases} \\ A = Y_{i-1} + h_i\,\Delta x \\ Y_0 = Y(0)\]
Рівняння Абеля другого роду \[\dot Y\,(Y + a) = f(x)\,Y + g(x) \] \[ Y_i = \begin{cases} A + \sqrt{B}, & A \ge 0, B \ge 0 \\ A + \mathbf{i}\sqrt{|B|}, & A \ge 0, B \lt 0 \\ A \sqrt{B}, & A \lt 0, B \ge 0 \\ A \mathbf{i}\sqrt{|B|}, & A \lt 0, B \lt 0 \end{cases} \\ A = {Y_{i-1} + f_i\,\Delta x - a \over 2} \\ B = A^2 + a\,Y_{i-1} + g_i\,\Delta x \\ Y_0 = Y(0) \]
Звичайне діфф. рівняння другого порядку \[\ddot Y = f(x)\,Y + a\] \[Y_i = {2Y_{i-1} - Y_{i-2} + a\,\Delta x^2 \over 1 - f_i\,\Delta x^2} \\ Y_0 = Y(0), \quad Y_{-1} = Y(0) - \dot Y(0)\,\Delta x\]
Рівняння синус-Гордона. Шукана функція знаходиться під синусом \[\ddot Y = f(x)\,\sin(\omega\,Y + \alpha)\] \[Y_i = Y_{i-1} + {Y_{i-1} - Y_{i-2} + \Delta x^2 f_i \sin(A) \over 1 - \Delta x^2 f_i\,\omega\cos(A) } \\ A = \omega\,Y_{i-1} + \alpha \\ Y_0 = Y(0), \quad Y_{-1} = Y(0) - \dot Y(0)\,\Delta x\]
Якщо в процесі розрахунку виникає уявна складова, то її потрібно буде зберігати в окремій змінної. Найкраще в завданнях, де така складова може з'являтися, відразу розділити можливу дійсну та уявну частини в окремі змінні.
 

© Горчилин В'ячеслав, 2018 р.
* Передрук статті можлива за умови встановлення посилання на цей сайт та додержанням авторських прав

2009-2018 © Vyacheslav Gorchilin