🎨
Цвет акцента
Синий
Фиолетовый
Пурпурный
Раздел 18: задачи
18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 18.10
← К задачнику
Задачник · решения

Раздел 18. Привести уравнение к виду, удобному для использования метода простой итерации. Записать выражение для шага итерации. Записать итерационное соотношение, учитывая шаг итерации. Записать условие для окончания итерационного процесса. Выбрать начальное приближение

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

Задача 18.1

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

Решение

Условие

$$2\dfrac{d^{2}u}{dx^{2}}=e^{x}(x-1),\qquad u=u(x),\qquad u(0)=0,\quad u(1)=e$$

Уравнение содержит только производные искомой функции (член $-ku$ отсутствует, т.е. $k=0$). При $k=0$ достаточное условие сходимости прогонки для прямой стационарной схемы нарушается ($|a_j|+|c_j|=|b_j|$), поэтому применяем метод установления (введение фиктивной производной по времени), решая получаемое нестационарное параболическое уравнение неявной разностной схемой.

1. Приведение к каноническому виду и введение фиктивной производной

Метод установления требует привести уравнение к стандартному виду главы 10:

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

(вторая производная — в правой части с положительным знаком, первая — в левой). Для данной задачи:

$$0\cdot\dfrac{du}{dx}=2\dfrac{d^{2}u}{dx^{2}}-e^{x}(x-1),$$

откуда

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

Здесь конвективный член отсутствует ($v=0$), поэтому первая производная в схеме не появляется.

Добавляем в левую часть фиктивную производную по времени с положительным знаком (искомая функция становится функцией двух переменных $\widetilde u(t,x)$):

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

Граничные условия берутся из исходной стационарной задачи и не зависят от времени: $u(x{=}0)=0$, $u(x{=}1)=e$. Поэтому при $t\to\infty$ производная по времени стремится к нулю, а решение «устанавливается» к решению стационарной задачи:

$$t\to\infty,\quad \widetilde u(t,x)\to[u(x)],\quad \frac{\partial\widetilde u}{\partial t}\to0.$$

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

Для нестационарного уравнения записываем неявную схему (пространственные операторы — на искомом $(n{+}1)$-м слое):

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

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

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

Группируем в левой части члены со слоем $(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+2\sigma\frac{\Delta t}{h^{2}},\quad c_{j}=-\sigma\frac{\Delta t}{h^{2}},\quad \xi_{j}^{\,n}=u_{j}^{\,n}+\Delta t\,f(x_{j}).$$

Подставляя значения $v=0$, $\sigma=2$, $f(x_j)=-e^{x}(x-1)$ данной задачи:

$$a_{j}=-{2}\,\dfrac{\Delta t}{h^{2}},\qquad b_{j}=1+2\,{2}\,\dfrac{\Delta t}{h^{2}},$$

$$c_{j}=-{2}\,\dfrac{\Delta t}{h^{2}},\qquad \xi_{j}^{\,n}=u_{j}^{\,n}+\Delta t\,\bigl(-e^{x}(x-1)\bigr).$$

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

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

$$|a_{j}|+|c_{j}|=2\sigma\frac{\Delta t}{h^{2}}<1+2\sigma\frac{\Delta t}{h^{2}}=|b_{j}|.$$

Условие выполнено при любых $\Delta t,h>0$ (и $\sigma>0$), поэтому прогонка применима — в этом и состоит смысл метода установления для случая $k=0$.

5. Рекуррентное прогоночное соотношение

Решение неявной схемы на каждой итерации ищется методом прогонки. Вводится рекуррентное прогоночное соотношение

$$u_{j}^{\,n+1}=\alpha_{j}\,u_{j+1}^{\,n+1}+\beta_{j},\qquad j=1,\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(x{=}0)=0$, т.е. в разностном виде $u_{1}^{\,n+1}=0$. Сравнивая с прогоночным соотношением при $j=1$ ($u_{1}^{\,n+1}=\alpha_{1}u_{2}^{\,n+1}+\beta_{1}$), получаем:

$$\alpha_{1}=0,\qquad \beta_{1}=0.$$

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

Правое граничное условие — 1-го рода: $u(x{=}1)=e$, поэтому значение в крайнем правом узле берётся напрямую:

$$u_{N}^{\,n+1}=e.$$

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

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

$$u_{j}^{\,0}=f(x_{j})=-e^{x}(x-1).$$

(Значения в граничных узлах фиксированы условиями: $u_{1}^{\,0}=0$, $u_{N}^{\,0}=e$.)

9. Условие окончания итерационного процесса

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

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

10. Алгоритм решения

  1. Задать сетку по $x$: $h=1/(N-1)$, узлы $x_j=(j-1)h$; выбрать шаг итерации $\Delta t$ (произвольно, так как схема абсолютно устойчива) и точность $\varepsilon$.
  2. Задать нулевую итерацию $u_{j}^{0}=f(x_j)$; в граничных узлах $u_{1}^{0}=0$, $u_{N}^{0}=e$.
  3. Для текущей итерации $n$ вычислить $\xi_{j}^{n}=u_{j}^{n}+\Delta t\,f(x_j)$.
  4. Прямой ход прогонки ($j=1,\dots,N-1$): $\alpha_1=0$, $\beta_1=0$, далее $\alpha_j,\beta_j$ по формулам п.5.
  5. Найти решение на правой границе: $u_{N}^{n+1}=e$.
  6. Обратный ход прогонки ($j=N-1,\dots,1$): $u_{j}^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  7. Проверить условие окончания (п.9). Если $\|u^{n+1}-u^{n}\|\le\varepsilon$ — процесс установился, $u_j^{n+1}$ есть решение стационарной задачи; иначе $n:=n+1$ и перейти к шагу 3.
Блок-схема алгоритма
Метод простой итерации (ОДУ 2-го порядка)
Метод простой итерации (ОДУ 2-го порядка) · все блок-схемы →
Задача 18.2

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

Решение

Условие

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

Уравнение содержит только производные искомой функции (член $-ku$ отсутствует, т.е. $k=0$). При $k=0$ достаточное условие сходимости прогонки для прямой стационарной схемы нарушается ($|a_j|+|c_j|=|b_j|$), поэтому применяем метод установления (введение фиктивной производной по времени), решая получаемое нестационарное параболическое уравнение неявной разностной схемой.

1. Приведение к каноническому виду и введение фиктивной производной

Метод установления требует привести уравнение к стандартному виду главы 10:

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

(вторая производная — в правой части с положительным знаком, первая — в левой). Для данной задачи:

$$2\dfrac{du}{dx}=1\cdot\dfrac{d^{2}u}{dx^{2}}+4x,$$

откуда

$$v=2,\qquad \sigma=1,\qquad f(x)=4x.$$

Так как $v=2>0$, производную $\partial u/\partial x$ аппроксимируем левой конечной разностью.

Добавляем в левую часть фиктивную производную по времени с положительным знаком (искомая функция становится функцией двух переменных $\widetilde u(t,x)$):

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

Граничные условия берутся из исходной стационарной задачи и не зависят от времени: $u(x{=}0)=0$, $u(x{=}1)=2$. Поэтому при $t\to\infty$ производная по времени стремится к нулю, а решение «устанавливается» к решению стационарной задачи:

$$t\to\infty,\quad \widetilde u(t,x)\to[u(x)],\quad \frac{\partial\widetilde u}{\partial t}\to0.$$

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

Для нестационарного уравнения записываем неявную схему (пространственные операторы — на искомом $(n{+}1)$-м слое):

$$\frac{u_{j}^{\,n+1}-u_{j}^{\,n}}{\Delta t}+v\,\dfrac{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}}+f(x_{j}).$$

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

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

