🎨
Цвет акцента
Синий
Фиолетовый
Пурпурный
Раздел 19: задачи
19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8
← К задачнику
Задачник · решения

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

Подробные решения задач раздела методами курса. Условия задач и весь список — на странице «Задачник».

Задача 19.1

$\dfrac{d^2 u}{dx^2} - \dfrac{du}{dx} = e^x$ $\qquad$ $u = u(x)$

$$\frac{du}{dx}(x=0) = u(x=0) + 1 \qquad \frac{du}{dx}(x=1) = 2e$$

Решение

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

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

1. Приведение к виду для метода установления

Общий вид обыкновенного дифференциального уравнения 2-го порядка (гл. 10.1, формула 10.11):

$$v\frac{du}{dx}=\sigma\frac{d^{2}u}{dx^{2}}-k\,u+f(x),\qquad \sigma>0.$$

Правила приведения: производная 2-го порядка — в правой части с положительным коэффициентом $\sigma>0$; производная 1-го порядка — в левой части. Приводим заданное уравнение к этому виду:

$$v=1,\qquad \sigma=1,\qquad k=0,\qquad f(x)=-e^{x}.$$

Здесь $k=0$: для стационарной задачи достаточное условие сходимости прогонки $|a_j|+|c_j|<|b_j|$ обращается в равенство (нет преобладания диагонали), поэтому прогонка неприменима. Используем метод установления.

Вводим фиктивную производную по времени (в левую часть, со знаком «плюс»), превращая стационарную задачу в нестационарную; искомая функция становится функцией двух переменных $u(x)\to\widetilde u(x,t)$:

$$\frac{\partial\widetilde u}{\partial t}+v\frac{\partial\widetilde u}{\partial x}=\sigma\frac{\partial^{2}\widetilde u}{\partial x^{2}}-k\,\widetilde u+f(x).$$

Полученное уравнение — параболического типа. Граничные условия берутся из исходной стационарной задачи и не зависят от времени, поэтому при $t\to\infty$ решение устанавливается: $\widetilde u(x,t)\to[u(x)]$, $\partial\widetilde u/\partial t\to0$. Так как $v>0$, для аппроксимации $\partial u/\partial x$ берётся левая конечная разность.

2. Неявная разностная схема

Вводим сетку по координате $x_j=(j-1)h$, $j=1,\dots,N$, $h=\dfrac{1}{N-1}$, и по «времени» (итерациям) с шагом $\Delta t$. Для нестационарного уравнения записываем неявную схему (на $(n{+}1)$-м слое), используя для $\partial u/\partial x$ левую конечную разность (так как $v>0$):

$$\frac{u_{j}^{n+1}-u_{j}^{n}}{\Delta t}+v\frac{u_{j}^{n+1}-u_{j-1}^{n+1}}{h}=\sigma\frac{u_{j+1}^{n+1}-2u_{j}^{n+1}+u_{j-1}^{n+1}}{h^{2}}-k\,u_{j}^{n+1}+f(x_j).$$

Неявная схема абсолютно устойчива, поэтому шаг итерации $\Delta t$ выбирается произвольно (грубым); это ускоряет сходимость — требуется $n\sim 1/h$ итераций. Порядок аппроксимации $O(\Delta t,h)$.

3. Приведение к виду для прогонки

Домножаем на $\Delta t$ и группируем все неизвестные $(n{+}1)$-го слоя по узлам $u_{j-1}^{n+1},u_{j}^{n+1},u_{j+1}^{n+1}$:

$$a_j u_{j+1}^{n+1}+b_j u_{j}^{n+1}+c_j u_{j-1}^{n+1}=\xi_j^{n},$$$$a_j=-\sigma\frac{\Delta t}{h^{2}},\quad b_j=1+v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+k\,\Delta t,\quad c_j=-v\frac{\Delta t}{h}-\sigma\frac{\Delta t}{h^{2}},\quad \xi_j^{n}=u_j^{n}+\Delta t\,f(x_j).$$

С учётом $v=1$, $\sigma=1$, $k=0$, $f(x_j)=-e^{x_j}$ коэффициенты принимают вид:

4. Проверка сходимости прогонки

Достаточное условие $|a_j|+|c_j|<|b_j|$ выполняется за счёт единицы в $b_j$, появившейся из фиктивной производной по времени:

$$|a_j|+|c_j|=v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}\;<\;1+v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+0=|b_j|.$$

Неравенство строгое (вклад $+1$ от фиктивной производной обеспечивает преобладание диагонали), поэтому на каждой итерации прогонка сходится.

5. Итерационное (прогоночное) соотношение

На каждой итерации трёхдиагональная система решается прогонкой. Итерационным выражением служит прогоночное соотношение (гл. 4.2.2):

$$u_j^{n+1}=\alpha_j\,u_{j+1}^{n+1}+\beta_j,\qquad j=N-1,\dots,1,$$

с прогоночными коэффициентами (прямой ход, $j=2,\dots,N-1$):

$$\alpha_j=-\frac{a_j}{b_j+c_j\alpha_{j-1}},\qquad \beta_j=\frac{\xi_j^{n}-c_j\beta_{j-1}}{b_j+c_j\alpha_{j-1}}.$$

6. Коэффициенты $\alpha_1,\beta_1$ (из левого ГУ)

Левое ГУ 3-го рода $\dfrac{du}{dx}(0)=1\,u(0)+(1)$ аппроксимируем правой разностью:

$$\frac{u_2^{n+1}-u_1^{n+1}}{h}=1\,u_1^{n+1}+(1)\;\Rightarrow\; u_2^{n+1}-h\,(1)=\big(1+h\,1\big)u_1^{n+1}.$$

Откуда $u_1^{n+1}=\dfrac{1}{1+h\,(1)}\,u_2^{n+1}-\dfrac{h\,(1)}{1+h\,(1)}$, и, сравнивая с $u_1^{n+1}=\alpha_1 u_2^{n+1}+\beta_1$:

$$\boxed{\alpha_1=\frac{1}{1+h\,(1)},\qquad \beta_1=\frac{-h\,(1)}{1+h\,(1)}}.$$

7. Решение на правой границе $u_N^{n+1}$ (из правого ГУ)

Правое ГУ 2-го рода $\dfrac{du}{dx}(1)=2e$ аппроксимируем левой разностью и подставляем $u_{N-1}^{n+1}=\alpha_{N-1}u_N^{n+1}+\beta_{N-1}$:

$$\frac{u_N^{n+1}-u_{N-1}^{n+1}}{h}=2e\;\Rightarrow\;u_N^{n+1}-\alpha_{N-1}u_N^{n+1}-\beta_{N-1}=h\,(2e).$$$$\boxed{u_N^{n+1}=\frac{\beta_{N-1}+h\,(2e)}{1-\alpha_{N-1}}}.$$

8. Начальное приближение и условие окончания итераций

В качестве нулевой итерации (начального условия, нужного из-за фиктивной производной по времени) задают свободный член исходного уравнения:

$$u_j^{0}=f(x_j).$$

Итерации продолжают до установления — пока норма разности двух последовательных приближений не станет меньше заданной точности $\varepsilon$:

$$\left\|u^{n+1}-u^{n}\right\|=\sqrt{h\sum_{j=1}^{N}\left(u_j^{n+1}-u_j^{n}\right)^{2}}\le\varepsilon.$$

Алгоритм решения (метод установления, неявная схема)

  1. Задать сетку $x_j=(j-1)h$, шаг итерации $\Delta t$, точность $\varepsilon$.
  2. Задать нулевое приближение $u_j^{0}=f(x_j)$.
  3. Итерация $n\to n+1$ (прогонка):
    • из левого ГУ найти $\alpha_1,\beta_1$;
    • прямой ход $j=2,\dots,N-1$: вычислить $a_j,b_j,c_j,\xi_j^{n}$ и $\alpha_j,\beta_j$;
    • из правого ГУ найти $u_N^{n+1}$;
    • обратный ход $j=N-1,\dots,1$: $u_j^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  4. Проверить условие окончания $\left\|u^{n+1}-u^{n}\right\|\le\varepsilon$. Если не выполнено — положить $u^{n}:=u^{n+1}$ и вернуться к шагу 3; иначе $u_j\approx u_j^{n+1}$ — решение установилось.
