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

УрЧП 1-го порядка: устойчивость и алгоритм решения

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

Семинар 6


Пример 1

$$ \frac{\partial u}{\partial t} + 2\,\frac{\partial u}{\partial x} = -e^{t} + x, \quad h = 10^{-1}, \quad \Delta t - ? $$

Начальное условие (НУ): $u(t=0,\, x) = x$

Левое граничное условие (ЛГУ): $u(t,\, x=0) = e^{t}$

Задание:

  1. Явная схема левой разностью
  2. Устойчивость
  3. Найти максимальный шаг $\Delta t$
  4. Записать блок-схему алгоритма и рекуррентную формулу

1) Явная схема (левая разность)

Однородное уравнение для анализа устойчивости:

$$ \frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} + 2\,\frac{u_{j}^{n} - u_{j-1}^{n}}{h} = 0 $$


2) Устойчивость

Подставляем гармонику $u_{j}^{n} = \lambda^{n} \cdot e^{ikj}$:

$$ \frac{\lambda^{n+1} e^{ikj} - \lambda^{n} e^{ikj}}{\Delta t} + 2\,\frac{\lambda^{n} e^{ikj} - \lambda^{n} e^{ik(j-1)}}{h} = 0 \quad \Bigg/ \lambda^{n} e^{ikj} $$

$$ \frac{\lambda - 1}{\Delta t} + 2\,\frac{1 - e^{-ik}}{h} = 0 $$

$$ \lambda - 1 + \frac{2\Delta t}{h} - \frac{2\Delta t}{h}\cdot e^{-ik} = 0 $$

$$ \lambda = 1 - \frac{2\Delta t}{h} + \frac{2\Delta t}{h}\cdot e^{-ik} $$

Делаем замену $\left[\dfrac{2\Delta t}{h} = r\right]$ и исследуем три случая: $r < 1$, $r = 1$, $r > 1$.

$$ \lambda = (1 - r) + r\cdot e^{-ik} \tag{1} $$

Условие устойчивости: $|\lambda| \leq 1$ — $\lambda$ расположены внутри или на границе круга радиуса 1 с центром в начале координат.

Числа $\lambda$ лежат на комплексной плоскости на окружности с центром в точке $(1-r)$ и радиусом $\left|r \cdot e^{-ik}\right| = r$.

  1. При $r < 1$ — маленькая окружность внутри большой.
  2. При $r = 1$ — окружности совпадают; $\lambda = r \cdot e^{-ik}$.
  3. При $r > 1$ — не вся большая окружность лежит внутри малой $\Rightarrow$ условно устойчива.
[Рисунок: три случая расположения окружностей на комплексной плоскости. Единичная окружность $R=1$ с центром в $O$; малая окружность радиуса $r$ с центром в точке $(1-r)$ на вещественной оси. Случай 1 ($r<1$): малая окружность целиком внутри единичной. Случай 2 ($r=1$): окружности совпадают. Случай 3 ($r>1$): малая окружность частично выходит за единичную — отмечен знак «+».]

3) Максимальный шаг $\Delta t$

Условие устойчивости: $r \leq 1$, то есть

$$ \frac{2\Delta t}{h} \leq 1 \quad \Rightarrow \quad \Delta t \leq \frac{h}{2} $$

При $h = 10^{-1}$:

$$ \Delta t = 0{,}5 \cdot 10^{-1} = 0{,}05 $$


4) Рекуррентная формула и блок-схема

Полная схема с правой частью:

$$ \frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} + 2\,\frac{u_{j}^{n} - u_{j-1}^{n}}{h} = -e^{n\Delta t} + (j-1)h $$

$$ u_{j}^{n+1} = u_{j}^{n} - \frac{2\Delta t}{h}\cdot\bigl(u_{j}^{n} - u_{j-1}^{n}\bigr) + \Bigl[{-e^{n\Delta t} + (j-1)h}\Bigr]\cdot\Delta t $$

Начальное условие: $u_{j}^{0} = (j-1)h$ (НУ)

Левое граничное условие: $u_{1}^{n+1} = e^{(n+1)\Delta t}$ (ЛГУ)

[Рисунок: блок-схема алгоритма. Овал «Начало» → прямоугольник «Задание начальных условий: $u_{j}^{0} = (j-1)\cdot h$, цикл по $j=1,\; j \leq N_x,\; j{++}$» → прямоугольник «$n = 0$» → ромб «$n < N_t$?»: ветвь «нет» → овал «Конец»; ветвь «да» → прямоугольник «Цикл for $j=2,\; j \leq N_x,\; j{++}$: $u_{j}^{n+1} = u_{j}^{n} - \dfrac{2\Delta t}{h}\cdot(u_{j}^{n} - u_{j-1}^{n}) + \bigl[-e^{n\Delta t} + (j-1)h\bigr]\cdot\Delta t$» → прямоугольник «$u_{1}^{n+1} = e^{(n+1)\Delta t}$ (ЛГУ)» → прямоугольник «$n = n + 1$» → возврат к ромбу.]