Группируем в левой части члены со слоем $(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}},\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$, $f(x_j)=4x_{j}$ данной задачи:

$$a_{j}=-{1}\,\dfrac{\Delta t}{h^{2}},\qquad b_{j}=1+2\,\dfrac{\Delta t}{h}+2\,{1}\,\dfrac{\Delta t}{h^{2}},$$

$$c_{j}=-2\,\dfrac{\Delta t}{h}-{1}\,\dfrac{\Delta t}{h^{2}},\qquad \xi_{j}^{\,n}=u_{j}^{\,n}+\Delta t\,\bigl(4x_{j}\bigr).$$

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}}=|b_{j}|.$$

Условие выполнено при любых $\Delta t,h>0$ (и $\sigma>0$), поэтому прогонка применима — в этом и состоит смысл метода установления для случая $k=0$.

5. Рекуррентное прогоночное соотношение

Решение неявной схемы на каждой итерации ищется методом прогонки. Вводится рекуррентное прогоночное соотношение

$$u_{j}^{\,n+1}=\alpha_{j}\,u_{j+1}^{\,n+1}+\beta_{j},\qquad j=1,\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(x{=}0)=0$, т.е. в разностном виде $u_{1}^{\,n+1}=0$. Сравнивая с прогоночным соотношением при $j=1$ ($u_{1}^{\,n+1}=\alpha_{1}u_{2}^{\,n+1}+\beta_{1}$), получаем:

$$\alpha_{1}=0,\qquad \beta_{1}=0.$$

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

Правое граничное условие — 1-го рода: $u(x{=}1)=2$, поэтому значение в крайнем правом узле берётся напрямую:

$$u_{N}^{\,n+1}=2.$$

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

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

$$u_{j}^{\,0}=f(x_{j})=4x_{j}.$$

(Значения в граничных узлах фиксированы условиями: $u_{1}^{\,0}=0$, $u_{N}^{\,0}=2$.)

9. Условие окончания итерационного процесса

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

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

10. Алгоритм решения

  1. Задать сетку по $x$: $h=1/(N-1)$, узлы $x_j=(j-1)h$; выбрать шаг итерации $\Delta t$ (произвольно, так как схема абсолютно устойчива) и точность $\varepsilon$.
  2. Задать нулевую итерацию $u_{j}^{0}=f(x_j)$; в граничных узлах $u_{1}^{0}=0$, $u_{N}^{0}=2$.
  3. Для текущей итерации $n$ вычислить $\xi_{j}^{n}=u_{j}^{n}+\Delta t\,f(x_j)$.
  4. Прямой ход прогонки ($j=1,\dots,N-1$): $\alpha_1=0$, $\beta_1=0$, далее $\alpha_j,\beta_j$ по формулам п.5.
  5. Найти решение на правой границе: $u_{N}^{n+1}=2$.
  6. Обратный ход прогонки ($j=N-1,\dots,1$): $u_{j}^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  7. Проверить условие окончания (п.9). Если $\|u^{n+1}-u^{n}\|\le\varepsilon$ — процесс установился, $u_j^{n+1}$ есть решение стационарной задачи; иначе $n:=n+1$ и перейти к шагу 3.
Блок-схема алгоритма
Метод простой итерации (ОДУ 2-го порядка)
Метод простой итерации (ОДУ 2-го порядка) · все блок-схемы →
Задача 18.3

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

Решение

Условие

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

Уравнение содержит только производные искомой функции (член $-ku$ отсутствует, т.е. $k=0$). При $k=0$ достаточное условие сходимости прогонки для прямой стационарной схемы нарушается ($|a_j|+|c_j|=|b_j|$), поэтому применяем метод установления (введение фиктивной производной по времени), решая получаемое нестационарное параболическое уравнение неявной разностной схемой.

1. Приведение к каноническому виду и введение фиктивной производной

Метод установления требует привести уравнение к стандартному виду главы 10:

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

(вторая производная — в правой части с положительным знаком, первая — в левой). Для данной задачи:

$$-\dfrac{du}{dx}=\dfrac{d^{2}u}{dx^{2}}+2x,$$

откуда

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

Так как $v=-1<0$, производную $\partial u/\partial x$ аппроксимируем правой конечной разностью.

Добавляем в левую часть фиктивную производную по времени с положительным знаком (искомая функция становится функцией двух переменных $\widetilde u(t,x)$):

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

Граничные условия берутся из исходной стационарной задачи и не зависят от времени: $u(x{=}0)=0$, $u(x{=}1)=1$. Поэтому при $t\to\infty$ производная по времени стремится к нулю, а решение «устанавливается» к решению стационарной задачи:

$$t\to\infty,\quad \widetilde u(t,x)\to[u(x)],\quad \frac{\partial\widetilde u}{\partial t}\to0.$$

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

Для нестационарного уравнения записываем неявную схему (пространственные операторы — на искомом $(n{+}1)$-м слое):

$$\frac{u_{j}^{\,n+1}-u_{j}^{\,n}}{\Delta t}+v\,\dfrac{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}}+f(x_{j}).$$

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

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

Группируем в левой части члены со слоем $(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}=v\frac{\Delta t}{h}-\sigma\frac{\Delta t}{h^{2}},\quad b_{j}=1-v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}},\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$, $f(x_j)=2x_{j}$ данной задачи:

$$a_{j}=-1\,\dfrac{\Delta t}{h}-{1}\,\dfrac{\Delta t}{h^{2}},\qquad b_{j}=1+1\,\dfrac{\Delta t}{h}+2\,{1}\,\dfrac{\Delta t}{h^{2}},$$

