🎨
Цвет акцента
Синий
Фиолетовый
Пурпурный
С0. Типы уравнений, граничные условия, обезразмеривание С1. Обезразмеривание уравнений, типы уравнений С2. Аппроксимация, граничные условия, явная схема С3. Устойчивость явной и неявной схем С4. Алгоритм решения явной и неявной схем С5. Алгоритм решения схемы Кранка-Николсона С6. УрЧП 1-го порядка: устойчивость и алгоритм решения С7. Параболические уравнения с конвективным членом С8. Двумерные уравнения: явная схема и метод расщепления С9. Двумерные уравнения: переменные направления, предиктор-корректор
Семинар 8

Двумерные уравнения: явная схема и метод расщепления

PDF: оригинал конспекта
!4 расхождения — уточнить у преподавателя

Условие устойчивости явной схемы

$$ \Delta t \leq \frac{h^2}{2\sigma} $$

$$ \frac{\Delta t}{h^2} \leq \frac{1}{2\sigma} \quad \text{— для одномерного случая} $$

Для двумерного:

$$ \frac{\Delta t}{h_x^2} + \frac{\Delta t}{h_y^2} \leq \frac{1}{2\sigma} \qquad \text{или} \qquad \Delta t \leq \frac{1}{\dfrac{2\sigma}{h_x^2} + \dfrac{2\sigma}{h_y^2}} $$

Если $h_x = h_y = h$, то:

$$ \frac{\Delta t}{h^2} \leq \frac{1}{4\sigma} $$


Порядок аппроксимации

$O(\Delta t,\, h_x^2,\, h_y^2)$ — для уравнения $\dfrac{\partial u}{\partial t} = \dfrac{\partial^2 u}{\partial x^2} + \dfrac{\partial^2 u}{\partial y^2}$

$O(\Delta t,\, h_x^2,\, h_y)$ — для уравнения $\dfrac{\partial u}{\partial t} + \dfrac{\partial u}{\partial y} = \dfrac{\partial^2 u}{\partial x^2} + \dfrac{\partial^2 u}{\partial y^2}$


Пример 1. (Явная схема)

$$ \frac{\partial u}{\partial t} = \frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} + 1 + u, \qquad u = u(t, x, y) $$

Начальное и граничные условия:

$$ u(t{=}0,\, x, y) = xy $$

$$ \begin{cases} u(t,\, x{=}0,\, y) = y \\ u(t,\, x{=}1,\, y) = y + 1 \end{cases} $$

$$ \begin{cases} u(t,\, x,\, y{=}0) = x \\ u(t,\, x,\, y{=}1) = x + 1 \end{cases} $$

Разностная схема:

$$ \frac{U_{j,k}^{n+1} - U_{j,k}^{n}}{\Delta t} = \frac{U_{j+1,k}^{n} - 2U_{j,k}^{n} + U_{j-1,k}^{n}}{h_x^2} + \frac{U_{j,k+1}^{n} - 2U_{j,k}^{n} + U_{j,k-1}^{n}}{h_y^2} + 1 + U_{j,k}^{n} $$

$$ U_{j,k}^{n+1} = U_{j,k}^{n} + \left[\lambda_{xx}^{n} + \lambda_{yy}^{n} + 1 + U_{j,k}^{n}\right] \Delta t $$

Начальное условие (Н.У.):

$$ U_{j,k}^{0} = 0 $$

Граничные условия на новом слое:

  • ПГУ по $x$: $\quad U_{1,k}^{n+1} = (k-1)\, h_y$
  • ПГУ по $x$: $\quad U_{N_x,k}^{n+1} = (k-1)\, h_y + 1$
  • ПГУ по $y$: $\quad U_{j,1}^{n+1} = (j-1)\, h_x$
  • ПГУ по $y$: $\quad U_{j,N_y}^{n+1} = (j-1)\, h_x + 1$

Блок-схема

