🎨
Цвет акцента
Синий
Фиолетовый
Пурпурный
Контрольная работа № 2: задачи
Задача 1 Задача 2 Задача 3 Задача 4
← К контрольным
Контрольные · решения

Контрольная работа № 2
подробные решения примерного варианта · двумерные схемы, метод установления

Решения методами курса со ссылками на семинары, разбор вопросов и блок-схемы. Условия и оригинал — на странице «Контрольные».

PDF: Контрольная работа № 2 (оригинал) 📚 Все 5 вариантов Контрольная работа № 2 с решениями →
Задача 1

Для уравнения:

$$ \frac{\partial u}{\partial t} = 0{,}2\,\frac{\partial^2 u}{\partial x^2} + 0{,}5\,\frac{\partial^2 u}{\partial y^2} - 5tu, \qquad \begin{cases} \dfrac{\partial u}{\partial x}(t,\, x=0,\, y) = ty \\[8pt] \dfrac{\partial u}{\partial x}(t,\, x=1,\, y) = 5ty \end{cases} \qquad \begin{cases} u(t,\, x,\, y=0) = tx \\ u(t,\, x,\, y=1) = 2tx \end{cases} \qquad u(t=0,\, x,\, y) = 0 $$

записать схему переменных направлений. Для каждой из подсхем: привести к виду, удобному для использования метода прогонки; проверить сходимость прогонки; записать рекуррентное соотношение; найти $\alpha_1$, $\beta_1$. Записать блок-схему алгоритма.

Решение

Уравнение и условия

$$\frac{\partial u}{\partial t}=0{,}2\,\frac{\partial^2 u}{\partial x^2}+0{,}5\,\frac{\partial^2 u}{\partial y^2}-5tu,$$ $$\frac{\partial u}{\partial x}(t,0,y)=ty,\quad \frac{\partial u}{\partial x}(t,1,y)=5ty,\qquad u(t,x,0)=tx,\quad u(t,x,1)=2tx,\qquad u(t{=}0,x,y)=0.$$

Двумерное параболическое уравнение. $\sigma_x=0{,}2$, $\sigma_y=0{,}5$, реакция $-5tu$. По $x$ — условия 2-го рода (Неймана), по $y$ — 1-го рода (Дирихле). Сетка: $u_{j,k}^n=u(t^n,x_j,y_k)$.

Идея схемы переменных направлений (СПН) (вопрос 15, семинар 9)

Шаг $\Delta t$ делят точкой $t^{n+1/2}$ на две подсхемы. В каждой подсхеме неявен только один оператор (вдоль одного направления) — тогда система трёхдиагональна и решается прогонкой; второй оператор берётся явно. Диффузионные операторы, расщеплённые между подсхемами, входят с множителем $\tfrac{\sigma}{2}$. Обозначим $\Lambda_{xx}u=\dfrac{u_{j+1,k}-2u_{j,k}+u_{j-1,k}}{h_x^2}$, $\Lambda_{yy}u=\dfrac{u_{j,k+1}-2u_{j,k}+u_{j,k-1}}{h_y^2}$.

Подсхема ① ($n\to n+1/2$): неявно по $x$, явно по $y$

$$\frac{u_{j,k}^{n+1/2}-u_{j,k}^{n}}{\Delta t/2}=0{,}2\,\Lambda_{xx}u_{j,k}^{n+1/2}+0{,}5\,\Lambda_{yy}u_{j,k}^{n}-5t^{n+1/2}u_{j,k}^{n+1/2}.$$

Подсхема ② ($n+1/2\to n+1$): неявно по $y$, явно по $x$

$$\frac{u_{j,k}^{n+1}-u_{j,k}^{n+1/2}}{\Delta t/2}=0{,}2\,\Lambda_{xx}u_{j,k}^{n+1/2}+0{,}5\,\Lambda_{yy}u_{j,k}^{n+1}-5t^{n+1}u_{j,k}^{n+1}.$$

Приведение к прогонке (подсхема ①, прогонка по $j$)