$$c_{j}=-{1}\,\dfrac{\Delta t}{h^{2}},\qquad \xi_{j}^{\,n}=u_{j}^{\,n}+\Delta t\,\bigl(2x_{j}\bigr).$$

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}}=|b_{j}|.$$

Условие выполнено при любых $\Delta t,h>0$ (и $\sigma>0$), поэтому прогонка применима — в этом и состоит смысл метода установления для случая $k=0$.

5. Рекуррентное прогоночное соотношение

Решение неявной схемы на каждой итерации ищется методом прогонки. Вводится рекуррентное прогоночное соотношение

$$u_{j}^{\,n+1}=\alpha_{j}\,u_{j+1}^{\,n+1}+\beta_{j},\qquad j=1,\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(x{=}0)=0$, т.е. в разностном виде $u_{1}^{\,n+1}=0$. Сравнивая с прогоночным соотношением при $j=1$ ($u_{1}^{\,n+1}=\alpha_{1}u_{2}^{\,n+1}+\beta_{1}$), получаем:

$$\alpha_{1}=0,\qquad \beta_{1}=0.$$

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

Правое граничное условие — 1-го рода: $u(x{=}1)=1$, поэтому значение в крайнем правом узле берётся напрямую:

$$u_{N}^{\,n+1}=1.$$

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

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

$$u_{j}^{\,0}=f(x_{j})=2x_{j}.$$

(Значения в граничных узлах фиксированы условиями: $u_{1}^{\,0}=0$, $u_{N}^{\,0}=1$.)

9. Условие окончания итерационного процесса

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

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

10. Алгоритм решения

  1. Задать сетку по $x$: $h=1/(N-1)$, узлы $x_j=(j-1)h$; выбрать шаг итерации $\Delta t$ (произвольно, так как схема абсолютно устойчива) и точность $\varepsilon$.
  2. Задать нулевую итерацию $u_{j}^{0}=f(x_j)$; в граничных узлах $u_{1}^{0}=0$, $u_{N}^{0}=1$.
  3. Для текущей итерации $n$ вычислить $\xi_{j}^{n}=u_{j}^{n}+\Delta t\,f(x_j)$.
  4. Прямой ход прогонки ($j=1,\dots,N-1$): $\alpha_1=0$, $\beta_1=0$, далее $\alpha_j,\beta_j$ по формулам п.5.
  5. Найти решение на правой границе: $u_{N}^{n+1}=1$.
  6. Обратный ход прогонки ($j=N-1,\dots,1$): $u_{j}^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  7. Проверить условие окончания (п.9). Если $\|u^{n+1}-u^{n}\|\le\varepsilon$ — процесс установился, $u_j^{n+1}$ есть решение стационарной задачи; иначе $n:=n+1$ и перейти к шагу 3.
Блок-схема алгоритма
Метод простой итерации (ОДУ 2-го порядка)
Метод простой итерации (ОДУ 2-го порядка) · все блок-схемы →
Задача 18.4

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

Решение

Условие

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

Уравнение содержит только производные искомой функции (член $-ku$ отсутствует, т.е. $k=0$). При $k=0$ достаточное условие сходимости прогонки для прямой стационарной схемы нарушается ($|a_j|+|c_j|=|b_j|$), поэтому применяем метод установления (введение фиктивной производной по времени), решая получаемое нестационарное параболическое уравнение неявной разностной схемой.

1. Приведение к каноническому виду и введение фиктивной производной

Метод установления требует привести уравнение к стандартному виду главы 10:

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

(вторая производная — в правой части с положительным знаком, первая — в левой). Для данной задачи:

$$1\cdot\dfrac{du}{dx}=x\,\dfrac{d^{2}u}{dx^{2}}+0,$$

откуда

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

Так как $v=1>0$, производную $\partial u/\partial x$ аппроксимируем левой конечной разностью. Коэффициент $\sigma=x$ переменный, поэтому в схеме берётся его значение в узле: $\sigma_{j}=x_{j}$.

Добавляем в левую часть фиктивную производную по времени с положительным знаком (искомая функция становится функцией двух переменных $\widetilde u(t,x)$):

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

Граничные условия берутся из исходной стационарной задачи и не зависят от времени: $u(x{=}0)=2$, $u(x{=}1)=1$. Поэтому при $t\to\infty$ производная по времени стремится к нулю, а решение «устанавливается» к решению стационарной задачи:

$$t\to\infty,\quad \widetilde u(t,x)\to[u(x)],\quad \frac{\partial\widetilde u}{\partial t}\to0.$$

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

Для нестационарного уравнения записываем неявную схему (пространственные операторы — на искомом $(n{+}1)$-м слое):

$$\frac{u_{j}^{\,n+1}-u_{j}^{\,n}}{\Delta t}+v\,\dfrac{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}}+f(x_{j}).$$

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

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

Группируем в левой части члены со слоем $(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}},\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}$, $f(x_j)=0$ данной задачи:

$$a_{j}=-{x_{j}}\,\dfrac{\Delta t}{h^{2}},\qquad b_{j}=1+1\,\dfrac{\Delta t}{h}+2\,{x_{j}}\,\dfrac{\Delta t}{h^{2}},$$

$$c_{j}=-1\,\dfrac{\Delta t}{h}-{x_{j}}\,\dfrac{\Delta t}{h^{2}},\qquad \xi_{j}^{\,n}=u_{j}^{\,n}+\Delta t\,\bigl(0\bigr).$$

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}}=|b_{j}|.$$

Условие выполнено при любых $\Delta t,h>0$ (и $\sigma>0$), поэтому прогонка применима — в этом и состоит смысл метода установления для случая $k=0$.

5. Рекуррентное прогоночное соотношение

Решение неявной схемы на каждой итерации ищется методом прогонки. Вводится рекуррентное прогоночное соотношение

$$u_{j}^{\,n+1}=\alpha_{j}\,u_{j+1}^{\,n+1}+\beta_{j},\qquad j=1,\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(x{=}0)=2$, т.е. в разностном виде $u_{1}^{\,n+1}=2$. Сравнивая с прогоночным соотношением при $j=1$ ($u_{1}^{\,n+1}=\alpha_{1}u_{2}^{\,n+1}+\beta_{1}$), получаем:

$$\alpha_{1}=0,\qquad \beta_{1}=2.$$

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

Правое граничное условие — 1-го рода: $u(x{=}1)=1$, поэтому значение в крайнем правом узле берётся напрямую:

$$u_{N}^{\,n+1}=1.$$

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

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

$$u_{j}^{\,0}=f(x_{j})=0.$$

(Значения в граничных узлах фиксированы условиями: $u_{1}^{\,0}=2$, $u_{N}^{\,0}=1$.)

9. Условие окончания итерационного процесса

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

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