Пример 2

$$ \frac{\partial u}{\partial t} - 6\,\frac{\partial u}{\partial x} = 2tx, \quad h = 10^{-1} $$

НУ: $u(t=0,\, x) = 0$

ПГУ: $u(t,\, x=1) = t$

Задание:

  1. Явная схема правой конечной разностью
  2. Проверить устойчивость

1) Явная схема (правая разность)

Однородное уравнение:

$$ \frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} - 6\,\frac{u_{j+1}^{n} - u_{j}^{n}}{h} = 0 $$


2) Устойчивость

$$ \boxed{u_{j}^{n} = \lambda^{n} \cdot e^{ikj}} $$

$$ \frac{\lambda^{n+1} e^{ikj} - \lambda^{n} e^{ikj}}{\Delta t} - 6\,\frac{\lambda^{n} e^{ik(j+1)} - \lambda^{n} e^{ikj}}{h} = 0 \quad \Bigg/ \lambda^{n} e^{ikj} $$

$$ \frac{\lambda - 1}{\Delta t} - 6\,\frac{e^{ik} - 1}{h} = 0 $$

$$ \lambda - 1 - \frac{6\Delta t}{h}\cdot(e^{ik} - 1) = 0 $$

$$ \lambda = 1 - \frac{6\Delta t}{h} + \frac{6\Delta t}{h}\cdot e^{ik} $$

Делаем замену $\left[\dfrac{6\Delta t}{h} = r\right]$, исследуем: $r < 1$, $r = 1$, $r > 1$.

$$ \lambda = 1 - r + r\cdot e^{ik} $$

$|\lambda| \leq 1$ — числа $\lambda$ лежат на комплексной плоскости на окружности с центром в точке $(1-r)$ и радиусом $\left|r \cdot e^{ik}\right| = r$.

  1. При $r < 1$ — лежит внутри окружности.
  2. При $r = 1$ — лежит на окружности.
  3. При $r > 1$ — лежит вне окружности.
[Рисунок: три случая на комплексной плоскости. Единичная окружность $R=1$; малая окружность радиуса $r$ с центром в $(1-r)$. Случай 1 ($r<1$): малая целиком внутри единичной. Случай 2 ($r=1$): окружности касаются. Случай 3 ($r>1$): малая окружность выходит за единичную.]

Условие устойчивости: $r \leq 1$, то есть

$$ \frac{6\Delta t}{h} \leq 1 \quad \Rightarrow \quad \Delta t \leq \frac{h}{6} $$


Пример 3

$$ \frac{\partial u}{\partial t} + 7\,\frac{\partial u}{\partial x} = e^{x} + e^{t} $$

НУ: $u(t=0,\, x) = e^{x}$

ЛГУ: $u(t,\, x=0) = e^{t}$

ПГУ: $u(t,\, x=1) = e^{t+2{,}7}$ (приближённо: $e^{t} \cdot e \approx e^{t+1}$, точнее $e^{t+2{,}7}$ [неразборчиво])

Задание:

  1. Записать неявную схему, выбрав конечную разность
  2. Устойчивость

1) Неявная схема (левая конечная разность)

$$ \frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} + 7\,\frac{u_{j}^{n+1} - u_{j-1}^{n+1}}{h} = e^{(n+1)\Delta t} + e^{(j-1)h} $$


2) Устойчивость

$$ u_{j}^{n} = \lambda^{n} \cdot e^{ikj} $$

Подставляем в однородное уравнение:

$$ \frac{\lambda - 1}{\Delta t} + 7\,\frac{\lambda - \lambda \cdot e^{-ik}}{h} = 0 $$

$$ \lambda - 1 + \frac{7\Delta t}{h}\cdot\lambda\,(1 - e^{-ik}) = 0 $$

$$ \lambda\!\left[1 + \frac{7\Delta t}{h} - \frac{7\Delta t}{h}\cdot e^{-ik}\right] = 1 $$

Делаем замену $\left[\dfrac{7\Delta t}{h} = r\right]$.

Тогда:

$$ \lambda = \frac{1}{1 + r - r\cdot e^{-ik}} $$

Делаем замену $b = 1 + r - r\cdot e^{-ik}$, тогда:

$$ \lambda = \frac{1}{b}, \quad |\lambda| \leq 1 \quad \Leftrightarrow \quad \left|\frac{1}{b}\right| \leq 1 \quad \Bigg/ \cdot |b| $$