Блок-схема алгоритма
Метод установления
Метод установления · все блок-схемы →
Задача 19.2

$2\dfrac{du}{dx} = \dfrac{d^2 u}{dx^2} + u$ $\qquad$ $u = u(x)$

$$\frac{du}{dx}(x=0) = 1 \qquad \frac{du}{dx}(x=1) = 2u(x=1)$$

Решение

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

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

1. Приведение к виду для метода установления

Общий вид обыкновенного дифференциального уравнения 2-го порядка (гл. 10.1, формула 10.11):

$$v\frac{du}{dx}=\sigma\frac{d^{2}u}{dx^{2}}-k\,u+f(x),\qquad \sigma>0.$$

Правила приведения: производная 2-го порядка — в правой части с положительным коэффициентом $\sigma>0$; производная 1-го порядка — в левой части. Приводим заданное уравнение к этому виду:

$$v=2,\qquad \sigma=1,\qquad k=-1,\qquad f(x)=0.$$

Здесь $k=-1<0$ (слагаемое $+u$ перенесено как $-k\,u$). Для стационарной задачи достаточное условие сходимости прогонки нарушается, поэтому применяем метод установления.

Вводим фиктивную производную по времени (в левую часть, со знаком «плюс»), превращая стационарную задачу в нестационарную; искомая функция становится функцией двух переменных $u(x)\to\widetilde u(x,t)$:

$$\frac{\partial\widetilde u}{\partial t}+v\frac{\partial\widetilde u}{\partial x}=\sigma\frac{\partial^{2}\widetilde u}{\partial x^{2}}-k\,\widetilde u+f(x).$$

Полученное уравнение — параболического типа. Граничные условия берутся из исходной стационарной задачи и не зависят от времени, поэтому при $t\to\infty$ решение устанавливается: $\widetilde u(x,t)\to[u(x)]$, $\partial\widetilde u/\partial t\to0$. Так как $v>0$, для аппроксимации $\partial u/\partial x$ берётся левая конечная разность.

2. Неявная разностная схема

Вводим сетку по координате $x_j=(j-1)h$, $j=1,\dots,N$, $h=\dfrac{1}{N-1}$, и по «времени» (итерациям) с шагом $\Delta t$. Для нестационарного уравнения записываем неявную схему (на $(n{+}1)$-м слое), используя для $\partial u/\partial x$ левую конечную разность (так как $v>0$):

$$\frac{u_{j}^{n+1}-u_{j}^{n}}{\Delta t}+v\frac{u_{j}^{n+1}-u_{j-1}^{n+1}}{h}=\sigma\frac{u_{j+1}^{n+1}-2u_{j}^{n+1}+u_{j-1}^{n+1}}{h^{2}}-k\,u_{j}^{n+1}+f(x_j).$$

Неявная схема абсолютно устойчива, поэтому шаг итерации $\Delta t$ выбирается произвольно (грубым); это ускоряет сходимость — требуется $n\sim 1/h$ итераций. Порядок аппроксимации $O(\Delta t,h)$.

3. Приведение к виду для прогонки

Домножаем на $\Delta t$ и группируем все неизвестные $(n{+}1)$-го слоя по узлам $u_{j-1}^{n+1},u_{j}^{n+1},u_{j+1}^{n+1}$:

$$a_j u_{j+1}^{n+1}+b_j u_{j}^{n+1}+c_j u_{j-1}^{n+1}=\xi_j^{n},$$$$a_j=-\sigma\frac{\Delta t}{h^{2}},\quad b_j=1+v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+k\,\Delta t,\quad c_j=-v\frac{\Delta t}{h}-\sigma\frac{\Delta t}{h^{2}},\quad \xi_j^{n}=u_j^{n}+\Delta t\,f(x_j).$$

С учётом $v=2$, $\sigma=1$, $k=-1$, $f(x_j)=0$ коэффициенты принимают вид:

4. Проверка сходимости прогонки

Достаточное условие $|a_j|+|c_j|<|b_j|$ выполняется за счёт единицы в $b_j$, появившейся из фиктивной производной по времени:

$$|a_j|+|c_j|=v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}\;<\;1+v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+k\,\Delta t=-\Delta t=|b_j|.$$

Слагаемое $k\,\Delta t=-\Delta t$ ослабляет диагональ, поэтому шаг итерации выбирают так, чтобы $1+k\,\Delta t=1-\Delta t>0$ (то есть $\Delta t<1$); тогда $|a_j|+|c_j|<|b_j|$ и прогонка сходится.

5. Итерационное (прогоночное) соотношение

На каждой итерации трёхдиагональная система решается прогонкой. Итерационным выражением служит прогоночное соотношение (гл. 4.2.2):

$$u_j^{n+1}=\alpha_j\,u_{j+1}^{n+1}+\beta_j,\qquad j=N-1,\dots,1,$$

с прогоночными коэффициентами (прямой ход, $j=2,\dots,N-1$):

$$\alpha_j=-\frac{a_j}{b_j+c_j\alpha_{j-1}},\qquad \beta_j=\frac{\xi_j^{n}-c_j\beta_{j-1}}{b_j+c_j\alpha_{j-1}}.$$

6. Коэффициенты $\alpha_1,\beta_1$ (из левого ГУ)

Левое ГУ 2-го рода $\dfrac{du}{dx}(0)=1$ аппроксимируем правой разностью:

$$\frac{u_2^{n+1}-u_1^{n+1}}{h}=1\;\Rightarrow\;u_1^{n+1}=u_2^{n+1}-h\,(1).$$

Сравнивая с $u_1^{n+1}=\alpha_1 u_2^{n+1}+\beta_1$:

$$\boxed{\alpha_1=1,\qquad \beta_1=-h\,(1)}.$$

7. Решение на правой границе $u_N^{n+1}$ (из правого ГУ)

Правое ГУ 3-го рода $\dfrac{du}{dx}(1)=2\,u(1)+(0)$ аппроксимируем левой разностью и подставляем $u_{N-1}^{n+1}=\alpha_{N-1}u_N^{n+1}+\beta_{N-1}$:

$$\frac{u_N^{n+1}-u_{N-1}^{n+1}}{h}=2\,u_N^{n+1}+(0)\;\Rightarrow\; u_N^{n+1}-\alpha_{N-1}u_N^{n+1}-\beta_{N-1}=h\,2\,u_N^{n+1}+h\,(0).$$$$\boxed{u_N^{n+1}=\frac{\beta_{N-1}+h\,(0)}{1-\alpha_{N-1}-h\,2}}.$$

8. Начальное приближение и условие окончания итераций

В качестве нулевой итерации (начального условия, нужного из-за фиктивной производной по времени) задают свободный член исходного уравнения:

$$u_j^{0}=f(x_j).$$

Итерации продолжают до установления — пока норма разности двух последовательных приближений не станет меньше заданной точности $\varepsilon$:

$$\left\|u^{n+1}-u^{n}\right\|=\sqrt{h\sum_{j=1}^{N}\left(u_j^{n+1}-u_j^{n}\right)^{2}}\le\varepsilon.$$

Алгоритм решения (метод установления, неявная схема)

  1. Задать сетку $x_j=(j-1)h$, шаг итерации $\Delta t$, точность $\varepsilon$.
  2. Задать нулевое приближение $u_j^{0}=f(x_j)$.
  3. Итерация $n\to n+1$ (прогонка):
    • из левого ГУ найти $\alpha_1,\beta_1$;
    • прямой ход $j=2,\dots,N-1$: вычислить $a_j,b_j,c_j,\xi_j^{n}$ и $\alpha_j,\beta_j$;
    • из правого ГУ найти $u_N^{n+1}$;
    • обратный ход $j=N-1,\dots,1$: $u_j^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  4. Проверить условие окончания $\left\|u^{n+1}-u^{n}\right\|\le\varepsilon$. Если не выполнено — положить $u^{n}:=u^{n+1}$ и вернуться к шагу 3; иначе $u_j\approx u_j^{n+1}$ — решение установилось.
Блок-схема алгоритма
Метод установления
Метод установления · все блок-схемы →
Задача 19.3