Умножаем на $\Delta t/2$, неизвестные слоя $n{+}1/2$ — налево. Получаем трёхдиагональную по $x$ систему $a_j u_{j+1,k}^{n+1/2}+b_j u_{j,k}^{n+1/2}+c_j u_{j-1,k}^{n+1/2}=\xi_{j,k}$:

$$a_j=c_j=-\frac{0{,}2\,\Delta t}{2h_x^2}=-\frac{0{,}1\,\Delta t}{h_x^2},\qquad b_j=1+\frac{0{,}2\,\Delta t}{h_x^2}+\frac{5t^{n+1/2}\Delta t}{2},$$ $$\xi_{j,k}=u_{j,k}^{n}+\frac{0{,}5\,\Delta t}{2}\,\Lambda_{yy}u_{j,k}^{n}.$$

Сходимость прогонки

$$|a_j|+|c_j|=\frac{0{,}2\,\Delta t}{h_x^2}<1+\frac{0{,}2\,\Delta t}{h_x^2}+\frac{5t^{n+1/2}\Delta t}{2}=|b_j|\quad(t\ge0).$$

Выполнено всегда (реакционный член только усиливает диагональ). Для подсхемы ② — то же по $k$ с $\sigma_y=0{,}5$.

Рекуррентное соотношение и $\alpha_1,\beta_1$

$u_{j,k}^{n+1/2}=\alpha_j u_{j+1,k}^{n+1/2}+\beta_j$, $\;\alpha_j=\dfrac{-a_j}{b_j+c_j\alpha_{j-1}}$, $\;\beta_j=\dfrac{\xi_{j,k}-c_j\beta_{j-1}}{b_j+c_j\alpha_{j-1}}$. Левое ГУ по $x$ — 2-го рода: $\dfrac{u_{2,k}-u_{1,k}}{h_x}=t y_k\Rightarrow u_{1,k}=u_{2,k}-h_x t y_k$, откуда стартовые

$$\alpha_1=1,\qquad \beta_1=-h_x\,t\,y_k.$$

Правое ГУ по $x$: $\dfrac{u_{N_x,k}-u_{N_x-1,k}}{h_x}=5ty_k$ даёт $u_{N_x,k}=\dfrac{\beta_{N_x-1}+h_x\,5t y_k}{1-\alpha_{N_x-1}}$. В подсхеме ② по $y$ узлы границ берутся прямо из условий Дирихле $u_{j,0}=tx_j$, $u_{j,N_y}=2tx_j$.

⚠ Блок-схемы алгоритма пока нет. Для метода «Схема переменных направлений (двумерное параболическое)» блок-схема на странице «Блок-схемы» отсутствует — требуется уточнить у преподавателя.
Материалы по теме:
Семинар 9Разбор вопроса 15
Задача 2

Для уравнения:

$$ \frac{\partial u}{\partial t} = 2\,\frac{\partial u}{\partial x} - 0{,}05\,\frac{\partial u}{\partial y}, \qquad \begin{cases} u(t,\, x=0,\, y) = 0 \\ u(t,\, x=1,\, y) = t \end{cases} \qquad \begin{cases} u(t,\, x,\, y=0) = 0 \\ u(t,\, x,\, y=1) = e^{tx} \end{cases} \qquad u(t=0,\, x,\, y) = e^x $$

выбрать соответствующие ему граничные условия; записать неявную разностную схему, используя метод дробных шагов. Для каждой из подсхем записать рекуррентное соотношение. Записать блок-схему алгоритма.

Решение

Уравнение

$$\frac{\partial u}{\partial t}=2\,\frac{\partial u}{\partial x}-0{,}05\,\frac{\partial u}{\partial y},\qquad u(t{=}0,x,y)=e^{x}.$$

1. Тип и канонический вид (вопрос 17)

Только первые производные — двумерное уравнение 1-го порядка (перенос). Приводим к виду $\dfrac{\partial u}{\partial t}+v_1\dfrac{\partial u}{\partial x}+v_2\dfrac{\partial u}{\partial y}=f$:

$$\frac{\partial u}{\partial t}-2\,\frac{\partial u}{\partial x}+0{,}05\,\frac{\partial u}{\partial y}=0\quad\Rightarrow\quad v_1=-2,\;\; v_2=0{,}05,\;\; f=0.$$