10. Алгоритм решения

  1. Задать сетку по $x$: $h=1/(N-1)$, узлы $x_j=(j-1)h$; выбрать шаг итерации $\Delta t$ (произвольно, так как схема абсолютно устойчива) и точность $\varepsilon$.
  2. Задать нулевую итерацию $u_{j}^{0}=f(x_j)$; в граничных узлах $u_{1}^{0}=2$, $u_{N}^{0}=1$.
  3. Для текущей итерации $n$ вычислить $\xi_{j}^{n}=u_{j}^{n}+\Delta t\,f(x_j)$.
  4. Прямой ход прогонки ($j=1,\dots,N-1$): $\alpha_1=0$, $\beta_1=2$, далее $\alpha_j,\beta_j$ по формулам п.5.
  5. Найти решение на правой границе: $u_{N}^{n+1}=1$.
  6. Обратный ход прогонки ($j=N-1,\dots,1$): $u_{j}^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  7. Проверить условие окончания (п.9). Если $\|u^{n+1}-u^{n}\|\le\varepsilon$ — процесс установился, $u_j^{n+1}$ есть решение стационарной задачи; иначе $n:=n+1$ и перейти к шагу 3.
Блок-схема алгоритма
Метод простой итерации (ОДУ 2-го порядка)
Метод простой итерации (ОДУ 2-го порядка) · все блок-схемы →
Задача 18.5

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

Решение

Условие

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

Уравнение содержит только производные искомой функции (член $-ku$ отсутствует, т.е. $k=0$). При $k=0$ достаточное условие сходимости прогонки для прямой стационарной схемы нарушается ($|a_j|+|c_j|=|b_j|$), поэтому применяем метод установления (введение фиктивной производной по времени), решая получаемое нестационарное параболическое уравнение неявной разностной схемой.

1. Приведение к каноническому виду и введение фиктивной производной

Метод установления требует привести уравнение к стандартному виду главы 10:

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

(вторая производная — в правой части с положительным знаком, первая — в левой). Для данной задачи:

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

откуда

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

Так как $v=-1<0$, производную $\partial u/\partial x$ аппроксимируем правой конечной разностью.

Добавляем в левую часть фиктивную производную по времени с положительным знаком (искомая функция становится функцией двух переменных $\widetilde u(t,x)$):

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

Граничные условия берутся из исходной стационарной задачи и не зависят от времени: $u(x{=}0)=0$, $u(x{=}1)=2$. Поэтому при $t\to\infty$ производная по времени стремится к нулю, а решение «устанавливается» к решению стационарной задачи:

$$t\to\infty,\quad \widetilde u(t,x)\to[u(x)],\quad \frac{\partial\widetilde u}{\partial t}\to0.$$

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

Для нестационарного уравнения записываем неявную схему (пространственные операторы — на искомом $(n{+}1)$-м слое):

$$\frac{u_{j}^{\,n+1}-u_{j}^{\,n}}{\Delta t}+v\,\dfrac{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}}+f(x_{j}).$$

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

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

Группируем в левой части члены со слоем $(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}=v\frac{\Delta t}{h}-\sigma\frac{\Delta t}{h^{2}},\quad b_{j}=1-v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}},\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$, $f(x_j)=-3\bigl(2-x_{j}^{2}\bigr)$ данной задачи:

$$a_{j}=-1\,\dfrac{\Delta t}{h}-{1}\,\dfrac{\Delta t}{h^{2}},\qquad b_{j}=1+1\,\dfrac{\Delta t}{h}+2\,{1}\,\dfrac{\Delta t}{h^{2}},$$

$$c_{j}=-{1}\,\dfrac{\Delta t}{h^{2}},\qquad \xi_{j}^{\,n}=u_{j}^{\,n}+\Delta t\,\bigl(-3\bigl(2-x_{j}^{2}\bigr)\bigr).$$

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}}=|b_{j}|.$$

Условие выполнено при любых $\Delta t,h>0$ (и $\sigma>0$), поэтому прогонка применима — в этом и состоит смысл метода установления для случая $k=0$.

5. Рекуррентное прогоночное соотношение

Решение неявной схемы на каждой итерации ищется методом прогонки. Вводится рекуррентное прогоночное соотношение

$$u_{j}^{\,n+1}=\alpha_{j}\,u_{j+1}^{\,n+1}+\beta_{j},\qquad j=1,\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(x{=}0)=0$, т.е. в разностном виде $u_{1}^{\,n+1}=0$. Сравнивая с прогоночным соотношением при $j=1$ ($u_{1}^{\,n+1}=\alpha_{1}u_{2}^{\,n+1}+\beta_{1}$), получаем:

$$\alpha_{1}=0,\qquad \beta_{1}=0.$$

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

Правое граничное условие — 1-го рода: $u(x{=}1)=2$, поэтому значение в крайнем правом узле берётся напрямую:

$$u_{N}^{\,n+1}=2.$$

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

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

$$u_{j}^{\,0}=f(x_{j})=-3\bigl(2-x_{j}^{2}\bigr).$$

(Значения в граничных узлах фиксированы условиями: $u_{1}^{\,0}=0$, $u_{N}^{\,0}=2$.)

9. Условие окончания итерационного процесса

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

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

10. Алгоритм решения

  1. Задать сетку по $x$: $h=1/(N-1)$, узлы $x_j=(j-1)h$; выбрать шаг итерации $\Delta t$ (произвольно, так как схема абсолютно устойчива) и точность $\varepsilon$.
  2. Задать нулевую итерацию $u_{j}^{0}=f(x_j)$; в граничных узлах $u_{1}^{0}=0$, $u_{N}^{0}=2$.
  3. Для текущей итерации $n$ вычислить $\xi_{j}^{n}=u_{j}^{n}+\Delta t\,f(x_j)$.
  4. Прямой ход прогонки ($j=1,\dots,N-1$): $\alpha_1=0$, $\beta_1=0$, далее $\alpha_j,\beta_j$ по формулам п.5.
  5. Найти решение на правой границе: $u_{N}^{n+1}=2$.
  6. Обратный ход прогонки ($j=N-1,\dots,1$): $u_{j}^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  7. Проверить условие окончания (п.9). Если $\|u^{n+1}-u^{n}\|\le\varepsilon$ — процесс установился, $u_j^{n+1}$ есть решение стационарной задачи; иначе $n:=n+1$ и перейти к шагу 3.
Блок-схема алгоритма
Метод простой итерации (ОДУ 2-го порядка)
Метод простой итерации (ОДУ 2-го порядка) · все блок-схемы →
Задача 18.6

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

Решение

Условие

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