[Рисунок: блок-схема явной схемы. Овал — начало. Прямоугольник: $n = 0$. Прямоугольник с вложенными циклами: цикл по $k = [1;\, N_y]$, внутри цикл по $j = [1;\, N_x]$, внутри $U_{j,k}^{0} = 0$ — начальные условия. Ромб: $n < N_t$; ветвь «нет» ведёт к концу; ветвь «да» ведёт вниз. Прямоугольник: ПГУ по $x$; ПГУ по $x$; ПГУ по $y$; ПГУ по $y$. Прямоугольник с вложенными циклами: цикл по $k = [2;\, N_y{-}1]$, внутри цикл по $j = [2;\, N_x{-}1]$, внутри $U_{j,k}^{n+1} = U_{j,k}^{n} + \left[\lambda_{xx}^{n} + \lambda_{yy}^{n} + 1 + U_{j,k}^{n}\right]\Delta t$. Прямоугольник: $n{+}{+}$. Стрелка возврата к ромбу.]

Пример 2. (Метод расщепления — метод дробных шагов)

$$ \frac{\partial u}{\partial t} + \frac{\partial u}{\partial y} = 0{,}7\left(\frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2}\right) + 1 $$

Начальные и граничные условия:

$$ u(t{=}0,\, x, y) = xy $$

$$ \begin{cases} u(t,\, x{=}0,\, y) = t \\ u(t,\, x{=}1,\, y) = t + y \end{cases} $$

$$ \begin{cases} \dfrac{\partial u}{\partial y}(t,\, x,\, y{=}0) = x \\[6pt] \dfrac{\partial u}{\partial y}(t,\, x,\, y{=}1) = x \end{cases} $$

Схема расщепляется на два подшага:

① $\quad$

$$ \frac{U_{j,k}^{n+1/2} - U_{j,k}^{n}}{\Delta t} + \frac{U_{j,k}^{n+1/2} - U_{j-1,k}^{n+1/2}}{h_x} = 0{,}7\,\frac{U_{j+1,k}^{n+1/2} - 2U_{j,k}^{n+1/2} + U_{j-1,k}^{n+1/2}}{h_x^2} + 1 $$

② $\quad$

$$ \frac{U_{j,k}^{n+1} - U_{j,k}^{n+1/2}}{\Delta t} = 0{,}7\,\frac{U_{j,k+1}^{n+1} - 2U_{j,k}^{n+1} + U_{j,k-1}^{n+1}}{h_y^2} $$

Порядок аппроксимации: $O(\Delta t,\, h_x,\, h_y^2)$


Подшаг 1. Приведение к виду для прогонки

$$ U_{j+1,k}^{n+1/2}\left[\frac{-0{,}7\,\Delta t}{h_x^2}\right] + U_{j,k}^{n+1/2}\left[1 + \frac{1{,}4\,\Delta t}{h_x^2} + \frac{\Delta t}{h_x}\right] + U_{j-1,k}^{n+1/2}\left[\frac{-\Delta t}{h_x} - \frac{0{,}7\,\Delta t}{h_x^2}\right] = U_{j,k}^{n} + 1 $$

$$ a_j \qquad\qquad\qquad\qquad\qquad b_j \qquad\qquad\qquad c_j $$

Условие диагонального преобладания: $|a_j| + |c_j| \leq |b_j| \quad \checkmark$

ПГУ по $x$ — $\alpha_1,\, \beta_1$:

$$ U_{1,k}^{n+1/2} = (n + \tfrac{1}{2})\,\Delta t \quad \Rightarrow \quad \alpha_1 = 0, \quad \beta_1 = (n + \tfrac{1}{6})\,\Delta t $$

ПГУ по $x$ — $U_{N_x,k}^{n+1/2}$:

$$ U_{N_x,k}^{n+1/2} = (n + \tfrac{1}{2})\,\Delta t + (k-1)\,h_y $$


Подшаг 2. Приведение к виду для прогонки