$\dfrac{du}{dx} + \dfrac{d^2 u}{dx^2} + 2x = 0$ $\qquad$ $u = u(x)$

$$\frac{du}{dx}(x=0) = 2 \qquad \frac{du}{dx}(x=1) = 0$$

Решение

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

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

1. Приведение к виду для метода установления

Общий вид обыкновенного дифференциального уравнения 2-го порядка (гл. 10.1, формула 10.11):

$$v\frac{du}{dx}=\sigma\frac{d^{2}u}{dx^{2}}-k\,u+f(x),\qquad \sigma>0.$$

Правила приведения: производная 2-го порядка — в правой части с положительным коэффициентом $\sigma>0$; производная 1-го порядка — в левой части. Приводим заданное уравнение к этому виду:

$$v=-1,\qquad \sigma=1,\qquad k=0,\qquad f(x)=2x.$$

Здесь $k=0$: для стационарной задачи достаточное условие сходимости прогонки $|a_j|+|c_j|<|b_j|$ обращается в равенство (нет преобладания диагонали), поэтому прогонка неприменима. Используем метод установления.

Вводим фиктивную производную по времени (в левую часть, со знаком «плюс»), превращая стационарную задачу в нестационарную; искомая функция становится функцией двух переменных $u(x)\to\widetilde u(x,t)$:

$$\frac{\partial\widetilde u}{\partial t}+v\frac{\partial\widetilde u}{\partial x}=\sigma\frac{\partial^{2}\widetilde u}{\partial x^{2}}-k\,\widetilde u+f(x).$$

Полученное уравнение — параболического типа. Граничные условия берутся из исходной стационарной задачи и не зависят от времени, поэтому при $t\to\infty$ решение устанавливается: $\widetilde u(x,t)\to[u(x)]$, $\partial\widetilde u/\partial t\to0$. Так как $v<0$, для аппроксимации $\partial u/\partial x$ берётся правая конечная разность.

2. Неявная разностная схема

Вводим сетку по координате $x_j=(j-1)h$, $j=1,\dots,N$, $h=\dfrac{1}{N-1}$, и по «времени» (итерациям) с шагом $\Delta t$. Для нестационарного уравнения записываем неявную схему (на $(n{+}1)$-м слое), используя для $\partial u/\partial x$ правую конечную разность (так как $v<0$):

$$\frac{u_{j}^{n+1}-u_{j}^{n}}{\Delta t}+v\frac{u_{j+1}^{n+1}-u_{j}^{n+1}}{h}=\sigma\frac{u_{j+1}^{n+1}-2u_{j}^{n+1}+u_{j-1}^{n+1}}{h^{2}}-k\,u_{j}^{n+1}+f(x_j).$$

Неявная схема абсолютно устойчива, поэтому шаг итерации $\Delta t$ выбирается произвольно (грубым); это ускоряет сходимость — требуется $n\sim 1/h$ итераций. Порядок аппроксимации $O(\Delta t,h)$.

3. Приведение к виду для прогонки

Домножаем на $\Delta t$ и группируем все неизвестные $(n{+}1)$-го слоя по узлам $u_{j-1}^{n+1},u_{j}^{n+1},u_{j+1}^{n+1}$ (правая разность даёт $u_{j+1}$ в адвективном члене):

$$a_j u_{j+1}^{n+1}+b_j u_{j}^{n+1}+c_j u_{j-1}^{n+1}=\xi_j^{n},$$$$a_j=-\Big(\sigma\frac{\Delta t}{h^{2}}-v\frac{\Delta t}{h}\Big),\quad b_j=1-v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+k\,\Delta t,\quad c_j=-\sigma\frac{\Delta t}{h^{2}},\quad \xi_j^{n}=u_j^{n}+\Delta t\,f(x_j).$$

С учётом $v=-1$, $\sigma=1$, $k=0$, $f(x_j)=2x_j$ коэффициенты принимают вид:

4. Проверка сходимости прогонки

Достаточное условие $|a_j|+|c_j|<|b_j|$ выполняется за счёт единицы в $b_j$, появившейся из фиктивной производной по времени:

$$|a_j|+|c_j|=\Big|\sigma\frac{\Delta t}{h^{2}}-v\frac{\Delta t}{h}\Big|+\sigma\frac{\Delta t}{h^{2}}\;<\;1-v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+0=|b_j|.$$

Здесь $v=-1<0$, поэтому в $b_j$ стоит $-v\,\Delta t/h=+\Delta t/h>0$, и неравенство строгое — прогонка сходится.

5. Итерационное (прогоночное) соотношение

На каждой итерации трёхдиагональная система решается прогонкой. Итерационным выражением служит прогоночное соотношение (гл. 4.2.2):

$$u_j^{n+1}=\alpha_j\,u_{j+1}^{n+1}+\beta_j,\qquad j=N-1,\dots,1,$$

с прогоночными коэффициентами (прямой ход, $j=2,\dots,N-1$):

$$\alpha_j=-\frac{a_j}{b_j+c_j\alpha_{j-1}},\qquad \beta_j=\frac{\xi_j^{n}-c_j\beta_{j-1}}{b_j+c_j\alpha_{j-1}}.$$

6. Коэффициенты $\alpha_1,\beta_1$ (из левого ГУ)

Левое ГУ 2-го рода $\dfrac{du}{dx}(0)=2$ аппроксимируем правой разностью:

$$\frac{u_2^{n+1}-u_1^{n+1}}{h}=2\;\Rightarrow\;u_1^{n+1}=u_2^{n+1}-h\,(2).$$

Сравнивая с $u_1^{n+1}=\alpha_1 u_2^{n+1}+\beta_1$:

$$\boxed{\alpha_1=1,\qquad \beta_1=-h\,(2)}.$$

7. Решение на правой границе $u_N^{n+1}$ (из правого ГУ)

Правое ГУ 2-го рода $\dfrac{du}{dx}(1)=0$ аппроксимируем левой разностью и подставляем $u_{N-1}^{n+1}=\alpha_{N-1}u_N^{n+1}+\beta_{N-1}$:

$$\frac{u_N^{n+1}-u_{N-1}^{n+1}}{h}=0\;\Rightarrow\;u_N^{n+1}-\alpha_{N-1}u_N^{n+1}-\beta_{N-1}=h\,(0).$$$$\boxed{u_N^{n+1}=\frac{\beta_{N-1}+h\,(0)}{1-\alpha_{N-1}}}.$$

8. Начальное приближение и условие окончания итераций

В качестве нулевой итерации (начального условия, нужного из-за фиктивной производной по времени) задают свободный член исходного уравнения:

$$u_j^{0}=f(x_j).$$

Итерации продолжают до установления — пока норма разности двух последовательных приближений не станет меньше заданной точности $\varepsilon$:

$$\left\|u^{n+1}-u^{n}\right\|=\sqrt{h\sum_{j=1}^{N}\left(u_j^{n+1}-u_j^{n}\right)^{2}}\le\varepsilon.$$

Алгоритм решения (метод установления, неявная схема)

  1. Задать сетку $x_j=(j-1)h$, шаг итерации $\Delta t$, точность $\varepsilon$.
  2. Задать нулевое приближение $u_j^{0}=f(x_j)$.
  3. Итерация $n\to n+1$ (прогонка):
    • из левого ГУ найти $\alpha_1,\beta_1$;
    • прямой ход $j=2,\dots,N-1$: вычислить $a_j,b_j,c_j,\xi_j^{n}$ и $\alpha_j,\beta_j$;
    • из правого ГУ найти $u_N^{n+1}$;
    • обратный ход $j=N-1,\dots,1$: $u_j^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  4. Проверить условие окончания $\left\|u^{n+1}-u^{n}\right\|\le\varepsilon$. Если не выполнено — положить $u^{n}:=u^{n+1}$ и вернуться к шагу 3; иначе $u_j\approx u_j^{n+1}$ — решение установилось.
Блок-схема алгоритма
Метод установления
Метод установления · все блок-схемы →
Задача 19.4

$-\dfrac{du}{dx} + x\dfrac{d^2 u}{dx^2} = 3x^2$ $\qquad$ $u = u(x)$

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

Решение

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

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

1. Приведение к виду для метода установления