Уравнение содержит только производные искомой функции (член $-ku$ отсутствует, т.е. $k=0$). При $k=0$ достаточное условие сходимости прогонки для прямой стационарной схемы нарушается ($|a_j|+|c_j|=|b_j|$), поэтому применяем метод установления (введение фиктивной производной по времени), решая получаемое нестационарное параболическое уравнение неявной разностной схемой.

1. Приведение к каноническому виду и введение фиктивной производной

Метод установления требует привести уравнение к стандартному виду главы 10:

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

(вторая производная — в правой части с положительным знаком, первая — в левой). Для данной задачи:

$$2\dfrac{du}{dx}=x\,\dfrac{d^{2}u}{dx^{2}}+2,$$

откуда

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

Так как $v=2>0$, производную $\partial u/\partial x$ аппроксимируем левой конечной разностью. Коэффициент $\sigma=x$ переменный: $\sigma_{j}=x_{j}$.

Добавляем в левую часть фиктивную производную по времени с положительным знаком (искомая функция становится функцией двух переменных $\widetilde u(t,x)$):

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

Граничные условия берутся из исходной стационарной задачи и не зависят от времени: $u(x{=}0)=0$, $u(x{=}1)=2$. Поэтому при $t\to\infty$ производная по времени стремится к нулю, а решение «устанавливается» к решению стационарной задачи:

$$t\to\infty,\quad \widetilde u(t,x)\to[u(x)],\quad \frac{\partial\widetilde u}{\partial t}\to0.$$

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

Для нестационарного уравнения записываем неявную схему (пространственные операторы — на искомом $(n{+}1)$-м слое):

$$\frac{u_{j}^{\,n+1}-u_{j}^{\,n}}{\Delta t}+v\,\dfrac{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}}+f(x_{j}).$$

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

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

Группируем в левой части члены со слоем $(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}},\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=x_{j}$, $f(x_j)=2$ данной задачи:

$$a_{j}=-{x_{j}}\,\dfrac{\Delta t}{h^{2}},\qquad b_{j}=1+2\,\dfrac{\Delta t}{h}+2\,{x_{j}}\,\dfrac{\Delta t}{h^{2}},$$

$$c_{j}=-2\,\dfrac{\Delta t}{h}-{x_{j}}\,\dfrac{\Delta t}{h^{2}},\qquad \xi_{j}^{\,n}=u_{j}^{\,n}+\Delta t\,\bigl(2\bigr).$$

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}}=|b_{j}|.$$

Условие выполнено при любых $\Delta t,h>0$ (и $\sigma>0$), поэтому прогонка применима — в этом и состоит смысл метода установления для случая $k=0$.

5. Рекуррентное прогоночное соотношение

Решение неявной схемы на каждой итерации ищется методом прогонки. Вводится рекуррентное прогоночное соотношение

$$u_{j}^{\,n+1}=\alpha_{j}\,u_{j+1}^{\,n+1}+\beta_{j},\qquad j=1,\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(x{=}0)=0$, т.е. в разностном виде $u_{1}^{\,n+1}=0$. Сравнивая с прогоночным соотношением при $j=1$ ($u_{1}^{\,n+1}=\alpha_{1}u_{2}^{\,n+1}+\beta_{1}$), получаем:

$$\alpha_{1}=0,\qquad \beta_{1}=0.$$

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

Правое граничное условие — 1-го рода: $u(x{=}1)=2$, поэтому значение в крайнем правом узле берётся напрямую:

$$u_{N}^{\,n+1}=2.$$

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

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

$$u_{j}^{\,0}=f(x_{j})=2.$$

(Значения в граничных узлах фиксированы условиями: $u_{1}^{\,0}=0$, $u_{N}^{\,0}=2$.)

9. Условие окончания итерационного процесса

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

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

10. Алгоритм решения

  1. Задать сетку по $x$: $h=1/(N-1)$, узлы $x_j=(j-1)h$; выбрать шаг итерации $\Delta t$ (произвольно, так как схема абсолютно устойчива) и точность $\varepsilon$.
  2. Задать нулевую итерацию $u_{j}^{0}=f(x_j)$; в граничных узлах $u_{1}^{0}=0$, $u_{N}^{0}=2$.
  3. Для текущей итерации $n$ вычислить $\xi_{j}^{n}=u_{j}^{n}+\Delta t\,f(x_j)$.
  4. Прямой ход прогонки ($j=1,\dots,N-1$): $\alpha_1=0$, $\beta_1=0$, далее $\alpha_j,\beta_j$ по формулам п.5.
  5. Найти решение на правой границе: $u_{N}^{n+1}=2$.
  6. Обратный ход прогонки ($j=N-1,\dots,1$): $u_{j}^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  7. Проверить условие окончания (п.9). Если $\|u^{n+1}-u^{n}\|\le\varepsilon$ — процесс установился, $u_j^{n+1}$ есть решение стационарной задачи; иначе $n:=n+1$ и перейти к шагу 3.
Блок-схема алгоритма
Метод простой итерации (ОДУ 2-го порядка)
Метод простой итерации (ОДУ 2-го порядка) · все блок-схемы →
Задача 18.7

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

Решение

Условие

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

Уравнение содержит только производные искомой функции (член $-ku$ отсутствует, т.е. $k=0$). При $k=0$ достаточное условие сходимости прогонки для прямой стационарной схемы нарушается ($|a_j|+|c_j|=|b_j|$), поэтому применяем метод установления (введение фиктивной производной по времени), решая получаемое нестационарное параболическое уравнение неявной разностной схемой.

1. Приведение к каноническому виду и введение фиктивной производной

Метод установления требует привести уравнение к стандартному виду главы 10:

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

(вторая производная — в правой части с положительным знаком, первая — в левой). Для данной задачи:

$$0\cdot\dfrac{du}{dx}=\dfrac{d^{2}u}{dx^{2}}-e^{-x}(2+x^{2}),$$

откуда

$$v=0,\qquad \sigma=1,\qquad f(x)=-e^{-x}\bigl(2+x^{2}\bigr).$$

Здесь конвективный член отсутствует ($v=0$), первая производная в схеме не появляется.

Добавляем в левую часть фиктивную производную по времени с положительным знаком (искомая функция становится функцией двух переменных $\widetilde u(t,x)$):

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

Граничные условия берутся из исходной стационарной задачи и не зависят от времени: $u(x{=}0)=0$, $u(x{=}1)=\dfrac{1}{e}$. Поэтому при $t\to\infty$ производная по времени стремится к нулю, а решение «устанавливается» к решению стационарной задачи:

$$t\to\infty,\quad \widetilde u(t,x)\to[u(x)],\quad \frac{\partial\widetilde u}{\partial t}\to0.$$

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