$$ 1 \leq |b| $$

Собственные числа $\lambda$ должны лежать вне окружности или на ней.

Числа $b$ лежат на окружности с центром в точке $(1+r)$ и радиусом $\left|-r\cdot e^{-ik}\right| = r$.

[Рисунок: комплексная плоскость. Единичная окружность $R=1$ с центром в $O$; малая окружность радиуса $r$ с центром в точке $(1+r)$ на вещественной оси — правее единичной окружности.]

При $r < 1$, $r = 1$, $r > 1$ — всегда вне окружности $\Rightarrow$ схема абсолютно устойчива.


Пример 4

$$ \frac{\partial u}{\partial t} - 5\,\frac{\partial u}{\partial x} = x^{2} + t^{3/2} $$

НУ: $u(t=0,\, x) = x^{2}$

ПГУ: $u(t,\, x=1) = t^{3}$ (правое)

Задание:

  1. Неявная схема правой разностью
  2. Устойчивость

1) Неявная схема (правая разность)

$$ \frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} - 5\,\frac{u_{j+1}^{n+1} - u_{j}^{n+1}}{h} = (j-1)h^{2} + \bigl((n+1)\Delta t\bigr)^{3/2} $$

НУ: $u_{j}^{0} = \bigl[(j-1)h\bigr]^{2}$

ПГУ: $u_{N}^{n+1} = \bigl[(n+1)\Delta t\bigr]^{3}$


2) Устойчивость

Однородное уравнение:

$$ \frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} - 5\,\frac{u_{j+1}^{n+1} - u_{j}^{n+1}}{h} = 0 $$

Подставляем $u_{j}^{n} = \lambda^{n} \cdot e^{ikj}$:

$$ \frac{\lambda^{n+1} e^{ikj} - \lambda^{n} e^{ikj}}{\Delta t} - 5\,\frac{\lambda^{n+1} e^{ik(j+1)} - \lambda^{n+1} e^{ikj}}{h} = 0 \quad \Bigg/ \lambda^{n} e^{ikj} $$

$$ \frac{\lambda - 1}{\Delta t} - 5\cdot\frac{\lambda\cdot e^{ik} - \lambda}{h} = 0 $$

$$ \lambda\!\left[1 + \frac{5\Delta t}{h} - \frac{5\Delta t}{h}\cdot e^{ik}\right] = 1 $$

Обозначим $\dfrac{5\Delta t}{h} = r$:

$$ \lambda = \frac{1}{1 + r - r\cdot e^{ik}} = \frac{1}{b} $$

$$ b = 1 + r - r\cdot e^{ik} $$

$$ |b| = \bigl|(1+r) - r\cdot e^{ik}\bigr| $$

Числа $b$ лежат на окружности с центром в точке $(1+r)$ и радиусом $\left|-r\cdot e^{ik}\right| = r$.

[Рисунок: комплексная плоскость. Единичная окружность $R=1$; малая окружность радиуса $r$ с центром в $(1+r)$. Малая окружность частично перекрывает единичную.]

$$ |b| \geq 1 \quad \Rightarrow \quad |\lambda| \leq 1 \quad \Rightarrow \quad \textbf{абсолютно устойчива} $$


Рекуррентная формула (из схемы):

$$ u_{j}^{n+1} = \frac{\dfrac{5\Delta t}{h}}{1 + \dfrac{5\Delta t}{h}}\cdot u_{j+1}^{n+1} + \frac{u_{j}^{n} + \Delta t\!\left[(j-1)h^{2} + (n+1)\Delta t^{3/2}\right]}{1 + \dfrac{5\Delta t}{h}} \tag{1} $$


[Рисунок: блок-схема алгоритма. Овал «Начало» → прямоугольник «Задание нач. условий: $u_{j}^{0} = [(j-1)h]^{2}$, цикл по $j=1,\; j \leq N_x,\; j{++}$» → прямоугольник «$n = 0$» → ромб «$n < N_t$?»: ветвь «нет» → овал «Конец»; ветвь «да» → прямоугольник «$u_{N}^{n+1} = [(n+1)\Delta t]^{3}$ (ПГУ)» → прямоугольник «Цикл по $j = N_x{-}1,\; j \geq 1,\; j{-}{-}$ (справа налево): $u_{j}^{n+1} = \dfrac{5\Delta t/h}{1 + 5\Delta t/h}\cdot u_{j+1}^{n+1} + \dfrac{u_{j}^{n} + \Delta t\!\left[(j-1)h^{2} + (n+1)\Delta t^{3/2}\right]}{1 + 5\Delta t/h}$» → прямоугольник «$n = n + 1$» → возврат к ромбу.]