Общий вид обыкновенного дифференциального уравнения 2-го порядка (гл. 10.1, формула 10.11):

$$v\frac{du}{dx}=\sigma\frac{d^{2}u}{dx^{2}}-k\,u+f(x),\qquad \sigma>0.$$

Правила приведения: производная 2-го порядка — в правой части с положительным коэффициентом $\sigma>0$; производная 1-го порядка — в левой части. Приводим заданное уравнение к этому виду:

$$v=1,\qquad \sigma=x,\qquad k=0,\qquad f(x)=-3x^{2}.$$

Здесь $k=0$: для стационарной задачи достаточное условие сходимости прогонки $|a_j|+|c_j|<|b_j|$ обращается в равенство (нет преобладания диагонали), поэтому прогонка неприменима. Используем метод установления.

Вводим фиктивную производную по времени (в левую часть, со знаком «плюс»), превращая стационарную задачу в нестационарную; искомая функция становится функцией двух переменных $u(x)\to\widetilde u(x,t)$:

$$\frac{\partial\widetilde u}{\partial t}+v\frac{\partial\widetilde u}{\partial x}=\sigma\frac{\partial^{2}\widetilde u}{\partial x^{2}}-k\,\widetilde u+f(x).$$

Полученное уравнение — параболического типа. Граничные условия берутся из исходной стационарной задачи и не зависят от времени, поэтому при $t\to\infty$ решение устанавливается: $\widetilde u(x,t)\to[u(x)]$, $\partial\widetilde u/\partial t\to0$. Так как $v>0$, для аппроксимации $\partial u/\partial x$ берётся левая конечная разность.

2. Неявная разностная схема

Вводим сетку по координате $x_j=(j-1)h$, $j=1,\dots,N$, $h=\dfrac{1}{N-1}$, и по «времени» (итерациям) с шагом $\Delta t$. Для нестационарного уравнения записываем неявную схему (на $(n{+}1)$-м слое), используя для $\partial u/\partial x$ левую конечную разность (так как $v>0$):

$$\frac{u_{j}^{n+1}-u_{j}^{n}}{\Delta t}+v\frac{u_{j}^{n+1}-u_{j-1}^{n+1}}{h}=\sigma\frac{u_{j+1}^{n+1}-2u_{j}^{n+1}+u_{j-1}^{n+1}}{h^{2}}-k\,u_{j}^{n+1}+f(x_j).$$

Неявная схема абсолютно устойчива, поэтому шаг итерации $\Delta t$ выбирается произвольно (грубым); это ускоряет сходимость — требуется $n\sim 1/h$ итераций. Порядок аппроксимации $O(\Delta t,h)$.

3. Приведение к виду для прогонки

Домножаем на $\Delta t$ и группируем все неизвестные $(n{+}1)$-го слоя по узлам $u_{j-1}^{n+1},u_{j}^{n+1},u_{j+1}^{n+1}$:

$$a_j u_{j+1}^{n+1}+b_j u_{j}^{n+1}+c_j u_{j-1}^{n+1}=\xi_j^{n},$$$$a_j=-\sigma\frac{\Delta t}{h^{2}},\quad b_j=1+v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+k\,\Delta t,\quad c_j=-v\frac{\Delta t}{h}-\sigma\frac{\Delta t}{h^{2}},\quad \xi_j^{n}=u_j^{n}+\Delta t\,f(x_j).$$

С учётом $v=1$, $\sigma=x_j$, $k=0$, $f(x_j)=-3x_j^{2}$ коэффициенты принимают вид:

4. Проверка сходимости прогонки

Достаточное условие $|a_j|+|c_j|<|b_j|$ выполняется за счёт единицы в $b_j$, появившейся из фиктивной производной по времени:

$$|a_j|+|c_j|=v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}\;<\;1+v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+0=|b_j|.$$

На внутренних узлах $x_j=(j-1)h>0$, поэтому $\sigma=x_j>0$ и неравенство строгое (за счёт $+1$ от фиктивной производной) — прогонка сходится.

5. Итерационное (прогоночное) соотношение

На каждой итерации трёхдиагональная система решается прогонкой. Итерационным выражением служит прогоночное соотношение (гл. 4.2.2):

$$u_j^{n+1}=\alpha_j\,u_{j+1}^{n+1}+\beta_j,\qquad j=N-1,\dots,1,$$

с прогоночными коэффициентами (прямой ход, $j=2,\dots,N-1$):

$$\alpha_j=-\frac{a_j}{b_j+c_j\alpha_{j-1}},\qquad \beta_j=\frac{\xi_j^{n}-c_j\beta_{j-1}}{b_j+c_j\alpha_{j-1}}.$$

6. Коэффициенты $\alpha_1,\beta_1$ (из левого ГУ)

Левое ГУ 2-го рода $\dfrac{du}{dx}(0)=0$ аппроксимируем правой разностью:

$$\frac{u_2^{n+1}-u_1^{n+1}}{h}=0\;\Rightarrow\;u_1^{n+1}=u_2^{n+1}-h\,(0).$$

Сравнивая с $u_1^{n+1}=\alpha_1 u_2^{n+1}+\beta_1$:

$$\boxed{\alpha_1=1,\qquad \beta_1=-h\,(0)}.$$

7. Решение на правой границе $u_N^{n+1}$ (из правого ГУ)

Правое ГУ 3-го рода $\dfrac{du}{dx}(1)=2\,u(1)+(1)$ аппроксимируем левой разностью и подставляем $u_{N-1}^{n+1}=\alpha_{N-1}u_N^{n+1}+\beta_{N-1}$:

$$\frac{u_N^{n+1}-u_{N-1}^{n+1}}{h}=2\,u_N^{n+1}+(1)\;\Rightarrow\; u_N^{n+1}-\alpha_{N-1}u_N^{n+1}-\beta_{N-1}=h\,2\,u_N^{n+1}+h\,(1).$$$$\boxed{u_N^{n+1}=\frac{\beta_{N-1}+h\,(1)}{1-\alpha_{N-1}-h\,2}}.$$

8. Начальное приближение и условие окончания итераций

В качестве нулевой итерации (начального условия, нужного из-за фиктивной производной по времени) задают свободный член исходного уравнения:

$$u_j^{0}=f(x_j).$$

Итерации продолжают до установления — пока норма разности двух последовательных приближений не станет меньше заданной точности $\varepsilon$:

$$\left\|u^{n+1}-u^{n}\right\|=\sqrt{h\sum_{j=1}^{N}\left(u_j^{n+1}-u_j^{n}\right)^{2}}\le\varepsilon.$$

Алгоритм решения (метод установления, неявная схема)

  1. Задать сетку $x_j=(j-1)h$, шаг итерации $\Delta t$, точность $\varepsilon$.
  2. Задать нулевое приближение $u_j^{0}=f(x_j)$.
  3. Итерация $n\to n+1$ (прогонка):
    • из левого ГУ найти $\alpha_1,\beta_1$;
    • прямой ход $j=2,\dots,N-1$: вычислить $a_j,b_j,c_j,\xi_j^{n}$ и $\alpha_j,\beta_j$;
    • из правого ГУ найти $u_N^{n+1}$;
    • обратный ход $j=N-1,\dots,1$: $u_j^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  4. Проверить условие окончания $\left\|u^{n+1}-u^{n}\right\|\le\varepsilon$. Если не выполнено — положить $u^{n}:=u^{n+1}$ и вернуться к шагу 3; иначе $u_j\approx u_j^{n+1}$ — решение установилось.
Блок-схема алгоритма
Метод установления
Метод установления · все блок-схемы →
Задача 19.5

$x\left(\dfrac{du}{dx} + 4\right) = \dfrac{1}{3}\dfrac{d^2 u}{dx^2} + u$ $\qquad$ $u = u(x)$

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

Решение

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

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

1. Приведение к виду для метода установления

Общий вид обыкновенного дифференциального уравнения 2-го порядка (гл. 10.1, формула 10.11):

$$v\frac{du}{dx}=\sigma\frac{d^{2}u}{dx^{2}}-k\,u+f(x),\qquad \sigma>0.$$