Для нестационарного уравнения записываем неявную схему (пространственные операторы — на искомом $(n{+}1)$-м слое):

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

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

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

Группируем в левой части члены со слоем $(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+2\sigma\frac{\Delta t}{h^{2}},\quad c_{j}=-\sigma\frac{\Delta t}{h^{2}},\quad \xi_{j}^{\,n}=u_{j}^{\,n}+\Delta t\,f(x_{j}).$$

Подставляя значения $v=0$, $\sigma=1$, $f(x_j)=-e^{-x_{j}}\bigl(2+x_{j}^{2}\bigr)$ данной задачи:

$$a_{j}=-{1}\,\dfrac{\Delta t}{h^{2}},\qquad b_{j}=1+2\,{1}\,\dfrac{\Delta t}{h^{2}},$$

$$c_{j}=-{1}\,\dfrac{\Delta t}{h^{2}},\qquad \xi_{j}^{\,n}=u_{j}^{\,n}+\Delta t\,\bigl(-e^{-x_{j}}\bigl(2+x_{j}^{2}\bigr)\bigr).$$

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

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

$$|a_{j}|+|c_{j}|=2\sigma\frac{\Delta t}{h^{2}}<1+2\sigma\frac{\Delta t}{h^{2}}=|b_{j}|.$$

Условие выполнено при любых $\Delta t,h>0$ (и $\sigma>0$), поэтому прогонка применима — в этом и состоит смысл метода установления для случая $k=0$.

5. Рекуррентное прогоночное соотношение

Решение неявной схемы на каждой итерации ищется методом прогонки. Вводится рекуррентное прогоночное соотношение

$$u_{j}^{\,n+1}=\alpha_{j}\,u_{j+1}^{\,n+1}+\beta_{j},\qquad j=1,\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(x{=}0)=0$, т.е. в разностном виде $u_{1}^{\,n+1}=0$. Сравнивая с прогоночным соотношением при $j=1$ ($u_{1}^{\,n+1}=\alpha_{1}u_{2}^{\,n+1}+\beta_{1}$), получаем:

$$\alpha_{1}=0,\qquad \beta_{1}=0.$$

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

Правое граничное условие — 1-го рода: $u(x{=}1)=\dfrac{1}{e}$, поэтому значение в крайнем правом узле берётся напрямую:

$$u_{N}^{\,n+1}=\dfrac{1}{e}.$$

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

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

$$u_{j}^{\,0}=f(x_{j})=-e^{-x_{j}}\bigl(2+x_{j}^{2}\bigr).$$

(Значения в граничных узлах фиксированы условиями: $u_{1}^{\,0}=0$, $u_{N}^{\,0}=\dfrac{1}{e}$.)

9. Условие окончания итерационного процесса

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

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

10. Алгоритм решения

  1. Задать сетку по $x$: $h=1/(N-1)$, узлы $x_j=(j-1)h$; выбрать шаг итерации $\Delta t$ (произвольно, так как схема абсолютно устойчива) и точность $\varepsilon$.
  2. Задать нулевую итерацию $u_{j}^{0}=f(x_j)$; в граничных узлах $u_{1}^{0}=0$, $u_{N}^{0}=\dfrac{1}{e}$.
  3. Для текущей итерации $n$ вычислить $\xi_{j}^{n}=u_{j}^{n}+\Delta t\,f(x_j)$.
  4. Прямой ход прогонки ($j=1,\dots,N-1$): $\alpha_1=0$, $\beta_1=0$, далее $\alpha_j,\beta_j$ по формулам п.5.
  5. Найти решение на правой границе: $u_{N}^{n+1}=\dfrac{1}{e}$.
  6. Обратный ход прогонки ($j=N-1,\dots,1$): $u_{j}^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  7. Проверить условие окончания (п.9). Если $\|u^{n+1}-u^{n}\|\le\varepsilon$ — процесс установился, $u_j^{n+1}$ есть решение стационарной задачи; иначе $n:=n+1$ и перейти к шагу 3.
Блок-схема алгоритма
Метод простой итерации (ОДУ 2-го порядка)
Метод простой итерации (ОДУ 2-го порядка) · все блок-схемы →
Задача 18.8

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

Решение

Условие

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

Уравнение содержит только производные искомой функции (член $-ku$ отсутствует, т.е. $k=0$). При $k=0$ достаточное условие сходимости прогонки для прямой стационарной схемы нарушается ($|a_j|+|c_j|=|b_j|$), поэтому применяем метод установления (введение фиктивной производной по времени), решая получаемое нестационарное параболическое уравнение неявной разностной схемой.

1. Приведение к каноническому виду и введение фиктивной производной

Метод установления требует привести уравнение к стандартному виду главы 10:

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

(вторая производная — в правой части с положительным знаком, первая — в левой). Для данной задачи:

$$\dfrac{du}{dx}=\dfrac{d^{2}u}{dx^{2}}-2x\,e^{x+1},$$

откуда

$$v=1,\qquad \sigma=1,\qquad f(x)=-2xe^{x+1}.$$

Так как $v=1>0$, производную $\partial u/\partial x$ аппроксимируем левой конечной разностью.

Добавляем в левую часть фиктивную производную по времени с положительным знаком (искомая функция становится функцией двух переменных $\widetilde u(t,x)$):

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

Граничные условия берутся из исходной стационарной задачи и не зависят от времени: $u(x{=}0)=e$, $u(x{=}1)=0$. Поэтому при $t\to\infty$ производная по времени стремится к нулю, а решение «устанавливается» к решению стационарной задачи:

$$t\to\infty,\quad \widetilde u(t,x)\to[u(x)],\quad \frac{\partial\widetilde u}{\partial t}\to0.$$

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

Для нестационарного уравнения записываем неявную схему (пространственные операторы — на искомом $(n{+}1)$-м слое):

$$\frac{u_{j}^{\,n+1}-u_{j}^{\,n}}{\Delta t}+v\,\dfrac{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}}+f(x_{j}).$$

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

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

Группируем в левой части члены со слоем $(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}},\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$, $f(x_j)=-2x_{j}e^{x_{j}+1}$ данной задачи:

$$a_{j}=-{1}\,\dfrac{\Delta t}{h^{2}},\qquad b_{j}=1+1\,\dfrac{\Delta t}{h}+2\,{1}\,\dfrac{\Delta t}{h^{2}},$$

$$c_{j}=-1\,\dfrac{\Delta t}{h}-{1}\,\dfrac{\Delta t}{h^{2}},\qquad \xi_{j}^{\,n}=u_{j}^{\,n}+\Delta t\,\bigl(-2x_{j}e^{x_{j}+1}\bigr).$$

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}}=|b_{j}|.$$

