Опубликован: 25.10.2007 | Уровень: профессионал | Доступ: платный
Лекция 3:

Численные методы решения уравнений в частных производных гиперболического типа (на примере уравнения переноса)

3.9. Задачи

  1. Для линейного уравнения переноса

    $   \frac{{\partial}u}{{\partial}t} - \frac{{\partial}u}{{{\partial}{x}}} = 0   $

    предложить схему N + 1 порядка аппроксимации.

    Указание. Рассмотреть невязку, образующуюся при замене дифференциального уравнения разностным

    $ \frac{{u_m^{n + 1} - u_m^{n}}}{\tau} -  \frac{{u_{{m} + 1}^{n} - u_m^{n}}}{h} = 0.   $

    Решение. Проведем исследование разностного уравнения на аппроксимацию. Для этого представим сеточные функции u_m^{n + 1} и u_{{m} + 1}^{n} в виде разложения проекции на сетку точного решения дифференциальной задачи в ряд Тейлора:

    \begin{gather*}  
u_{{m} + 1}^{n} = u_m^{n} + h \left({u^{\prime}_x }\right)_m^{n} + \frac{{h^2}}{{2!}} \left({u^{\prime\prime}_x }\right)_m^{n} + \frac{{h^3 }}{{3!}} \left({u^{\prime\prime\prime}_x }\right)_m^{n} + \frac{{h^4 }}{{4!}} \left({u_x^{IV}}\right)_m^{n} + \ldots + \\ 
 +  \frac{{h^{N}}}{{{N}!}} \left({u_x^{(N)}}\right)_m^{n} + O(h^{N + 1}), \\ 
u_m^{n + 1} = u_m^{n} +{\tau}\left({u^{\prime}_t }\right)_m^{n} + \frac{{{\tau}^2}}{{2!}} \left({u^{\prime\prime}_t }\right)_m^{n} + \frac{{h^3 }}{{3!}} \left({u^{\prime\prime\prime}_t }\right)_m^{n} + \frac{{h^4 }}{{4!}} \left({u_t^{IV}}\right)_m^{n} + \ldots + \\ 
 +  \frac{{{\tau}^{N}}}{{{N}!}} \left({u_t^{(N)}}\right)_m^{n} + O({\tau}^{N + 1})
.  \end{gather*}

    Отсюда получим с учетом того, что u_t^{\left({k}\right)} = u_x^{\left({k}\right)}:

    $  \frac{{u_m^{n + 1} - u_m^{n}}}{\tau} - \frac{{u_{{m} + 1}^{n} - u_m^{n}}}{h} =  \left({u^{\prime}_t - u^{\prime}_x }\right)_m^{n} + r_{\tau},   $

    где r_{\tau } — невязка, вычисляемая в точке (tn, xm) по формуле

    \begin{gather*}
r_{\tau} = \frac{1}{2!}({\tau}- h)u^{\prime\prime}_x + \frac{1}{3!}({\tau}^2 - h^2 )u^{\prime\prime\prime}_x + \frac{1}{4!}({\tau}^3 - h^3 )u_x^{IV} + \ldots + \\ 
 + \frac{1}{(N + 1)!}({\tau}^N - h^N)u_x^{(n + 1)} + O({\tau}^{n + 1}, h^{n + 1}) = \\ 
 = \sum\limits_{k = 1}^{N}{\frac{h^k}{(k + 1)!}({\sigma}^k - 1)u_x^{(k + 1)} + }O({\tau}^{n + 1}, h^{n + 1}), \\ 
{\sigma}={\tau}/h  \mbox{ - число Куранта.}
 \end{gather*}

    Аппроксимация частных производных высоких порядков, входящих в выражение для невязки с помощью конечных разностей, приводит к соотношению

    $  r_{\tau} = \frac{1}{h} \sum\limits_{k = 1}^{N}{\frac{{\sigma}^k - 1}{\left({k + 1}\right)!}{\Delta}^{k + 1}u_m^n} + O({\tau}^{N + 1}, h^{N + 1}).  $

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

    $  \frac{{u_m^{n + 1} - u_m^{n}}}{\tau} - \frac{{u_{{m} + 1}^{n} - u_m^{n}}}{h} -  \frac{1}{h} \sum\limits_{{k} = 1}^{N}{\frac{{{\sigma}^{k} - 1}}
{{\left({{k} + 1}\right)!}} {\Delta}^{{k} + 1} u_m^{n} = 0, }  $

    или

    $  u_m^{n + 1} = u_m^{n} + {\sigma}{\Delta}^{+}u_m^{n} - {\sigma}\sum\limits_{k = 1}^{N}{\frac{{(1 - {\sigma}^{k})}}{{\left({k + 1}\right)!}} {\Delta}^{k + 1}u_m^{n} = 0.}  $

    Эта схема легко распространяется на уравнение

    $ \frac{{\partial}u}{{\partial}t} - a \frac{{\partial}u}{{\partial}x} = 0,  $

    если учесть, что

    $ \frac{{{\partial}^{k + l} u}}{{{\partial}t^{k}{\partial}x^{l}}} = (- 1)^{k} a^{k} \frac{{{\partial}^{k + l} u}}{{{\partial}x^{k + l}}}.  $
  2. Доказать устойчивость разностной схемы

    \begin{gather*}
 \frac{{u_m^{n + 1} - u_m^{n}}}{\tau} -  \frac{{u_{m + 1}^{n} - u_m^{n}}}{h} = 