Правила приведения: производная 2-го порядка — в правой части с положительным коэффициентом $\sigma>0$; производная 1-го порядка — в левой части. Приводим заданное уравнение к этому виду:

$$v=x,\qquad \sigma=\tfrac{1}{3},\qquad k=-1,\qquad f(x)=-4x.$$

Раскрываем скобку: $xu'+4x=\tfrac13 u''+u$, откуда $x\,u'=\tfrac13 u''-(-1)u-4x$, то есть $k=-1<0$. Для стационарной задачи достаточное условие сходимости прогонки нарушается, поэтому применяем метод установления.

Вводим фиктивную производную по времени (в левую часть, со знаком «плюс»), превращая стационарную задачу в нестационарную; искомая функция становится функцией двух переменных $u(x)\to\widetilde u(x,t)$:

$$\frac{\partial\widetilde u}{\partial t}+v\frac{\partial\widetilde u}{\partial x}=\sigma\frac{\partial^{2}\widetilde u}{\partial x^{2}}-k\,\widetilde u+f(x).$$

Полученное уравнение — параболического типа. Граничные условия берутся из исходной стационарной задачи и не зависят от времени, поэтому при $t\to\infty$ решение устанавливается: $\widetilde u(x,t)\to[u(x)]$, $\partial\widetilde u/\partial t\to0$. Так как $v>0$, для аппроксимации $\partial u/\partial x$ берётся левая конечная разность.

2. Неявная разностная схема

Вводим сетку по координате $x_j=(j-1)h$, $j=1,\dots,N$, $h=\dfrac{1}{N-1}$, и по «времени» (итерациям) с шагом $\Delta t$. Для нестационарного уравнения записываем неявную схему (на $(n{+}1)$-м слое), используя для $\partial u/\partial x$ левую конечную разность (так как $v>0$):

$$\frac{u_{j}^{n+1}-u_{j}^{n}}{\Delta t}+v\frac{u_{j}^{n+1}-u_{j-1}^{n+1}}{h}=\sigma\frac{u_{j+1}^{n+1}-2u_{j}^{n+1}+u_{j-1}^{n+1}}{h^{2}}-k\,u_{j}^{n+1}+f(x_j).$$

Неявная схема абсолютно устойчива, поэтому шаг итерации $\Delta t$ выбирается произвольно (грубым); это ускоряет сходимость — требуется $n\sim 1/h$ итераций. Порядок аппроксимации $O(\Delta t,h)$.

3. Приведение к виду для прогонки

Домножаем на $\Delta t$ и группируем все неизвестные $(n{+}1)$-го слоя по узлам $u_{j-1}^{n+1},u_{j}^{n+1},u_{j+1}^{n+1}$:

$$a_j u_{j+1}^{n+1}+b_j u_{j}^{n+1}+c_j u_{j-1}^{n+1}=\xi_j^{n},$$$$a_j=-\sigma\frac{\Delta t}{h^{2}},\quad b_j=1+v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+k\,\Delta t,\quad c_j=-v\frac{\Delta t}{h}-\sigma\frac{\Delta t}{h^{2}},\quad \xi_j^{n}=u_j^{n}+\Delta t\,f(x_j).$$

С учётом $v=x$, $\sigma=\tfrac{1}{3}$, $k=-1$, $f(x_j)=-4x_j$ коэффициенты принимают вид:

4. Проверка сходимости прогонки

Достаточное условие $|a_j|+|c_j|<|b_j|$ выполняется за счёт единицы в $b_j$, появившейся из фиктивной производной по времени:

$$|a_j|+|c_j|=v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}\;<\;1+v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+k\,\Delta t=-\Delta t=|b_j|.$$

$\sigma=\tfrac13>0$, $v=x_j>0$ на внутренних узлах; слагаемое $k\,\Delta t=-\Delta t$ компенсируется единицей при $\Delta t<1$, тогда $|a_j|+|c_j|<|b_j|$.

5. Итерационное (прогоночное) соотношение

На каждой итерации трёхдиагональная система решается прогонкой. Итерационным выражением служит прогоночное соотношение (гл. 4.2.2):

$$u_j^{n+1}=\alpha_j\,u_{j+1}^{n+1}+\beta_j,\qquad j=N-1,\dots,1,$$

с прогоночными коэффициентами (прямой ход, $j=2,\dots,N-1$):

$$\alpha_j=-\frac{a_j}{b_j+c_j\alpha_{j-1}},\qquad \beta_j=\frac{\xi_j^{n}-c_j\beta_{j-1}}{b_j+c_j\alpha_{j-1}}.$$

6. Коэффициенты $\alpha_1,\beta_1$ (из левого ГУ)

Левое ГУ 3-го рода $\dfrac{du}{dx}(0)=3\,u(0)+(1)$ аппроксимируем правой разностью:

$$\frac{u_2^{n+1}-u_1^{n+1}}{h}=3\,u_1^{n+1}+(1)\;\Rightarrow\; u_2^{n+1}-h\,(1)=\big(1+h\,3\big)u_1^{n+1}.$$

Откуда $u_1^{n+1}=\dfrac{1}{1+h\,(3)}\,u_2^{n+1}-\dfrac{h\,(1)}{1+h\,(3)}$, и, сравнивая с $u_1^{n+1}=\alpha_1 u_2^{n+1}+\beta_1$:

$$\boxed{\alpha_1=\frac{1}{1+h\,(3)},\qquad \beta_1=\frac{-h\,(1)}{1+h\,(3)}}.$$

7. Решение на правой границе $u_N^{n+1}$ (из правого ГУ)

Правое ГУ 1-го рода $u(1)=2$ задаёт значение прямо:

$$\boxed{u_N^{n+1}=2}.$$

8. Начальное приближение и условие окончания итераций

В качестве нулевой итерации (начального условия, нужного из-за фиктивной производной по времени) задают свободный член исходного уравнения:

$$u_j^{0}=f(x_j).$$

Итерации продолжают до установления — пока норма разности двух последовательных приближений не станет меньше заданной точности $\varepsilon$:

$$\left\|u^{n+1}-u^{n}\right\|=\sqrt{h\sum_{j=1}^{N}\left(u_j^{n+1}-u_j^{n}\right)^{2}}\le\varepsilon.$$

Алгоритм решения (метод установления, неявная схема)

  1. Задать сетку $x_j=(j-1)h$, шаг итерации $\Delta t$, точность $\varepsilon$.
  2. Задать нулевое приближение $u_j^{0}=f(x_j)$.
  3. Итерация $n\to n+1$ (прогонка):
    • из левого ГУ найти $\alpha_1,\beta_1$;
    • прямой ход $j=2,\dots,N-1$: вычислить $a_j,b_j,c_j,\xi_j^{n}$ и $\alpha_j,\beta_j$;
    • из правого ГУ найти $u_N^{n+1}$;
    • обратный ход $j=N-1,\dots,1$: $u_j^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  4. Проверить условие окончания $\left\|u^{n+1}-u^{n}\right\|\le\varepsilon$. Если не выполнено — положить $u^{n}:=u^{n+1}$ и вернуться к шагу 3; иначе $u_j\approx u_j^{n+1}$ — решение установилось.
Блок-схема алгоритма
Метод установления
Метод установления · все блок-схемы →
Задача 19.6

$x\left(\dfrac{du}{dx} - \dfrac{d^2 u}{dx^2}\right) = 2u$ $\qquad$ $u = u(x)$

$$\frac{du}{dx}(x=0) = 4u(x=0) + 2 \qquad \frac{du}{dx}(x=1) = 0$$

Решение

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

$$x\!\left(\frac{du}{dx}-\frac{d^{2}u}{dx^{2}}\right)=2u,\qquad u=u(x)$$$$\frac{du}{dx}(x{=}0)=4u(x{=}0)+2,\qquad \frac{du}{dx}(x{=}1)=0$$

1. Приведение к виду для метода установления

Общий вид обыкновенного дифференциального уравнения 2-го порядка (гл. 10.1, формула 10.11):

$$v\frac{du}{dx}=\sigma\frac{d^{2}u}{dx^{2}}-k\,u+f(x),\qquad \sigma>0.$$

Правила приведения: производная 2-го порядка — в правой части с положительным коэффициентом $\sigma>0$; производная 1-го порядка — в левой части. Приводим заданное уравнение к этому виду:

$$v=x,\qquad \sigma=x,\qquad k=-2,\qquad f(x)=0.$$

Раскрываем: $xu'-xu''=2u$, откуда $x\,u'=x\,u''-(-2)u$, то есть $k=-2<0$. Для стационарной задачи достаточное условие сходимости прогонки нарушается, поэтому применяем метод установления.

Вводим фиктивную производную по времени (в левую часть, со знаком «плюс»), превращая стационарную задачу в нестационарную; искомая функция становится функцией двух переменных $u(x)\to\widetilde u(x,t)$:

$$\frac{\partial\widetilde u}{\partial t}+v\frac{\partial\widetilde u}{\partial x}=\sigma\frac{\partial^{2}\widetilde u}{\partial x^{2}}-k\,\widetilde u+f(x).$$

Полученное уравнение — параболического типа. Граничные условия берутся из исходной стационарной задачи и не зависят от времени, поэтому при $t\to\infty$ решение устанавливается: $\widetilde u(x,t)\to[u(x)]$, $\partial\widetilde u/\partial t\to0$. Так как $v>0$, для аппроксимации $\partial u/\partial x$ берётся левая конечная разность.

2. Неявная разностная схема

Вводим сетку по координате $x_j=(j-1)h$, $j=1,\dots,N$, $h=\dfrac{1}{N-1}$, и по «времени» (итерациям) с шагом $\Delta t$. Для нестационарного уравнения записываем неявную схему (на $(n{+}1)$-м слое), используя для $\partial u/\partial x$ левую конечную разность (так как $v>0$):

$$\frac{u_{j}^{n+1}-u_{j}^{n}}{\Delta t}+v\frac{u_{j}^{n+1}-u_{j-1}^{n+1}}{h}=\sigma\frac{u_{j+1}^{n+1}-2u_{j}^{n+1}+u_{j-1}^{n+1}}{h^{2}}-k\,u_{j}^{n+1}+f(x_j).$$

Неявная схема абсолютно устойчива, поэтому шаг итерации $\Delta t$ выбирается произвольно (грубым); это ускоряет сходимость — требуется $n\sim 1/h$ итераций. Порядок аппроксимации $O(\Delta t,h)$.

3. Приведение к виду для прогонки

Домножаем на $\Delta t$ и группируем все неизвестные $(n{+}1)$-го слоя по узлам $u_{j-1}^{n+1},u_{j}^{n+1},u_{j+1}^{n+1}$:

$$a_j u_{j+1}^{n+1}+b_j u_{j}^{n+1}+c_j u_{j-1}^{n+1}=\xi_j^{n},$$$$a_j=-\sigma\frac{\Delta t}{h^{2}},\quad b_j=1+v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+k\,\Delta t,\quad c_j=-v\frac{\Delta t}{h}-\sigma\frac{\Delta t}{h^{2}},\quad \xi_j^{n}=u_j^{n}+\Delta t\,f(x_j).$$

С учётом $v=x$, $\sigma=x_j$, $k=-2$, $f(x_j)=0$ коэффициенты принимают вид:

4. Проверка сходимости прогонки

Достаточное условие $|a_j|+|c_j|<|b_j|$ выполняется за счёт единицы в $b_j$, появившейся из фиктивной производной по времени:

$$|a_j|+|c_j|=v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}\;<\;1+v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+k\,\Delta t=-2\Delta t=|b_j|.$$

$\sigma=x_j>0$, $v=x_j>0$ на внутренних узлах; $k\,\Delta t=-2\Delta t$ компенсируется единицей при $\Delta t<\tfrac12$, тогда $|a_j|+|c_j|<|b_j|$.

5. Итерационное (прогоночное) соотношение

На каждой итерации трёхдиагональная система решается прогонкой. Итерационным выражением служит прогоночное соотношение (гл. 4.2.2):

$$u_j^{n+1}=\alpha_j\,u_{j+1}^{n+1}+\beta_j,\qquad j=N-1,\dots,1,$$

с прогоночными коэффициентами (прямой ход, $j=2,\dots,N-1$):

$$\alpha_j=-\frac{a_j}{b_j+c_j\alpha_{j-1}},\qquad \beta_j=\frac{\xi_j^{n}-c_j\beta_{j-1}}{b_j+c_j\alpha_{j-1}}.$$

6. Коэффициенты $\alpha_1,\beta_1$ (из левого ГУ)

Левое ГУ 3-го рода $\dfrac{du}{dx}(0)=4\,u(0)+(2)$ аппроксимируем правой разностью:

$$\frac{u_2^{n+1}-u_1^{n+1}}{h}=4\,u_1^{n+1}+(2)\;\Rightarrow\; u_2^{n+1}-h\,(2)=\big(1+h\,4\big)u_1^{n+1}.$$

Откуда $u_1^{n+1}=\dfrac{1}{1+h\,(4)}\,u_2^{n+1}-\dfrac{h\,(2)}{1+h\,(4)}$, и, сравнивая с $u_1^{n+1}=\alpha_1 u_2^{n+1}+\beta_1$:

$$\boxed{\alpha_1=\frac{1}{1+h\,(4)},\qquad \beta_1=\frac{-h\,(2)}{1+h\,(4)}}.$$

7. Решение на правой границе $u_N^{n+1}$ (из правого ГУ)

Правое ГУ 2-го рода $\dfrac{du}{dx}(1)=0$ аппроксимируем левой разностью и подставляем $u_{N-1}^{n+1}=\alpha_{N-1}u_N^{n+1}+\beta_{N-1}$:

$$\frac{u_N^{n+1}-u_{N-1}^{n+1}}{h}=0\;\Rightarrow\;u_N^{n+1}-\alpha_{N-1}u_N^{n+1}-\beta_{N-1}=h\,(0).$$$$\boxed{u_N^{n+1}=\frac{\beta_{N-1}+h\,(0)}{1-\alpha_{N-1}}}.$$

8. Начальное приближение и условие окончания итераций

В качестве нулевой итерации (начального условия, нужного из-за фиктивной производной по времени) задают свободный член исходного уравнения:

$$u_j^{0}=f(x_j).$$

Итерации продолжают до установления — пока норма разности двух последовательных приближений не станет меньше заданной точности $\varepsilon$:

$$\left\|u^{n+1}-u^{n}\right\|=\sqrt{h\sum_{j=1}^{N}\left(u_j^{n+1}-u_j^{n}\right)^{2}}\le\varepsilon.$$

Алгоритм решения (метод установления, неявная схема)

  1. Задать сетку $x_j=(j-1)h$, шаг итерации $\Delta t$, точность $\varepsilon$.
  2. Задать нулевое приближение $u_j^{0}=f(x_j)$.
  3. Итерация $n\to n+1$ (прогонка):
    • из левого ГУ найти $\alpha_1,\beta_1$;
    • прямой ход $j=2,\dots,N-1$: вычислить $a_j,b_j,c_j,\xi_j^{n}$ и $\alpha_j,\beta_j$;
    • из правого ГУ найти $u_N^{n+1}$;
    • обратный ход $j=N-1,\dots,1$: $u_j^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  4. Проверить условие окончания $\left\|u^{n+1}-u^{n}\right\|\le\varepsilon$. Если не выполнено — положить $u^{n}:=u^{n+1}$ и вернуться к шагу 3; иначе $u_j\approx u_j^{n+1}$ — решение установилось.
Блок-схема алгоритма
Метод установления
Метод установления · все блок-схемы →
Задача 19.7

$\dfrac{d^2 u}{dx^2} + 5\dfrac{du}{dx} = 3x(2 - u)$ $\qquad$ $u = u(x)$

$$u(x=0) = 1 \qquad \frac{du}{dx}(x=1) = 3u(x=1) - 2$$

Решение

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

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

1. Приведение к виду для метода установления

Общий вид обыкновенного дифференциального уравнения 2-го порядка (гл. 10.1, формула 10.11):

$$v\frac{du}{dx}=\sigma\frac{d^{2}u}{dx^{2}}-k\,u+f(x),\qquad \sigma>0.$$