$$ U_{j,k+1}^{n+1}\left[\frac{-0{,}7\,\Delta t}{h_y^2}\right] + U_{j,k}^{n+1}\left[1 + \frac{1{,}4\,\Delta t}{h_y^2}\right] + U_{j,k-1}^{n+1}\left[\frac{-0{,}7\,\Delta t}{h_y^2}\right] = U_{j,k}^{n+1/2} $$

$$ a_j \qquad\qquad\qquad b_j \qquad\qquad\qquad c_j $$

Условие диагонального преобладания: $|a_j| + |c_j| \leq |b_j| \quad \checkmark$

ПГУ по $y$ — $\widetilde{\alpha}_1,\, \widetilde{\beta}_1$:

$$ \frac{U_{j,2}^{n+1} - U_{j,1}^{n+1}}{h_y} = (j-1)\,h_x \quad \Rightarrow \quad U_{j,1}^{n+1} = (j-1)\,h_x \cdot h_y + U_{j,2}^{n+1} $$

$$ \widetilde{\alpha}_1 = 1, \qquad \widetilde{\beta}_1 = -h_x h_y (j-1) $$

ПГУ по $y$ — $U_{j,N_y}^{n+1}$:

$$ \frac{U_{j,N_y}^{n+1} - U_{j,N_y-1}^{n+1}}{h_y} = (j-1)\,h_x $$

Из формулы прогонки: $U_{j,N_y-1}^{n+1} = \widetilde{\alpha}_{N_y-1} \cdot U_{j,N_y}^{n+1} + \widetilde{\beta}_{N_y-1}$, подставляя:

$$ U_{j,N_y}^{n+1} - \widetilde{\alpha}_{N_y-1}\cdot U_{j,N_y}^{n+1} - \widetilde{\beta}_{N_y-1} = (j-1)\,h_x \cdot h_y $$

$$ U_{j,N_y}^{n+1}\left[1 - \widetilde{\alpha}_{N_y-1}\right] = (j-1)\,h_x \cdot h_y + \widetilde{\beta}_{N_y-1} $$

$$ U_{j,N_y}^{n+1} = \frac{\widetilde{\beta}_{N_y-1} + (j-1)\,h_x \cdot h_y}{1 - \widetilde{\alpha}_{N_y-1}} $$

! Места, требующие уточнения у преподавателя

Эти места при переносе материалов на сайт вызвали сомнение: возможная опечатка в оригинале, неоднозначное прочтение рукописного конспекта или расхождение между источниками (методичка / семинар). Показать преподавателю — после подтверждения пометки убираются.

  1. Начальное условие U⁰=0 при u(0,x,y)=xy. В Примере 1 начальное условие задано как u(t=0,x,y)=xy, но на сетке записано U_{j,k}^0 = 0. По смыслу должно быть U_{j,k}^0 = (j-1)h_x·(k-1)h_y. Похоже на ошибку транскрибации; стоит уточнить верное начальное условие на сетке.
  2. Все четыре границы помечены «ПГУ по x/y». В Примере 1 все четыре граничных условия (x=0, x=1, y=0, y=1) подписаны как «ПГУ» («ПГУ по x», «ПГУ по y»), без различения левых и правых границ. Скорее всего часть из них — левые граничные условия (ЛГУ); стоит уточнить корректные обозначения.
  3. β₁=(n+1/6)Δt не согласуется с α₁=0. В подшаге 1 Примера 2 граничное условие U_{1,k}=(n+1/2)Δt даёт α₁=0, но β₁ записано как (n+1/6)Δt вместо ожидаемого (n+1/2)Δt. Дробь 1/6 выглядит опиской; стоит уточнить верное значение β₁.
  4. Правая часть подшага 1 без множителя Δt у источника. В подшаге 1 Примера 2 правая часть приведена к виду «= U_{j,k}^n + 1», тогда как свободный член (1) обычно входит с множителем Δt. Стоит уточнить, не потерян ли множитель Δt при свободном члене.