Условие выполнено при любых $\Delta t,h>0$ (и $\sigma>0$), поэтому прогонка применима — в этом и состоит смысл метода установления для случая $k=0$.

5. Рекуррентное прогоночное соотношение

Решение неявной схемы на каждой итерации ищется методом прогонки. Вводится рекуррентное прогоночное соотношение

$$u_{j}^{\,n+1}=\alpha_{j}\,u_{j+1}^{\,n+1}+\beta_{j},\qquad j=1,\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(x{=}0)=e$, т.е. в разностном виде $u_{1}^{\,n+1}=e$. Сравнивая с прогоночным соотношением при $j=1$ ($u_{1}^{\,n+1}=\alpha_{1}u_{2}^{\,n+1}+\beta_{1}$), получаем:

$$\alpha_{1}=0,\qquad \beta_{1}=e.$$

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

Правое граничное условие — 1-го рода: $u(x{=}1)=0$, поэтому значение в крайнем правом узле берётся напрямую:

$$u_{N}^{\,n+1}=0.$$

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

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

$$u_{j}^{\,0}=f(x_{j})=-2x_{j}e^{x_{j}+1}.$$

(Значения в граничных узлах фиксированы условиями: $u_{1}^{\,0}=e$, $u_{N}^{\,0}=0$.)

9. Условие окончания итерационного процесса

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

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

10. Алгоритм решения

  1. Задать сетку по $x$: $h=1/(N-1)$, узлы $x_j=(j-1)h$; выбрать шаг итерации $\Delta t$ (произвольно, так как схема абсолютно устойчива) и точность $\varepsilon$.
  2. Задать нулевую итерацию $u_{j}^{0}=f(x_j)$; в граничных узлах $u_{1}^{0}=e$, $u_{N}^{0}=0$.
  3. Для текущей итерации $n$ вычислить $\xi_{j}^{n}=u_{j}^{n}+\Delta t\,f(x_j)$.
  4. Прямой ход прогонки ($j=1,\dots,N-1$): $\alpha_1=0$, $\beta_1=e$, далее $\alpha_j,\beta_j$ по формулам п.5.
  5. Найти решение на правой границе: $u_{N}^{n+1}=0$.
  6. Обратный ход прогонки ($j=N-1,\dots,1$): $u_{j}^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  7. Проверить условие окончания (п.9). Если $\|u^{n+1}-u^{n}\|\le\varepsilon$ — процесс установился, $u_j^{n+1}$ есть решение стационарной задачи; иначе $n:=n+1$ и перейти к шагу 3.
Блок-схема алгоритма
Метод простой итерации (ОДУ 2-го порядка)
Метод простой итерации (ОДУ 2-го порядка) · все блок-схемы →
Задача 18.9

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

Решение

Условие

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

Уравнение содержит только производные искомой функции (член $-ku$ отсутствует, т.е. $k=0$). При $k=0$ достаточное условие сходимости прогонки для прямой стационарной схемы нарушается ($|a_j|+|c_j|=|b_j|$), поэтому применяем метод установления (введение фиктивной производной по времени), решая получаемое нестационарное параболическое уравнение неявной разностной схемой.

1. Приведение к каноническому виду и введение фиктивной производной

Метод установления требует привести уравнение к стандартному виду главы 10:

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

(вторая производная — в правой части с положительным знаком, первая — в левой). Для данной задачи:

$$-2\dfrac{du}{dx}=\dfrac{d^{2}u}{dx^{2}}+0,$$

откуда

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

Так как $v=-2<0$, производную $\partial u/\partial x$ аппроксимируем правой конечной разностью.

Добавляем в левую часть фиктивную производную по времени с положительным знаком (искомая функция становится функцией двух переменных $\widetilde u(t,x)$):

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

Граничные условия берутся из исходной стационарной задачи и не зависят от времени: $u(x{=}0)=e^{3}$, $u(x{=}1)=e$. Поэтому при $t\to\infty$ производная по времени стремится к нулю, а решение «устанавливается» к решению стационарной задачи:

$$t\to\infty,\quad \widetilde u(t,x)\to[u(x)],\quad \frac{\partial\widetilde u}{\partial t}\to0.$$

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

Для нестационарного уравнения записываем неявную схему (пространственные операторы — на искомом $(n{+}1)$-м слое):

$$\frac{u_{j}^{\,n+1}-u_{j}^{\,n}}{\Delta t}+v\,\dfrac{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}}+f(x_{j}).$$

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

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

Группируем в левой части члены со слоем $(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}=v\frac{\Delta t}{h}-\sigma\frac{\Delta t}{h^{2}},\quad b_{j}=1-v\frac{\Delta t}{h}+2\sigma\frac{\Delta t}{h^{2}},\quad c_{j}=-\sigma\frac{\Delta t}{h^{2}},\quad \xi_{j}^{\,n}=u_{j}^{\,n}+\Delta t\,f(x_{j}).$$

Подставляя значения $v=-2$, $\sigma=1$, $f(x_j)=0$ данной задачи:

$$a_{j}=-2\,\dfrac{\Delta t}{h}-{1}\,\dfrac{\Delta t}{h^{2}},\qquad b_{j}=1+2\,\dfrac{\Delta t}{h}+2\,{1}\,\dfrac{\Delta t}{h^{2}},$$

$$c_{j}=-{1}\,\dfrac{\Delta t}{h^{2}},\qquad \xi_{j}^{\,n}=u_{j}^{\,n}+\Delta t\,\bigl(0\bigr).$$

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}}=|b_{j}|.$$

Условие выполнено при любых $\Delta t,h>0$ (и $\sigma>0$), поэтому прогонка применима — в этом и состоит смысл метода установления для случая $k=0$.

5. Рекуррентное прогоночное соотношение

Решение неявной схемы на каждой итерации ищется методом прогонки. Вводится рекуррентное прогоночное соотношение

$$u_{j}^{\,n+1}=\alpha_{j}\,u_{j+1}^{\,n+1}+\beta_{j},\qquad j=1,\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(x{=}0)=e^{3}$, т.е. в разностном виде $u_{1}^{\,n+1}=e^{3}$. Сравнивая с прогоночным соотношением при $j=1$ ($u_{1}^{\,n+1}=\alpha_{1}u_{2}^{\,n+1}+\beta_{1}$), получаем:

$$\alpha_{1}=0,\qquad \beta_{1}=e^{3}.$$

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

Правое граничное условие — 1-го рода: $u(x{=}1)=e$, поэтому значение в крайнем правом узле берётся напрямую:

$$u_{N}^{\,n+1}=e.$$

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

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

$$u_{j}^{\,0}=f(x_{j})=0.$$