Правила приведения: производная 2-го порядка — в правой части с положительным коэффициентом $\sigma>0$; производная 1-го порядка — в левой части. Приводим заданное уравнение к этому виду:

$$v=-5,\qquad \sigma=1,\qquad k=-3x,\qquad f(x)=-6x.$$

Раскрываем правую часть: $u''+5u'=6x-3xu$. Приводим к стандартному виду (вторая производная в правой части с $+\sigma$): $-5\,u'=u''-(-3x)u-6x$, то есть $v=-5<0$, $\sigma=1$, $k=-3x\le0$. Для стационарной задачи достаточное условие сходимости прогонки нарушается, поэтому применяем метод установления.

Вводим фиктивную производную по времени (в левую часть, со знаком «плюс»), превращая стационарную задачу в нестационарную; искомая функция становится функцией двух переменных $u(x)\to\widetilde u(x,t)$:

$$\frac{\partial\widetilde u}{\partial t}+v\frac{\partial\widetilde u}{\partial x}=\sigma\frac{\partial^{2}\widetilde u}{\partial x^{2}}-k\,\widetilde u+f(x).$$

Полученное уравнение — параболического типа. Граничные условия берутся из исходной стационарной задачи и не зависят от времени, поэтому при $t\to\infty$ решение устанавливается: $\widetilde u(x,t)\to[u(x)]$, $\partial\widetilde u/\partial t\to0$. Так как $v<0$, для аппроксимации $\partial u/\partial x$ берётся правая конечная разность.

2. Неявная разностная схема

Вводим сетку по координате $x_j=(j-1)h$, $j=1,\dots,N$, $h=\dfrac{1}{N-1}$, и по «времени» (итерациям) с шагом $\Delta t$. Для нестационарного уравнения записываем неявную схему (на $(n{+}1)$-м слое), используя для $\partial u/\partial x$ правую конечную разность (так как $v<0$):

$$\frac{u_{j}^{n+1}-u_{j}^{n}}{\Delta t}+v\frac{u_{j+1}^{n+1}-u_{j}^{n+1}}{h}=\sigma\frac{u_{j+1}^{n+1}-2u_{j}^{n+1}+u_{j-1}^{n+1}}{h^{2}}-k\,u_{j}^{n+1}+f(x_j).$$

Неявная схема абсолютно устойчива, поэтому шаг итерации $\Delta t$ выбирается произвольно (грубым); это ускоряет сходимость — требуется $n\sim 1/h$ итераций. Порядок аппроксимации $O(\Delta t,h)$.

3. Приведение к виду для прогонки

Домножаем на $\Delta t$ и группируем все неизвестные $(n{+}1)$-го слоя по узлам $u_{j-1}^{n+1},u_{j}^{n+1},u_{j+1}^{n+1}$ (правая разность даёт $u_{j+1}$ в адвективном члене):

$$a_j u_{j+1}^{n+1}+b_j u_{j}^{n+1}+c_j u_{j-1}^{n+1}=\xi_j^{n},$$$$a_j=-\Big(\sigma\frac{\Delta t}{h^{2}}-v\frac{\Delta t}{h}\Big),\quad b_j=1-v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+k\,\Delta t,\quad c_j=-\sigma\frac{\Delta t}{h^{2}},\quad \xi_j^{n}=u_j^{n}+\Delta t\,f(x_j).$$

С учётом $v=-5$, $\sigma=1$, $k=-3x_j$, $f(x_j)=-6x_j$ коэффициенты принимают вид:

4. Проверка сходимости прогонки

Достаточное условие $|a_j|+|c_j|<|b_j|$ выполняется за счёт единицы в $b_j$, появившейся из фиктивной производной по времени:

$$|a_j|+|c_j|=\Big|\sigma\frac{\Delta t}{h^{2}}-v\frac{\Delta t}{h}\Big|+\sigma\frac{\Delta t}{h^{2}}\;<\;1-v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+k\,\Delta t=-3x_j\Delta t=|b_j|.$$

$v=-5<0$, поэтому в $b_j$ слагаемое $-v\,\Delta t/h=+5\Delta t/h>0$; $k\,\Delta t=-3x_j\Delta t$ компенсируется единицей. При достаточно малом $\Delta t$ ($1-3x_j\Delta t>0$) неравенство строгое — прогонка сходится.

5. Итерационное (прогоночное) соотношение

На каждой итерации трёхдиагональная система решается прогонкой. Итерационным выражением служит прогоночное соотношение (гл. 4.2.2):

$$u_j^{n+1}=\alpha_j\,u_{j+1}^{n+1}+\beta_j,\qquad j=N-1,\dots,1,$$

с прогоночными коэффициентами (прямой ход, $j=2,\dots,N-1$):

$$\alpha_j=-\frac{a_j}{b_j+c_j\alpha_{j-1}},\qquad \beta_j=\frac{\xi_j^{n}-c_j\beta_{j-1}}{b_j+c_j\alpha_{j-1}}.$$

6. Коэффициенты $\alpha_1,\beta_1$ (из левого ГУ)

Левое ГУ 1-го рода $u(0)=1$ задаёт значение прямо:

$$u_1^{n+1}=1.$$

Сравнивая с $u_1^{n+1}=\alpha_1 u_2^{n+1}+\beta_1$:

$$\boxed{\alpha_1=0,\qquad \beta_1=1}.$$

7. Решение на правой границе $u_N^{n+1}$ (из правого ГУ)

Правое ГУ 3-го рода $\dfrac{du}{dx}(1)=3\,u(1)+(-2)$ аппроксимируем левой разностью и подставляем $u_{N-1}^{n+1}=\alpha_{N-1}u_N^{n+1}+\beta_{N-1}$:

$$\frac{u_N^{n+1}-u_{N-1}^{n+1}}{h}=3\,u_N^{n+1}+(-2)\;\Rightarrow\; u_N^{n+1}-\alpha_{N-1}u_N^{n+1}-\beta_{N-1}=h\,3\,u_N^{n+1}+h\,(-2).$$$$\boxed{u_N^{n+1}=\frac{\beta_{N-1}+h\,(-2)}{1-\alpha_{N-1}-h\,3}}.$$

8. Начальное приближение и условие окончания итераций

В качестве нулевой итерации (начального условия, нужного из-за фиктивной производной по времени) задают свободный член исходного уравнения:

$$u_j^{0}=f(x_j).$$

Итерации продолжают до установления — пока норма разности двух последовательных приближений не станет меньше заданной точности $\varepsilon$:

$$\left\|u^{n+1}-u^{n}\right\|=\sqrt{h\sum_{j=1}^{N}\left(u_j^{n+1}-u_j^{n}\right)^{2}}\le\varepsilon.$$

Алгоритм решения (метод установления, неявная схема)

  1. Задать сетку $x_j=(j-1)h$, шаг итерации $\Delta t$, точность $\varepsilon$.
  2. Задать нулевое приближение $u_j^{0}=f(x_j)$.
  3. Итерация $n\to n+1$ (прогонка):
    • из левого ГУ найти $\alpha_1,\beta_1$;
    • прямой ход $j=2,\dots,N-1$: вычислить $a_j,b_j,c_j,\xi_j^{n}$ и $\alpha_j,\beta_j$;
    • из правого ГУ найти $u_N^{n+1}$;
    • обратный ход $j=N-1,\dots,1$: $u_j^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  4. Проверить условие окончания $\left\|u^{n+1}-u^{n}\right\|\le\varepsilon$. Если не выполнено — положить $u^{n}:=u^{n+1}$ и вернуться к шагу 3; иначе $u_j\approx u_j^{n+1}$ — решение установилось.
Блок-схема алгоритма
Метод установления
Метод установления · все блок-схемы →
Задача 19.8

$3\dfrac{du}{dx} = 4\dfrac{d^2 u}{dx^2} - 6(ux + 2)$ $\qquad$ $u = u(x)$

$$\frac{du}{dx}(x=0) = 3u(x=0) \qquad \frac{du}{dx}(x=1) = 3u(x=1)$$

Задачник по численным методам — часть 4 (разделы 20–25)

Транскрипция страниц 35–42 (печатная нумерация) PDF zadachnik.pdf. Примечание: в оригинале разделы не имеют отдельных названий — каждый раздел начинается с формулировки общего задания, она приведена дословно.
Решение

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

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