Пример 5. Выбор неверной конечной разности — явная схема

Уравнение из Примера 1 (та же задача):

$$ \frac{\partial u}{\partial t} + 2\,\frac{\partial u}{\partial x} = -e^{t} + x $$

Схема устойчива при аппроксимации $2\,\dfrac{\partial u}{\partial x}$ левой конечной разностью. Выберем правую и проверим устойчивость.


1) Явная схема (правая разность)

$$ \frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} + 2\,\frac{u_{j+1}^{n} - u_{j}^{n}}{h} = 0 $$


2) Устойчивость

$$ u_{j}^{n} = \lambda^{n} \cdot e^{ikj} $$

$$ \frac{\lambda^{n+1} e^{ikj} - \lambda^{n} e^{ikj}}{\Delta t} + 2\,\frac{\lambda^{n} e^{ik(j+1)} - \lambda^{n} e^{ikj}}{h} = 0 \quad \Bigg/ \lambda^{n} e^{ikj} $$

$$ \frac{\lambda - 1}{\Delta t} + 2\,\frac{e^{ik} - 1}{h} = 0 $$

$$ \lambda = 1 + \frac{2\Delta t}{h} - \frac{2\Delta t}{h}\cdot e^{ik} $$

Делаем замену $\left[\dfrac{2\Delta t}{h} = r\right]$.

$$ \lambda = \underbrace{1 + r}_{\text{центр}} - r\cdot e^{ik} $$

Собственные числа $\lambda$ находятся на окружности с центром $1+r$ и радиусом $r$.

[Рисунок: три случая на комплексной плоскости. Единичная окружность $R=1$; окружность радиуса $r$ с центром в $(1+r)$ (правее единицы). Случай 1 ($r<1$): окружность частично внутри единичной (заштрихована область пересечения). Случай 2 ($r=1$): два круга одинакового радиуса, центр второго в точке 2 — пересекаются. Случай 3 ($r>1$): окружность ещё правее — также пересекает единичную.]

Во всех трёх случаях собственные числа $\lambda$ находятся вне окружности $\Rightarrow$ условие устойчивости $|\lambda| \leq 1$ не выполняется, и схема неустойчива.


Домашнее задание

Задача 1.

$$ \frac{\partial u}{\partial t} - 10\,\frac{\partial u}{\partial x} = e^{x} + t, \quad x \in [0;\,1], \quad h = 10^{-3} $$

$$ u(t=0,\, x) = e^{x}, \quad u(t,\, x=1) = t + 2{,}7 $$

  1. Записать явную схему, выбрав конечную разность
  2. Проверить на устойчивость
  3. Найти $\Delta t$
  4. Записать блок-схему

Задача 2.

$$ \frac{\partial u}{\partial t} - 10\,\frac{\partial u}{\partial x} = e^{x} + t $$

  1. Записать неявную схему, выбрав конечную разность
  2. Проверить на устойчивость
  3. Записать блок-схему

Постскриптум: в Примере 4 правая часть содержит показатель $t^{3/2}$; ПГУ записана как $u(t, x=1) = t^{3}$ — степень могла быть $3/2$ или $3$, сохранено как в оригинале ($t^3$ у ПГУ, $t^{3/2}$ у правой части).


Блок-схемы алгоритмов

Кликните по схеме, чтобы открыть в полном размере. Все схемы курса собраны на странице «Блок-схемы».

Явная схема, правая разность: алгоритм
Явная схема, правая разность: алгоритм
Явная схема, левая разность: алгоритм
Явная схема, левая разность: алгоритм
Неявная схема, правая разность: алгоритм
Неявная схема, правая разность: алгоритм
Неявная схема, левая разность: алгоритм
Неявная схема, левая разность: алгоритм

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

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

  1. [неразборчиво] в ПГУ Примера 3. Правое граничное условие Примера 3 помечено [неразборчиво]: u(t,x=1) записано как e^{t+2,7}, хотя по контексту (e^t·e) ожидается e^{t+1}. Нужно уточнить у преподавателя верное значение показателя (t+1 или t+2,7).
  2. Степень t^{3/2} или t^{3} в Примере 4. Постскриптум отмечает: в Примере 4 правая часть содержит t^{3/2}, а ПГУ записано как u(t,x=1)=t^{3}. Степени рассогласованы (3/2 в правой части и 3 в ГУ); стоит уточнить, какая степень верна и должны ли они совпадать.
  3. Формулировка устойчивости случая r>1 в Примере 1. В Примере 1 для случая r>1 текст говорит «условно устойчива», тогда как итоговое условие устойчивости там r≤1 (то есть при r>1 схема неустойчива). Формулировка про r>1 кажется неточной — стоит уточнить.