(Значения в граничных узлах фиксированы условиями: $u_{1}^{\,0}=e^{3}$, $u_{N}^{\,0}=e$.)

9. Условие окончания итерационного процесса

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

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

10. Алгоритм решения

  1. Задать сетку по $x$: $h=1/(N-1)$, узлы $x_j=(j-1)h$; выбрать шаг итерации $\Delta t$ (произвольно, так как схема абсолютно устойчива) и точность $\varepsilon$.
  2. Задать нулевую итерацию $u_{j}^{0}=f(x_j)$; в граничных узлах $u_{1}^{0}=e^{3}$, $u_{N}^{0}=e$.
  3. Для текущей итерации $n$ вычислить $\xi_{j}^{n}=u_{j}^{n}+\Delta t\,f(x_j)$.
  4. Прямой ход прогонки ($j=1,\dots,N-1$): $\alpha_1=0$, $\beta_1=e^{3}$, далее $\alpha_j,\beta_j$ по формулам п.5.
  5. Найти решение на правой границе: $u_{N}^{n+1}=e$.
  6. Обратный ход прогонки ($j=N-1,\dots,1$): $u_{j}^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  7. Проверить условие окончания (п.9). Если $\|u^{n+1}-u^{n}\|\le\varepsilon$ — процесс установился, $u_j^{n+1}$ есть решение стационарной задачи; иначе $n:=n+1$ и перейти к шагу 3.
Блок-схема алгоритма
Метод простой итерации (ОДУ 2-го порядка)
Метод простой итерации (ОДУ 2-го порядка) · все блок-схемы →
Задача 18.10

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

Решение

Условие

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

Уравнение содержит только производные искомой функции (член $-ku$ отсутствует, т.е. $k=0$). При $k=0$ достаточное условие сходимости прогонки для прямой стационарной схемы нарушается ($|a_j|+|c_j|=|b_j|$), поэтому применяем метод установления (введение фиктивной производной по времени), решая получаемое нестационарное параболическое уравнение неявной разностной схемой.

1. Приведение к каноническому виду и введение фиктивной производной

Метод установления требует привести уравнение к стандартному виду главы 10:

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

(вторая производная — в правой части с положительным знаком, первая — в левой). Для данной задачи:

$$\dfrac{du}{dx}=\dfrac{d^{2}u}{dx^{2}}-e^{x},$$

откуда

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

Так как $v=1>0$, производную $\partial u/\partial x$ аппроксимируем левой конечной разностью.

Добавляем в левую часть фиктивную производную по времени с положительным знаком (искомая функция становится функцией двух переменных $\widetilde u(t,x)$):

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

Граничные условия берутся из исходной стационарной задачи и не зависят от времени: $u(x{=}0)=0$, $u(x{=}1)=e$. Поэтому при $t\to\infty$ производная по времени стремится к нулю, а решение «устанавливается» к решению стационарной задачи:

$$t\to\infty,\quad \widetilde u(t,x)\to[u(x)],\quad \frac{\partial\widetilde u}{\partial t}\to0.$$

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

Для нестационарного уравнения записываем неявную схему (пространственные операторы — на искомом $(n{+}1)$-м слое):

$$\frac{u_{j}^{\,n+1}-u_{j}^{\,n}}{\Delta t}+v\,\dfrac{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}}+f(x_{j}).$$

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

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

Группируем в левой части члены со слоем $(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}},\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$, $f(x_j)=-e^{x_{j}}$ данной задачи:

$$a_{j}=-{1}\,\dfrac{\Delta t}{h^{2}},\qquad b_{j}=1+1\,\dfrac{\Delta t}{h}+2\,{1}\,\dfrac{\Delta t}{h^{2}},$$

$$c_{j}=-1\,\dfrac{\Delta t}{h}-{1}\,\dfrac{\Delta t}{h^{2}},\qquad \xi_{j}^{\,n}=u_{j}^{\,n}+\Delta t\,\bigl(-e^{x_{j}}\bigr).$$

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}}=|b_{j}|.$$

Условие выполнено при любых $\Delta t,h>0$ (и $\sigma>0$), поэтому прогонка применима — в этом и состоит смысл метода установления для случая $k=0$.

5. Рекуррентное прогоночное соотношение

Решение неявной схемы на каждой итерации ищется методом прогонки. Вводится рекуррентное прогоночное соотношение

$$u_{j}^{\,n+1}=\alpha_{j}\,u_{j+1}^{\,n+1}+\beta_{j},\qquad j=1,\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(x{=}0)=0$, т.е. в разностном виде $u_{1}^{\,n+1}=0$. Сравнивая с прогоночным соотношением при $j=1$ ($u_{1}^{\,n+1}=\alpha_{1}u_{2}^{\,n+1}+\beta_{1}$), получаем:

$$\alpha_{1}=0,\qquad \beta_{1}=0.$$

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

Правое граничное условие — 1-го рода: $u(x{=}1)=e$, поэтому значение в крайнем правом узле берётся напрямую:

$$u_{N}^{\,n+1}=e.$$

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

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

$$u_{j}^{\,0}=f(x_{j})=-e^{x_{j}}.$$

(Значения в граничных узлах фиксированы условиями: $u_{1}^{\,0}=0$, $u_{N}^{\,0}=e$.)

9. Условие окончания итерационного процесса

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

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

10. Алгоритм решения

  1. Задать сетку по $x$: $h=1/(N-1)$, узлы $x_j=(j-1)h$; выбрать шаг итерации $\Delta t$ (произвольно, так как схема абсолютно устойчива) и точность $\varepsilon$.
  2. Задать нулевую итерацию $u_{j}^{0}=f(x_j)$; в граничных узлах $u_{1}^{0}=0$, $u_{N}^{0}=e$.
  3. Для текущей итерации $n$ вычислить $\xi_{j}^{n}=u_{j}^{n}+\Delta t\,f(x_j)$.
  4. Прямой ход прогонки ($j=1,\dots,N-1$): $\alpha_1=0$, $\beta_1=0$, далее $\alpha_j,\beta_j$ по формулам п.5.
  5. Найти решение на правой границе: $u_{N}^{n+1}=e$.
  6. Обратный ход прогонки ($j=N-1,\dots,1$): $u_{j}^{n+1}=\alpha_j u_{j+1}^{n+1}+\beta_j$.
  7. Проверить условие окончания (п.9). Если $\|u^{n+1}-u^{n}\|\le\varepsilon$ — процесс установился, $u_j^{n+1}$ есть решение стационарной задачи; иначе $n:=n+1$ и перейти к шагу 3.
Блок-схема алгоритма
Метод простой итерации (ОДУ 2-го порядка)
Метод простой итерации (ОДУ 2-го порядка) · все блок-схемы →