1. Приведение к виду для метода установления

Общий вид обыкновенного дифференциального уравнения 2-го порядка (гл. 10.1, формула 10.11):

$$v\frac{du}{dx}=\sigma\frac{d^{2}u}{dx^{2}}-k\,u+f(x),\qquad \sigma>0.$$

Правила приведения: производная 2-го порядка — в правой части с положительным коэффициентом $\sigma>0$; производная 1-го порядка — в левой части. Приводим заданное уравнение к этому виду:

$$v=3,\qquad \sigma=4,\qquad k=6x,\qquad f(x)=-12.$$

Раскрываем: $3u'=4u''-6xu-12$, то есть $v=3$, $\sigma=4$, $k=6x\ge0$, $f=-12$. При $k\ge0$ диагональ только усиливается, и метод установления тем более применим. Для стационарной задачи достаточное условие сходимости прогонки нарушается, поэтому применяем метод установления.

Вводим фиктивную производную по времени (в левую часть, со знаком «плюс»), превращая стационарную задачу в нестационарную; искомая функция становится функцией двух переменных $u(x)\to\widetilde u(x,t)$:

$$\frac{\partial\widetilde u}{\partial t}+v\frac{\partial\widetilde u}{\partial x}=\sigma\frac{\partial^{2}\widetilde u}{\partial x^{2}}-k\,\widetilde u+f(x).$$

Полученное уравнение — параболического типа. Граничные условия берутся из исходной стационарной задачи и не зависят от времени, поэтому при $t\to\infty$ решение устанавливается: $\widetilde u(x,t)\to[u(x)]$, $\partial\widetilde u/\partial t\to0$. Так как $v>0$, для аппроксимации $\partial u/\partial x$ берётся левая конечная разность.

2. Неявная разностная схема

Вводим сетку по координате $x_j=(j-1)h$, $j=1,\dots,N$, $h=\dfrac{1}{N-1}$, и по «времени» (итерациям) с шагом $\Delta t$. Для нестационарного уравнения записываем неявную схему (на $(n{+}1)$-м слое), используя для $\partial u/\partial x$ левую конечную разность (так как $v>0$):

$$\frac{u_{j}^{n+1}-u_{j}^{n}}{\Delta t}+v\frac{u_{j}^{n+1}-u_{j-1}^{n+1}}{h}=\sigma\frac{u_{j+1}^{n+1}-2u_{j}^{n+1}+u_{j-1}^{n+1}}{h^{2}}-k\,u_{j}^{n+1}+f(x_j).$$

Неявная схема абсолютно устойчива, поэтому шаг итерации $\Delta t$ выбирается произвольно (грубым); это ускоряет сходимость — требуется $n\sim 1/h$ итераций. Порядок аппроксимации $O(\Delta t,h)$.

3. Приведение к виду для прогонки

Домножаем на $\Delta t$ и группируем все неизвестные $(n{+}1)$-го слоя по узлам $u_{j-1}^{n+1},u_{j}^{n+1},u_{j+1}^{n+1}$:

$$a_j u_{j+1}^{n+1}+b_j u_{j}^{n+1}+c_j u_{j-1}^{n+1}=\xi_j^{n},$$$$a_j=-\sigma\frac{\Delta t}{h^{2}},\quad b_j=1+v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+k\,\Delta t,\quad c_j=-v\frac{\Delta t}{h}-\sigma\frac{\Delta t}{h^{2}},\quad \xi_j^{n}=u_j^{n}+\Delta t\,f(x_j).$$

С учётом $v=3$, $\sigma=4$, $k=6x_j$, $f(x_j)=-12$ коэффициенты принимают вид:

4. Проверка сходимости прогонки

Достаточное условие $|a_j|+|c_j|<|b_j|$ выполняется за счёт единицы в $b_j$, появившейся из фиктивной производной по времени:

$$|a_j|+|c_j|=v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}\;<\;1+v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}}+k\,\Delta t=6x_j\Delta t=|b_j|.$$

Здесь $k=6x_j\ge0$, поэтому слагаемое $k\,\Delta t=6x_j\Delta t\ge0$ лишь усиливает диагональ: $|a_j|+|c_j|<|b_j|$ выполняется безусловно — прогонка сходится.

5. Итерационное (прогоночное) соотношение

На каждой итерации трёхдиагональная система решается прогонкой. Итерационным выражением служит прогоночное соотношение (гл. 4.2.2):

$$u_j^{n+1}=\alpha_j\,u_{j+1}^{n+1}+\beta_j,\qquad j=N-1,\dots,1,$$

с прогоночными коэффициентами (прямой ход, $j=2,\dots,N-1$):

$$\alpha_j=-\frac{a_j}{b_j+c_j\alpha_{j-1}},\qquad \beta_j=\frac{\xi_j^{n}-c_j\beta_{j-1}}{b_j+c_j\alpha_{j-1}}.$$

6. Коэффициенты $\alpha_1,\beta_1$ (из левого ГУ)

Левое ГУ 3-го рода $\dfrac{du}{dx}(0)=3\,u(0)+(0)$ аппроксимируем правой разностью:

$$\frac{u_2^{n+1}-u_1^{n+1}}{h}=3\,u_1^{n+1}+(0)\;\Rightarrow\; u_2^{n+1}-h\,(0)=\big(1+h\,3\big)u_1^{n+1}.$$

Откуда $u_1^{n+1}=\dfrac{1}{1+h\,(3)}\,u_2^{n+1}-\dfrac{h\,(0)}{1+h\,(3)}$, и, сравнивая с $u_1^{n+1}=\alpha_1 u_2^{n+1}+\beta_1$:

$$\boxed{\alpha_1=\frac{1}{1+h\,(3)},\qquad \beta_1=\frac{-h\,(0)}{1+h\,(3)}}.$$

7. Решение на правой границе $u_N^{n+1}$ (из правого ГУ)

Правое ГУ 3-го рода $\dfrac{du}{dx}(1)=3\,u(1)+(0)$ аппроксимируем левой разностью и подставляем $u_{N-1}^{n+1}=\alpha_{N-1}u_N^{n+1}+\beta_{N-1}$:

$$\frac{u_N^{n+1}-u_{N-1}^{n+1}}{h}=3\,u_N^{n+1}+(0)\;\Rightarrow\; u_N^{n+1}-\alpha_{N-1}u_N^{n+1}-\beta_{N-1}=h\,3\,u_N^{n+1}+h\,(0).$$$$\boxed{u_N^{n+1}=\frac{\beta_{N-1}+h\,(0)}{1-\alpha_{N-1}-h\,3}}.$$

8. Начальное приближение и условие окончания итераций

В качестве нулевой итерации (начального условия, нужного из-за фиктивной производной по времени) задают свободный член исходного уравнения:

$$u_j^{0}=f(x_j).$$

Итерации продолжают до установления — пока норма разности двух последовательных приближений не станет меньше заданной точности $\varepsilon$:

$$\left\|u^{n+1}-u^{n}\right\|=\sqrt{h\sum_{j=1}^{N}\left(u_j^{n+1}-u_j^{n}\right)^{2}}\le\varepsilon.$$

Алгоритм решения (метод установления, неявная схема)

  1. Задать сетку $x_j=(j-1)h$, шаг итерации $\Delta t$, точность $\varepsilon$.
  2. Задать нулевое приближение $u_j^{0}=f(x_j)$.
  3. Итерация $n\to n+1$ (прогонка):
    • из левого ГУ найти $\alpha_1,\beta_1$;
    • прямой ход $j=2,\dots,N-1$: вычислить $a_j,b_j,c_j,\xi_j^{n}$ и $\alpha_j,\beta_j$;
    • из правого ГУ найти $u_N^{n+1}$;
    • обратный ход $j=N-1,\dots,1$: $u_j^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  4. Проверить условие окончания $\left\|u^{n+1}-u^{n}\right\|\le\varepsilon$. Если не выполнено — положить $u^{n}:=u^{n+1}$ и вернуться к шагу 3; иначе $u_j\approx u_j^{n+1}$ — решение установилось.
Блок-схема алгоритма
Метод установления
Метод установления · все блок-схемы →