Общий алгоритм анализа устойчивости
Для проверки устойчивости схемы используется метод гармоник (метод фон Неймана):
- Отбросить свободные члены (правые части уравнения).
- Подставить гармонику $u_{j}^{n} = \lambda^{n} e^{i\alpha j}$.
- Выразить $\lambda$ через параметры сетки.
- Применить условие устойчивости: $|\lambda| \leqslant 1$.
Полезное тождество, используемое в каждом примере:
$$
e^{i\alpha} - 2 + e^{-i\alpha} = 2\cos\alpha - 2 = -4\sin^{2}\frac{\alpha}{2}
$$
Явная схема: условие устойчивости
Пример 1.
$$
\frac{\partial u}{\partial t} = 10\frac{\partial^{2} u}{\partial x^{2}} + e^{t} e^{x}, \quad t \in [0,1],\quad x \in [0,1],\quad h = 10^{-1}
$$
$$
u(t{=}0,\, x) = e^{x}, \qquad \frac{\partial u}{\partial x}(t,\, x{=}0) = e^{t}, \qquad \frac{\partial u}{\partial x}(t,\, x{=}1) = e \cdot e^{t}
$$
а) Явная разностная схема:
$$
\frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} = 10\,\frac{u_{j+1}^{n} - 2u_{j}^{n} + u_{j-1}^{n}}{h^{2}} + e^{n\Delta t} \cdot e^{(j-1)h}
$$
Аппроксимация условий:
$$
u_{j}^{0} = e^{(j-1)h}
$$
$$
\frac{u_{2}^{n+1} - u_{1}^{n+1}}{h} = e^{(n+1)\Delta t} \quad \Rightarrow \quad u_{1}^{n+1} = u_{2}^{n+1} - h \cdot e^{(n+1)\Delta t}
$$
$$
\frac{u_{N}^{n+1} - u_{N-1}^{n+1}}{h} = e \cdot e^{(n+1)\Delta t} \quad \Rightarrow \quad u_{N}^{n+1} = u_{N-1}^{n+1} + h \cdot e \cdot e^{(n+1)\Delta t}
$$
б) Анализ устойчивости:
Шаг 1. Отбрасываем свободный член:
$$
\frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} = 10\,\frac{u_{j+1}^{n} - 2u_{j}^{n} + u_{j-1}^{n}}{h^{2}}
$$
Шаг 2. Подставляем $u_{j}^{n} = \lambda^{n} e^{i\alpha j}$:
$$
\frac{\lambda - 1}{\Delta t} = 10\,\frac{e^{i\alpha} - 2 + e^{-i\alpha}}{h^{2}} = \frac{-40\sin^{2}\dfrac{\alpha}{2}}{h^{2}}
$$
$$
\lambda = 1 - \frac{40\,\Delta t}{h^{2}}\sin^{2}\frac{\alpha}{2}
$$
Шаг 3. Условие устойчивости $|\lambda| \leqslant 1$. Правая граница выполняется автоматически. Из левой при $\sin^{2}\dfrac{\alpha}{2} = 1$:
$$
1 - \frac{40\,\Delta t}{h^{2}} \geqslant -1 \quad \Rightarrow \quad \frac{40\,\Delta t}{h^{2}} \leqslant 2 \quad \Rightarrow \quad \Delta t \leqslant \frac{h^{2}}{20}
$$
При $h = 10^{-1}$:
$$
\Delta t \leqslant \frac{10^{-2}}{20} = 5 \cdot 10^{-4}
$$
При уменьшении шага по пространству до $h = 0{,}01$ потребуется $\Delta t \leqslant 5 \cdot 10^{-6}$ — явная схема становится крайне дорогой.
Пример 2.
$$
\frac{\partial u}{\partial t} = 100\frac{\partial^{2} u}{\partial x^{2}} - u + e^{t}, \quad t \in [0,1],\quad x \in [0,1]
$$
$$
u(t{=}0,\, x) = 1, \qquad u(t,\, x{=}0) = e^{t}, \qquad u(t,\, x{=}1) = e^{t+\ln 5{,}1}
$$
Явная разностная схема:
$$
\frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} = 100\,\frac{u_{j+1}^{n} - 2u_{j}^{n} + u_{j-1}^{n}}{h^{2}} - u_{j}^{n} + e^{n\Delta t}
$$
Анализ устойчивости. Отбрасываем $e^{n\Delta t}$, подставляем гармонику:
$$
\frac{\lambda - 1}{\Delta t} = 100\,\frac{-4\sin^{2}\dfrac{\alpha}{2}}{h^{2}} - 1
$$
$$
\lambda = 1 - \frac{400\,\Delta t}{h^{2}}\sin^{2}\frac{\alpha}{2} - \Delta t
$$
Условие $\lambda \geqslant -1$ при $\sin^{2}\dfrac{\alpha}{2} = 1$:
$$
1 - \frac{400\,\Delta t}{h^{2}} - \Delta t \geqslant -1
$$
$$
\Delta t\!\left(\frac{400}{h^{2}} + 1\right) \leqslant 2 \quad \Rightarrow \quad \Delta t \leqslant \frac{2h^{2}}{h^{2} + 400}
$$
При $h = 10^{-2}$:
$$
\Delta t \leqslant \frac{2 \cdot 10^{-4}}{10^{-4} + 400} \approx 5 \cdot 10^{-7}
$$
Неявная схема: безусловная устойчивость
Пример 3.
$$
\frac{\partial u}{\partial t} = 20\frac{\partial^{2} u}{\partial x^{2}} + t^{2} x^{2} + 5, \quad x \in [0,1],\quad t \in [0,T]
$$
$$
u(t{=}0,\, x) = 5, \qquad u(t,\, x{=}0) = 5, \qquad u(t,\, x{=}1) = t^{2} + 5
$$
Неявная разностная схема:
$$
\frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} = 20\,\frac{u_{j+1}^{n+1} - 2u_{j}^{n+1} + u_{j-1}^{n+1}}{h^{2}} + (n\Delta t)^{2}(j-1)^{2}h^{2} + 5
$$
Анализ устойчивости. Подставляем гармонику $u_{j}^{n} = \lambda^{n} e^{i\alpha j}$ в однородную часть:
$$
\frac{\lambda - 1}{\Delta t} = 20\,\frac{\lambda\left(-4\sin^{2}\dfrac{\alpha}{2}\right)}{h^{2}}
$$
$$
\lambda\!\left(1 + \frac{80\,\Delta t}{h^{2}}\sin^{2}\frac{\alpha}{2}\right) = 1 \quad \Rightarrow \quad \lambda = \frac{1}{1 + \dfrac{80\,\Delta t}{h^{2}}\sin^{2}\dfrac{\alpha}{2}}
$$
Знаменатель $\geqslant 1$ при любых $\Delta t > 0$, $h > 0$, поэтому $0 < \lambda \leqslant 1$.
$$
\Rightarrow \quad \textbf{Неявная схема абсолютно устойчива}
$$
Пример 4.
$$
\frac{\partial u}{\partial t} = 4\frac{\partial^{2} u}{\partial x^{2}} - u + 8, \quad x \in [0,1],\quad t \in [0,1]
$$
$$
u(t{=}0,\, x) = 8, \qquad u(t,\, x{=}0) = 0, \qquad u(t,\, x{=}1) = 1
$$
Неявная разностная схема:
$$
\frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} = 4\,\frac{u_{j+1}^{n+1} - 2u_{j}^{n+1} + u_{j-1}^{n+1}}{h^{2}} - u_{j}^{n+1} + 8
$$
Анализ устойчивости. Отбрасываем $8$, подставляем гармонику:
$$
\frac{\lambda - 1}{\Delta t} = 4\,\frac{\lambda\!\left(-4\sin^{2}\dfrac{\alpha}{2}\right)}{h^{2}} - \lambda
$$
$$
\lambda\!\left(1 + \frac{16\,\Delta t}{h^{2}}\sin^{2}\frac{\alpha}{2} + \Delta t\right) = 1
$$
$$
\lambda = \frac{1}{1 + \dfrac{16\,\Delta t}{h^{2}}\sin^{2}\dfrac{\alpha}{2} + \Delta t} < 1
$$
$$
\Rightarrow \quad \textbf{Неявная схема абсолютно устойчива}
$$
Домашнее задание
Записать явную и неявную схемы, проверить устойчивость при $h = 10^{-4}$.
Задача 1.
$$
\frac{\partial u}{\partial t} = 10^{4}\frac{\partial^{2} u}{\partial x^{2}} + t \cdot x
$$
$$
u(t{=}0,\, x) = 0, \qquad \frac{\partial u}{\partial x}(t,\, x{=}0) = t, \qquad \frac{\partial u}{\partial x}(t,\, x{=}1) = t + 1
$$
Задача 2.
$$
\frac{\partial u}{\partial t} = 5\frac{\partial^{2} u}{\partial x^{2}} - 10u + t^{2} + x^{2}
$$
$$
u(t{=}0,\, x) = x^{2}
$$