2. Выбор граничных условий (вопрос 18)

Для уравнения 1-го порядка нужно по одному ГУ на каждое направление — на входной (по потоку) границе; разность берётся «против потока»:

  • $x$: $v_1=-2<0$ → поток идёт справа налево → ГУ на границе $x{=}1$: $u(t,1,y)=t$; разность правая $\dfrac{u_{j+1,k}-u_{j,k}}{h_x}$;
  • $y$: $v_2=0{,}05>0$ → поток идёт снизу вверх → ГУ на границе $y{=}0$: $u(t,x,0)=0$; разность левая $\dfrac{u_{j,k}-u_{j,k-1}}{h_y}$.

Условия $u(t,0,y)$ и $u(t,x,1)$ — на выходных границах — для схемы не используются (иначе задача переопределена).

3. Неявная схема методом дробных шагов

Шаг $\Delta t$ дробят на два полушага, на каждом неявен один оператор переноса. Подсхема ① ($n\to n+1/2$): неявно по $x$:

$$\frac{u_{j,k}^{n+1/2}-u_{j,k}^{n}}{\Delta t}=2\,\frac{u_{j+1,k}^{n+1/2}-u_{j,k}^{n+1/2}}{h_x}.$$

Подсхема ② ($n+1/2\to n+1$): неявно по $y$:

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

4. Рекуррентные соотношения

Каждая подсхема — двухдиагональная (фигурируют только два узла), решается прямой подстановкой без прогонки. Подсхема ① (обозначим $r_x=\dfrac{2\Delta t}{h_x}$), идём от границы $x{=}1$ ($j=N_x$) к меньшим $j$:

$$(1+r_x)u_{j,k}^{n+1/2}-r_x\,u_{j+1,k}^{n+1/2}=u_{j,k}^{n}\;\Rightarrow\; u_{j,k}^{n+1/2}=\frac{u_{j,k}^{n}+r_x\,u_{j+1,k}^{n+1/2}}{1+r_x}.$$

Подсхема ② ($r_y=\dfrac{0{,}05\,\Delta t}{h_y}$), идём от границы $y{=}0$ ($k=1$) к большим $k$:

$$(1+r_y)u_{j,k}^{n+1}-r_y\,u_{j,k-1}^{n+1}=u_{j,k}^{n+1/2}\;\Rightarrow\; u_{j,k}^{n+1}=\frac{u_{j,k}^{n+1/2}+r_y\,u_{j,k-1}^{n+1}}{1+r_y}.$$

Знаменатели $1+r_x>0$, $1+r_y>0$ — схема устойчива при любых шагах (неявная). Блок-схема — ниже и на странице «Блок-схемы» (расщепление, уравнение 1-го порядка).

Блок-схема алгоритма
Схема расщепления (двумерное уравнение 1-го порядка)
Схема расщепления (двумерное уравнение 1-го порядка) · все блок-схемы →
Задача 3

Привести уравнение:

$$ \frac{du}{dx} + 0{,}3\,\frac{d^2u}{dx^2} = 3x^2, \qquad \frac{du}{dx}(x=0) = 0, \qquad \frac{du}{dx}(x=1) = 1 $$

к виду, удобному для использования метода установления с использованием схемы Кранка-Николсона. Проверить сходимость прогонки. Записать итерационное соотношение. Найти $\alpha_1$, $\beta_1$. Записать условие для окончания итерационного процесса. Записать начальное приближение. Записать блок-схему алгоритма.

Решение

Уравнение

$$\frac{du}{dx}+0{,}3\,\frac{d^2u}{dx^2}=3x^2,\qquad \frac{du}{dx}(0)=0,\quad \frac{du}{dx}(1)=1.$$

Это краевая задача для ОДУ 2-го порядка с условиями Неймана на обоих концах.

Идея метода установления (вопрос 21, лаб. 4)