f_m^{n}, \\ 
n = 0, \ldots , N - 1, m = 0,  \pm  1, \ldots ,  \pm  \left({M - 1}\right),  \\ 
u_m^0 = \varphi_m^{n}, m = 0,  \pm  1, \ldots ,  \pm  \left({M - 1}\right),  
\end{gather*}

    аппроксимирующую задачу Коши для уравнения переноса

    \begin{gather*}
 \frac{{\partial}u}{{\partial}t} - \frac{{\partial}u}{{\partial}x} = f(t, x) t \in \left[{0, T}\right],\\ 
x \in (- \infty , \infty ), \quad u(0, x) = {\varphi}(x), \quad x \in \left({- \infty , \infty }\right), 
 \end{gather*}

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

    $ \left\| {u_{\tau} }\right\| \le c \left\| f\right\| \mbox{ при } {\sigma}= \frac{\tau}{h} < 1.  $

    Решение. Перепишем разностную схему в виде, разрешенном относительно следующего слоя по времени

    \begin{gather*}  u_m^{n + 1} = \left({1 - {\sigma}}\right)u_m^{n} + 
 {\sigma}u_{m + 1}^{n} +{\tau}f_m^{n}, \\ 
u_m^0 = \varphi_m .  \end{gather*}

    Определим норму в пространстве сеточных функций как

    \left\|{u_\tau}\right\| = \sup\limits_{n, m} \left|{u_m^n}\right| = \max\limits_n \sup\limits_m \left| {u_m^n}\right|.

    Если 1 - {\sigma}\ge 0, то справедлива оценка

    \begin{gather*}  \left\| {(1 - {\sigma})u_m^{n} + {\sigma}u_{m + 1}^{n}}\right\| \le \left| {(1 - {\sigma}) + {\sigma}}\right| \max\limits_n \left({\left|{u_m^{n}}\right|, \left| {u_{m + 1}^{n}}\right|}\right) = \\ 
 = \max\limits_n \left({\left| {u_m^{n}}\right|, \left| {u_{m + 1}^{n}}\right|}\right) \le \max\limits_m \left| {u_m^{n}}\right|.  \end{gather*}

    В таком случае

    \left| {u_m^{n + 1}}\right| \le \max\limits_m \left|{u_m^{n}}\right| +{\tau}\left|{f_m^{n}}\right| \le \max\limits_m \left| {u_m^{n}}\right| + \tau \max\limits_{{m, n}} \left| {f_m^{n}}\right|.

    Отсюда видно, что при f_m^{n} = 0 норма решения {|u_m^{n} | не возрастает при возрастании n — выполняется принцип максимума. Поскольку правая часть в полученном неравенстве не зависит от m, то \max\limits_m \left| {u_m^{n + 1}}\right| \le \max\limits_m \left|{u_m^{n}}\right| +{\tau}\max\limits_{m, n} \left|{f_m^n}\right|.

    Аналогично

    \begin{gather*}  
 \max\limits_m \left| {u_m^{n}}\right| \le \max\limits_m \left|{u_m^{n - 1}}\right| + {\tau}\max\limits_{{m, n}} \left|{f_m^{n}}\right|, \\ 
 \max\limits_m \left| {u_m^{n - 1}}\right| \le \max\limits_m \left| {u_m^{n - 2}}\right| + \tau
 \max\limits_{{m, n}} \left| {f_m^{n}}\right|, \ldots ,  \\ 
 \max\limits_m \left| {u_m^1}\right| \le \max\limits_m \left| {u_m^0 }\right| +{\tau}\max\limits_{{m, n}} \left| {f_m^{n}}\right|.  \end{gather*}

    Сложение этих неравенств дает

    \max\limits_m \left| {u_m^{n + 1}}\right| \le \max\limits_m \left| {u_m^0 }\right| + (n + 1) \tau \max\limits_{{m, n}} \left| {f_m^{n}}\right|,

    откуда получаем, с учетом того, что t_{n} = n\tau:

    \begin{multline*}
 \max\limits_m \left| {u_m^{n + 1}}\right| \le \max\limits_m \left| {\varphi_m }\right| + t_{n + 1} \max\limits_{{m, n}} \left| {f_m^{n}}\right| \le \\ 
 \le \left\| {f_{\tau} }\right\| + t_{n + 1} \left\| {f_{\tau} }\right\| = (1 + t_{n + 1}) \left\| {f_{\tau} }\right\|.
 \end{multline*}

    При этом учтено, что

    \left\| {\varphi_{\tau} }\right\| = \left\| {f_{\tau} }\right\| =  \max\limits_{{n, m}} \left| {f_m^{n}}\right| + \max\limits_m \left| {\varphi_m^{n}}\right|.

    Таким образом, получим

    \left\| {u_{\tau} }\right\| \le c \left\| {f_{\tau}}\right\|, \mbox{ где } c = 1 + t_{n + 1}.
  3. Построить явную разностную схему первого порядка точности для аппроксимации линейного уравнения переноса
    $ \frac{{\partial}u}{{\partial}t} - \frac{{\partial u}}{{\partial}x} = f(t, x),  $
    используя ее запись в общем виде через неопределенные коэффициенты

    {\mathbf{L}}_{\tau} u_{\tau} = c_1 u_m^{n + 1} + c_2 u_m^{n} + c_3 u_{m + 1}^{n} = f_m^{n},

    на шаблоне "явный правый уголок".


    Решение. Будем подбирать коэффициенты ci таким образом, чтобы выполнялось условие аппроксимации первого порядка {\mathbf{L}}_{\tau} U_{\tau} = \left. {{\mathbf{L}}u}\right|_{t_n , x_m } + O({\tau}+ 
h).

    Разложение сеточных функций u_m^{n + 1} и u_{m + 
1}^{n} в ряды Тейлора в окрестности точки xm, tn приводит к равенствам

    \begin{gather*}  u_m^{n + 1} = u_m^{n} +{\tau}\left({u^{\prime}_t }
\right)_m^{n} + O({\tau}^2 ), \\ 
u_{m + 1}^{n} = u_m^{n} + h \left({u^{\prime}_x }\right)_m^{n} + O(h^2 ).  
\end{gather*}

    Подстановка этих разложений в разностную схему с неопределенными коэффициентами дает

    \begin{gather*}  {\mathbf{L}}_{\tau} U_{\tau} = c_1 u_m^{n + 1} + c_2 u_m^{n} + c_3 u_{m + 1}^{n} = \\ 
 = (c_1 + c_2 + c_3 )u_m^{n} + c_1 \tau (u^{\prime}_t )_m^{n} + c_3 h(u^{\prime}_x )_m^{n} +  O({\tau}^2 + h^2 ) = \\ 
 = (c_1 + c_2 + c_3 )u_m^{n} + c_1 \sigma h({\mathbf{L}}u)_m^{n} + (c_1 {\sigma}+ c_3 )h
(u^{\prime}_x )_m^{n} + O(h^2 ),  \end{gather*}

    поскольку можно считать независимыми переменными шаг по пространству и число Куранта, а для шага по времени получаем очевидное выражение \tau  = \sigma h, \sigma  = const.

    Здесь использованы очевидные равенства для дифференциального оператора

    $ \frac{{\partial}u}{{\partial}t} = {\mathbf{L}}u + \frac{{\partial}u}
{{\partial}x}, \frac{{\partial}u}{{\partial}x} = \frac{{\partial}u}{{\partial}t} - {\mathbf{L}}u.  $

    Для выполнения условия аппроксимации первого порядка

    {\mathbf{L}}_{\tau}{U}_{\tau} \left| {_{t_n , x_m }}\right. =  \left. {{\mathbf{L}}u}\right|_{t_n , x_m } + O(h)

    необходимо выполнение условий порядка

    c_{1}\sigma h = 1 + O(h), 
\\
c_{1} + c_{2} + c_{3} = 0 + O(h), 
\\
(c_{1} + c_{3})h = 0 + O(h).

    Если положить O(h) = 0, поскольку это некое число, стремящееся к нулю при измельчении шага, то условия порядка примут вид

    c_{1}\sigma h = 1, 
\\
c_{1} + c_{2} + c_{3} = 0, 
\\
c_{1} + c_{3} = 0.

    Эта схема линейных алгебраических уравнений имеет единственное решение:

    $ c_1 = \frac{1}{{{\sigma}h}} ={\tau}^{- 1}, c_2 = \frac{{{\sigma}- 1}}{{{\sigma}h}} = h^{- 1} -{\tau}^{- 1}, c_3 = - h^{- 1} .  $

    Получили коэффициенты уже известной разностной схемы первого порядка аппроксимации на заданном шаблоне:

    $ \frac{{u_m^{n + 1} - u_m^{n}}}{\tau} - \frac{{u_{m + 1}^{n} - 
u_m^{n}}}{h} = f_m^{n}.  $

    Несложно проверить, что учет O(h) привел бы к незначительной коррекции результата.

    Конечно, выбранная разностная схема легко получается и из других соображений. Но с помощью метода неопределенных коэффициентов удается построить схемы с хорошими свойствами для более сложных уравнений и систем.

Максим Радунцев
Максим Радунцев
Россия
Надежда Павленко
Надежда Павленко
Россия, Ставрополь