Стационарную задачу превращают в нестационарную, вводя фиктивную производную по времени $\partial\widetilde u/\partial t$: при $t\to\infty$ решение «устанавливается» к искомому ($\partial\widetilde u/\partial t\to0$). Правило: уравнение приводят к виду, где вторая производная стоит в правой части с положительным коэффициентом, а $\partial\widetilde u/\partial t$ добавляют слева. Получаем параболическое уравнение:

$$\frac{\partial \widetilde u}{\partial t}=0{,}3\,\frac{\partial^2 \widetilde u}{\partial x^2}+\frac{\partial \widetilde u}{\partial x}-3x^2.$$

Проверка: при $\partial\widetilde u/\partial t=0$ получаем $0{,}3u''+u'-3x^2=0$, т.е. исходное $u'+0{,}3u''=3x^2$. ✓ Здесь $\sigma=0{,}3>0$; конвективный член $+\widetilde u_x$ отвечает скорости $v=-1<0$ → правая разность $\dfrac{u_{j+1}-u_j}{h}$.

Схема Кранка-Николсона по «времени» (итерации)

Обозначим итерации верхним индексом $s$. Оператор расщепляем пополам между слоями $s$ и $s{+}1$:

$$\frac{u_j^{s+1}-u_j^s}{\Delta t}=\frac{0{,}3}{2}\big(\Lambda_{xx}u^{s+1}+\Lambda_{xx}u^{s}\big)+\frac12\Big(\tfrac{u_{j+1}^{s+1}-u_j^{s+1}}{h}+\tfrac{u_{j+1}^{s}-u_j^{s}}{h}\Big)-3x_j^2.$$

Приведение к прогонке и сходимость

Трёхдиагональная система $a_j u_{j+1}^{s+1}+b_j u_j^{s+1}+c_j u_{j-1}^{s+1}=\xi_j$:

$$a_j=-\frac{0{,}15\,\Delta t}{h^2}-\frac{\Delta t}{2h},\qquad c_j=-\frac{0{,}15\,\Delta t}{h^2},\qquad b_j=1+\frac{0{,}3\,\Delta t}{h^2}+\frac{\Delta t}{2h}.$$ $$|a_j|+|c_j|=\frac{0{,}3\,\Delta t}{h^2}+\frac{\Delta t}{2h}<1+\frac{0{,}3\,\Delta t}{h^2}+\frac{\Delta t}{2h}=|b_j|.$$

Диагональное преобладание (с запасом ровно $1$) — прогонка сходится при любых $\Delta t,h$.

Итерационное (прогоночное) соотношение и $\alpha_1,\beta_1$

$u_j^{s+1}=\alpha_j u_{j+1}^{s+1}+\beta_j$, $\;\alpha_j=\dfrac{-a_j}{b_j+c_j\alpha_{j-1}}$, $\;\beta_j=\dfrac{\xi_j-c_j\beta_{j-1}}{b_j+c_j\alpha_{j-1}}$. Левое ГУ $\dfrac{du}{dx}(0)=0$ (2-й род, правая разность $\dfrac{u_2-u_1}{h}=0\Rightarrow u_1=u_2$) даёт

$$\alpha_1=1,\qquad \beta_1=0.$$

Правое ГУ $\dfrac{du}{dx}(1)=1$: $\dfrac{u_{N_x}-u_{N_x-1}}{h}=1\Rightarrow u_{N_x}=\dfrac{\beta_{N_x-1}+h}{1-\alpha_{N_x-1}}$.

Начальное приближение и условие останова

Начальное приближение: $u_j^{0}=0$ (любая гладкая функция; установление сходится к решению независимо от старта). Условие окончания итераций — когда решение перестаёт меняться:

$$\max_j\big|u_j^{s+1}-u_j^{s}\big|<\varepsilon.$$

Блок-схема — ниже и на странице «Блок-схемы» (метод установления).

Блок-схема алгоритма
Метод установления
Метод установления · все блок-схемы →
Задача 4

Для уравнения:

$$ \frac{\partial u}{\partial t} + 8\,\frac{\partial u}{\partial y} = 7ty\,\frac{\partial^2 u}{\partial x^2} + 5t\,\frac{\partial^2 u}{\partial y^2} - 3u^2, \qquad \begin{cases} u(t,\, x=0,\, y) = ty \\ u(t,\, x=1,\, y) = t^2 y \end{cases} \qquad \begin{cases} u(t,\, x,\, y=0) = tx \\ u(t,\, x,\, y=1) = t^2 y \end{cases} \qquad u(t=0,\, x,\, y) = 0 $$

записать схему предиктор-корректор. Для каждой из подсхем записать рекуррентное соотношение. Указать порядок аппроксимации схемы.

Решение

Уравнение

$$\frac{\partial u}{\partial t}+8\,\frac{\partial u}{\partial y}=7ty\,\frac{\partial^2 u}{\partial x^2}+5t\,\frac{\partial^2 u}{\partial y^2}-3u^2.$$

1. Выделение членов (вопрос 16, семинар 9)

Приводим к каноническому виду двумерной параболической задачи $\dfrac{\partial u}{\partial t}=\sigma_x\dfrac{\partial^2 u}{\partial x^2}+\sigma_y\dfrac{\partial^2 u}{\partial y^2}+f$, где переменные коэффициенты при вторых производных

$$\sigma_x=7t y_k,\qquad \sigma_y=5t,$$

а в свободный член $f$ собраны все прочие члены — конвективный $-8\,\partial u/\partial y$ (центральная разность) и нелинейный реакционный $-3u^2$:

$$f=-8\,\frac{u_{j,k+1}-u_{j,k-1}}{2h_y}-3\big(u_{j,k}\big)^2.$$

2. Схема предиктор-корректор

Метод расщепляет только вторые производные, а нелинейность снимает в два прохода: на предикторе считают промежуточное $\bar u$ (нелинейный член — по старому слою), на корректоре уточняют (нелинейный член — по предиктору). Полушаг $\Delta t/2$.

Предиктор ① ($n\to n+1/2$): неявно по $x$, явно по $y$:

$$\frac{\bar u_{j,k}-u_{j,k}^{n}}{\Delta t/2}=7t y_k\,\Lambda_{xx}\bar u_{j,k}+5t\,\Lambda_{yy}u_{j,k}^{n}+f\big(u^{n}\big).$$

Корректор ② ($n+1/2\to n+1$): неявно по $y$, явно по $x$:

$$\frac{u_{j,k}^{n+1}-\bar u_{j,k}}{\Delta t/2}=7t y_k\,\Lambda_{xx}\bar u_{j,k}+5t\,\Lambda_{yy}u_{j,k}^{n+1}+f\big(\bar u\big).$$

3. Рекуррентные соотношения

Каждая подсхема — трёхдиагональная по своему направлению, решается прогонкой $u=\alpha_{(\cdot)}u_{(\cdot)+1}+\beta_{(\cdot)}$ с

$$\alpha=\frac{-a}{b+c\,\alpha_{\text{пред}}},\qquad \beta=\frac{\xi-c\,\beta_{\text{пред}}}{b+c\,\alpha_{\text{пред}}}.$$

Предиктор (прогонка по $j$): $a_j=c_j=-\dfrac{7t y_k\,\Delta t}{2h_x^2}$, $\;b_j=1+\dfrac{7t y_k\,\Delta t}{h_x^2}$, в $\xi_j$ — явный $y$-оператор и $f(u^n)$. Корректор — аналогично по $k$ с $\sigma_y=5t$. Граничные узлы берутся из условий: по $x$ — $u(t,0,y)=ty$, $u(t,1,y)=t^2y$; по $y$ — $u(t,x,0)=tx$, $u(t,x,1)=t^2y$.

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

Схема предиктор-корректор симметрична относительно полушага, поэтому имеет второй порядок по времени и по обеим координатам:

$$\psi=O\big(\Delta t^2,\,h_x^2,\,h_y^2\big).$$

Блок-схема — ниже и на странице «Блок-схемы» (предиктор-корректор, двумерное параболическое).

Блок-схема алгоритма
Схема предиктор-корректор (двумерное параболическое)
Схема предиктор-корректор (двумерное параболическое) · все блок-схемы →
Материалы по теме:
Семинар 9Разбор вопроса 16