Главная > Методы анализа нелинейных динамических моделей (М. Холодниок, А. Клич, М. Кубичек, М. Марек)
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

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

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

Для решения нелинейных дифференциальных уравнений с частными производными параболического типа существует целый ряд численных методов. В большинстве случаев они представляют собой различные варианты конечно-разностных методов, метода прямых и метода конечных элементов. Наряду со специальными работами имеется много учебников и монографий, посвященных численным методам решения дифференциальных уравнений с частными производными [6.23-6.28]. Ниже мы лишь кратко опишем основные конечно-разностные подходы и обсудим проблему их эффективной алгоритмизации. Bсе рассмотрение будет проведено на примере системы типа «реакция-диффузия» (4.3.7), т. е. для случая одной пространственной переменной.

В полуполосе $0 \leqslant z \leqslant 1,0 \leqslant t<\infty$ выберем равномерную сетку узловых точек $\left(z_{i}, t_{j}\right)$;
\[
\begin{array}{c}
z_{i}=i h, \quad i=0,1, \ldots, n, \quad h=1 / n, \\
t_{j}=j \tau, \quad j=0,1,2, \ldots, \quad \tau>0 .
\end{array}
\]
1) Имеется в виду численное моделирование динамики, т. е. численное решение задачи Коши (точнее, задачи с начальными и краевыми условиями).

Значения приближенного решения в этих узловых точках будем обозначать как
\[
x_{i}^{i} \sim x\left(z_{i}, t_{j}\right), \quad y_{i}^{i} \sim y\left(z_{i}, t_{i}\right) .
\]

Наиболее часто используется шеститочечная разностная схема типа Кранка — Николсона. Для системы (4.3.7) она дает:
\[
\begin{aligned}
\frac{1}{\tau}\left(x_{i}^{j+1}-x_{i}^{j}\right)= & \frac{D_{\mathrm{x}} w}{L^{2} h^{2}}\left(x_{i-1}^{i+1}-2 x_{i}^{j+1}+x_{i+1}^{j+1}\right)+ \\
& +\frac{D_{\mathrm{x}}(1-w)}{L^{2} h^{2}}\left(x_{i-1}^{i}-2 x_{i}^{j}+x_{i+1}^{i}\right)+f_{i}^{j+w}, \\
\frac{1}{\tau}\left(y_{i}^{j+1}-y_{i}^{j}\right)= & \frac{D_{\mathrm{y}} w}{L^{2} h^{2}}\left(y_{i-1}^{j+1}-2 y_{i}^{j+1}+y_{i+1}^{j+1}\right)+ \\
& +\frac{D_{\mathrm{y}}(1-w)}{L^{2} h^{2}}\left(y_{i-1}^{i}-2 y_{i}^{j}+y_{i+1}^{j}\right)+g_{i}^{j+w} .
\end{aligned}
\]

Формулы (6.4.3) включают в себя явную схему ( $=0$ ), чисто неявную схему ( $=1$ ) (обе с погрешностью аппроксимации порядка $O\left(\tau+h^{2}\right)$ ), а также классическую схему Кранка Николсона с погрешностью аппроксимации порядка $O\left(\tau^{2}+\right.$ $\left.+h^{2}\right)(w=1 / 2)^{1)}$. В случае граничных условий 1 рода естественно положить при всех $j$
\[
x_{0}^{j+1}=\bar{x}, \quad x_{n}^{j+1}=\bar{x} ; \quad y_{0}^{j+1}=\bar{y}, \quad y_{n}^{j+1}=\bar{y} .
\]

При этом формулы (6.4.3) записываются для $i=1,2, \ldots, n-1$. В случае граничных условий второго рода (ГУ2) уравнения (6.4.3) рассматриваются для $i=0,1, \ldots, n$, а граничные условия (4.3.12) заменяются соотношениями
\[
x_{-1}^{j+1}=x_{1}^{j+1}, \quad x_{n+1}^{j+1}=x_{n-1}^{j+1} ; \quad y_{-1}^{j+1}=y_{1}^{j+1}, \quad y_{n+1}^{j+1}=y_{n-1}^{j+1} .
\]

Схема (6.4.3) является одношаговой по переменной $t$, а это значит, что новый слой $j+1$ можно вычислить исходя из старого слоя $j$. Это значит, что значения $f^{j+w}$ и $g^{j+w}$ зависят только от $x^{j}, x^{j+1}, y^{j}$ и $y^{j+1}$. Явная схема $(w=0)$ представляет собой наиболее простой случай, поскольку значения неизвестных функций на новом слое (с верхним индексом $j+1$ ) непосредственно выражаются через значения на старом слое (с верхним индексом $j$ ). При этом нелинейные члены $f_{i}^{i}$ и $g_{i}^{j}$ легко аппроксимируются подстановкой значений $x_{i}^{i}$ и $y_{i}^{i}$ в функции $f$ и $g$. Вместе с тем, в случае явной схемы должно выполняться условие численной устойчивости, накладывающее определенные

ограннчения на величину шага $\tau$, а именно
\[
\tau \leqslant \min \left(\frac{L^{2} h^{2}}{2 D_{\mathrm{x}}}, \frac{L^{2} h^{2}}{2 D_{\mathrm{y}}}\right) .
\]

Эффективность указанной явной схемы может оказаться довольно низкой, если из условия (6.4.6) приходится выбирать очень малый шаг $\tau$.

При $w
eq 0$ соотношение (6.4.3) представляет собой уже систему уравнений относительно неизвестных с верхним индексом $j+1$. Такой метод называется неявным. При $w \geqslant 1 / 2$ метод оказывается численно устойчивым, причем длина шага $\tau$ ничем не ограничивается. Записав нелинейные члены $f_{i}^{j+w}, g_{i}^{j+w}$ в уравнениях (6.4.3) в виде
\[
f_{i}^{j+w} \sim f\left(w x_{i}^{j+1}+(1-w) x_{i}^{j}, \quad w y_{i}^{j+1}+(1-w) y_{i}^{j}\right)
\]
(член $g_{i}^{j+w}$ записывается аналогично), мы получаем систему $2 n+2$ нелинейных уравнений, которую можно решать итерациями (например, методом Ньютона). Поскольку у нас имеется хорошее начальное приближение (а именно значения на старом слое $j$ ), обыкновенно оказывается достаточным одной-двух итераций. Метод Ньютона предпочтительнее использовать при анализе быстрых химических реакций (т. е. тогда, когда производные $f$ и $g$ велики. — Peд.). При этом число итераций может оказаться более высоким. Для вычисления нового слоя используются также неитерационные подходы, в которых нелинейные члены аппроксимируются иначе — исходя из уже найденных значений неизвестных. По существу в таких подходах мы имеем дело с одной итерацией, проводимой каким-либо методом, аналогичным методу Ньютона.
Остановимся на этом вопросе несколько подробнее.

6.4.1. Замена нелинейных членов

Простейшая разностная замена нелинейных членов в схеме (6.4.3) заключается в использовании линеаризации по $x^{j+1}$ и $y^{j+1}$, т. е. для члена $f_{i}^{i+w}$ мы полагаем
\[
f_{i}^{i+w} \sim a i+b_{i}^{i} x_{i}^{i+1}+c_{i}^{i} y_{i}^{i+1},
\]

тде коэффициенты $a_{i}^{l}, b_{i}^{i}, c_{i}^{i}$ зависят от известных значений решения на старом ( $j$-м) слое. Так, например, при $w=1$ член

$\left(x_{i}^{i+1}\right)^{2}$ можно заменить ${ }^{1)}$ произведением $\left(x_{i}^{i+1} \cdot x_{i}^{j}\right)$; точно так же $\left(x_{i}^{i+1}\right)^{3} \sim\left(x_{i}^{i}\right)^{2} x_{i}^{j+1}$. При $=1 / 2$ член $\left(x_{i}^{i+1 / 2}\right)^{2}$ можно заменить выражением $\left[\left(x_{i}^{j}+x_{i}^{i+1}\right) / 2\right]^{2} \sim \frac{1}{4}\left[\left(x_{i}^{i}\right)^{2}+2 x_{i}^{i} x_{i}^{j+1}+x_{i}^{i} x_{i}^{j+1}\right]$. Довольно часто используется еще более простая замена
\[
f_{i}^{i+w} \sim f_{i}^{!} .
\]

Если функции $f$ и $g$ легко продифференцировать аналитически, то можно воспользоваться формулой Тейлора, т. е. (например, для $f_{i}^{j+w}$ ) положить ${ }^{2)}$ (ср. с (6.4.7))
\[
f_{i}^{i+w} \sim f_{i}^{j}+\left.\frac{\partial f}{\partial x}\right|_{i} ^{i}\left(x_{i}^{j+w}-x_{i}^{i}\right)+\left.\frac{\partial f}{\partial y}\right|_{i} ^{i}\left(y_{i}^{i+w}-y_{i}^{i}\right){ }^{3)}
\]

Здесь $x_{i}^{i+w} \sim w x_{i}^{j+1}+(1-w) x_{i}^{i}$ (аналогично определяется $\left.y_{i}^{i+w}\right)$.
Если аналитическое дифференцирование $f$ и $g$ оказывается сложным, используются процедуры экстраполяции, при которых значение $x_{i}^{j+w}$ для вычисления $f_{i}^{j+w}$ получают экстраполяцией, исходя из значений на нескольких предыдущих слоях (с верхними индексами $j, j-1, \ldots)$. Например, полагают
\[
\begin{array}{c}
x_{i}^{i+w} \sim(1+w) x_{i}^{i}-w x_{i}^{j-1}, \\
x_{i}^{j+w} \sim\left[1+1,5 w+0,5 w^{2}\right] x_{i}^{j}-\left(w^{2}+2 w\right) x_{i}^{j-1}+0,5\left(w^{2}+w\right) x_{i}^{j-2} .
\end{array}
\]

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

Еще одним часто используемым методом аппроксимации нелинейных членов является комбинация явной схемы с шагом шт в качестве предиктора с последующим использованием неявной схемы при $w
eq 0$ в качестве корректора. При этом для вычисления нелинейностей используются значения неизвестных, найденные с помощью предиктора.

1) Здесь имеется в виду, что $f(x, y)$ (или $g(x, y)$ ) содержит слагаемое $x^{2}$, и обсуждается, какое слагаемое можно ввести в определение величины. $f^{i+w}$.
2) Разумно сначала определить $f^{f+w}$ по (6.4.7) и потом оставить только первые члены тейлоровского разложения. По существу об этом уже шла речь (см. абзац после формулы (6.4.7)).
${ }^{3}$ ) Здесь имеется в виду, что (по определению) $f_{i}^{j+w}=f\left(x_{i}^{j+w}, y_{i}^{j+w}\right)$

6.4.2. Автоматическое изменение шага по времени

Нахождение значений на одном слое при больших $n$ может потребовать много вычислений, в связи с чем часто оказывается выгодным регулировать длину шага по времени $\tau$ в зависимости от требуемой точности решения. Характер самого решения и его вариаций во времени может изменяться, а вместе с ними будет существенно изменяться и шаг $\tau$, который обеспечивает заданную точность. В связи с этим включение в алгоритм изменения шага по времени может значительно повысить эффективность. используемой схемы. Основная проблема при этом — оценка погрешности решения, вызванной дискретизацией по переменной $t$. Отметим, что используемые подходы носят эвристический характер. Опишем здесь три подхода.
a) Сравнение значений решения на новом слое, полученных с шагом $\tau\left(x^{i+1(\tau)}\right)$, со значениями, полученными с помощью двух шагов длиной $\tau / 2\left(x^{j+1(\tau / 2)}\right)$. В этом случае оценкой погрешности с целью регулирования шага может служить величина ${ }^{1)}$
\[
E_{\mathrm{x}}=\left\|x^{j+1(\tau)}-x^{j+1(\tau / 2)}\right\|
\]
(аналогичная формула записывается для $E_{\text {y }}$ ). Для более тонкой оценки $E$ можно также использовать экстраполяцию по Ричардсону [6.10]. Если действовать так, то для одного удачного и контролируемого шага $\tau$ нам потребуется сделать три «пробных» шага. По этой причине указанный подход используется сравнительно редко и в большинстве случаев после нескольких постоянных (т. е. не регулируемых) шагов по времени.
b) Оценка различия между экстраполированным значением $x^{j+w}$, найденным с помощью формул (6.4.11) или (6.4.12), и вычисленным значением $x^{j+w}$ :
\[
E_{\mathrm{x}}=\max _{i}\left|x_{i}^{j+w}-w x_{i}^{j+1}-(1-w) x_{i}^{j}\right| .
\]

Аналогично определяется $E_{\mathrm{y}}$. Такую же оценку можно получить и для метода «предиктор-корректор».
c) В случае использования какой-то схемы линеаризации (6.4.8) мы можем положить
\[
\begin{aligned}
E_{\mathrm{x}}=\max _{i} \mid f\left(w x_{i}^{i+1}+(1-w) x_{i}^{j}, w_{y_{i}^{i}}+1\right. & \left.+(1-w) y_{i}^{j}\right)- \\
& -a_{i}^{j}-b_{i}^{i} x_{i}^{j+1}-c_{i}^{j} y_{i}^{i+1} \mid .
\end{aligned}
\]

Аналогичным образом записывается и оценка $E_{\text {у. }}$. Отметим, что в данном случае мы находим отклонение в значениях функций $f$ и $g$, но не в переменных состояния $x$ и $y$.

1) Обычно норму \|\| определяют так: $\|u\|=\max \left|u_{i}\right|$.

Каждую из величин $E=\max \left(E_{\mathrm{x}}, E_{\mathrm{y}}\right)$, приведенных выше, можно использовать для регулировки шага по времени $\tau$. С этой целью обычно выбирается некоторое характерное значение $\varepsilon$, причем шаг $\tau$ уменьшается, если $E>\varepsilon$. Если же $E$ существенно меньше, чем $\varepsilon$, то шаг $\tau$ увеличивается.

Мы ограничились здесь лишь идейной стороной алгоритма изменения шага $\tau$. Очень вероятно, что действительная величина погрешности решения будет заметно отличаться от $\varepsilon$. Поэтому если мы хотим удостовериться в том, что заданная точность обеспечивается, следует провести вычисления при двух различных значениях $\varepsilon$ (отличающихся, например, на порядок) и сравнить полученные результаты. Таким образом, однако, можно оценить лишь влияние погрешностей аппроксимации «в направлении оси $t$ ». Влияние погрешности аппроксимации «в направлении координаты $z$ » и адаптационные алгоритмы для выбора шага $h$ будут обсуждаться в следующем пункте.

6.4.3. Автоматическое изменение шага $h$

В этом пункте мы исследуем проблему автоматического изменения шага $h$ на равномерной сетке. Для решения вопроса о том, достаточно ли велико $n$ (т. е. достаточно ли мал шаг $h$ ), при заданной «характерной величине погрешности» $\varepsilon$, будем искать оценку погрешности аппроксимации в направлении оси $z$. В принципе мы могли бы провести вычисления для момента $t_{j}$ дважды — ш шагом $h$ и $2 h$ — и результаты сравнить. Такой численный подход не был бы, однако, достаточно простым и эффективным.

Другой, более подходящий путь заключается в том, чтобы использовать выражения для остаточного члена в соответствующих разностных формулах. При замене второй производной в (6.4.3) имеем
\[
\frac{\partial^{2} x}{\partial z^{2}}\left(z_{i}, t_{j}\right)=\frac{1}{h^{2}}\left[x_{i-1}^{i}-2 x_{i}^{j}+x_{i+1}^{l}\right]-\frac{1}{12} h^{2} \frac{\partial^{4} x}{\partial z^{4}}\left(\xi, t_{j}\right),
\]

тде $\xi \in\left(z_{i-1}, z_{t+1}\right)$. Для аппроксимации четвертой производной можно воспользоваться разностной формулой вида
\[
\frac{\partial^{4} x}{\partial z^{4}}\left(\xi, t_{j}\right) \sim \frac{1}{h^{4}}\left[x_{i-2}^{j}-4 x_{-1}^{i}+6 x_{i}^{j}-4 x_{i+1}^{j}+x_{i+2}^{j}\right]
\]

при $i=2,3, \ldots, n-2$. Тогда оценку погрешности «в направлении оси $z$ » можно записать в виде
\[
E_{\mathrm{x}}=\max _{i=2 \ldots \ldots n-2} \frac{1}{12 h^{2}}\left|x_{i-2}^{j}-4 x_{i-1}^{j}+6 x_{i}^{j}-4 x_{i+1}^{j}+x_{i+2}^{j}\right| .
\]

Аналогичное выражение получается и для $E_{\text {у }}$ (при $i=1$ и $i=$ $=n-1$ для четвертой производной можно использовать асимметричные формулы). Обозначим $E=\max \left(E_{\mathrm{x}}, E_{\mathrm{y}}\right)$.

Тогда для изменения (регулировки) $n$ можно использовать следующую стратегию:
1. $E>\varepsilon$; шаг $h$ слишком велик, и его следует уменьшить вдвое. Значения решения в узловых точках, которые появятся между исходными узловыми точками, после уменьшения шага, можно определить с помощью интерполяции, например, положить
\[
\begin{aligned}
x_{i+1 / 2}^{j} & =\frac{1}{16}\left[-x_{i-1}^{j}+9 x_{i}^{j}+9 x_{i+1}^{i}-x_{i+2}^{j}\right], i=1,2, \ldots, n-2, \\
x_{1 / 2}^{j} & =\frac{1}{8}\left[3 x_{0}^{j}+6 x_{1}^{j}-x_{2}^{j}\right], \\
x_{n-1 / 2}^{j} & =\frac{1 *}{8}\left[3 x_{n}^{j}+6 x_{n-1}^{j}-x_{n-2}^{j}\right] .
\end{aligned}
\]

После проведения интерполяции перенумеруем заново узловые точки, удвоим число $n$ и вдвое уменьшим шаг $h$; затем продолжим вычисления.
2. $E<\varepsilon / \omega$, где значение $\omega$, как правило, выбирается между 4 и 8. Шаг $h$ излишне мал и может быть удвоен. При этом узловые точки с нечетными индексами $1,3,5, \ldots, n-1$ выбрасываются, оставшиеся точки перенумеровываются, шаг $h$ удваивается, а $n$ уменьшается вдвое.
3. В остальных случаях шаг $h$ остается неизменным и проводятся дальнейшие вычисления.

При формулировке алгоритма удобно задавать максимальный и минимальный допустимый шаг $h$.

6.4.4. Адаптивная неравномерная сетка

Пусть у нас имеется некоторая, вообще говоря, неравномерная сетка узловых точек $z_{0}=0, z_{1}, \ldots, z_{n}=1$. Тогда вторую производную в направлении $z$ в точке $\left(z_{i}, t_{j}\right)$ можно заменить трехточечной разностной формулой
\[
\begin{array}{c}
\frac{\partial^{2} x}{\partial z^{2}}\left(z_{i}, t_{j}\right) \sim \frac{2}{\left(z_{i}-z_{i-1}\right)\left(z_{i+1}-z_{i-1}\right)} x_{i-1}^{i}- \\
-\frac{2}{\left(z_{i}-z_{i-1}\right)\left(z_{i+1}-z_{i}\right)} x_{i}^{i}+\frac{2}{\left(z_{i+1}-z_{i-1}\right)\left(z_{i+1}-z_{i}\right)} x_{i+1}^{i} .
\end{array}
\]

При этом разностные уравнения (6.4.3) изменяются только за счет подстановки формулы (6.4.20) вместо простейшей фор-

мулы ${ }^{1)}$ для $\frac{\partial^{2} x}{\partial z^{2}}$. Все остальное остается неизменным, включая вычисления нового слоя $j+1$. Погрешность аппроксимации в направлении оси $z$ оценивается на каждом подынтервале $\left(z_{i-1}, z_{i}\right)$ отдельно. Айгенбергер и Батт [6.29] предложили следующий подход. Приближенное значение решения при $t=t_{j}$ и $z=\left(z_{i-1}+z_{i}\right) / 2$ отыскивается двумя способами (ниже индекс $j$ опущен). В первом случае мы получаем его интерполированием по узловым точкам $z_{i-2}, z_{i-1}, z_{i}$,
\[
\begin{array}{c}
x_{i-1 / 2}^{(1)}=\frac{-\left(z_{i}-z_{i-1}\right)^{2}}{4\left(z_{i}-z_{i-2}\right)\left(z_{i-1}-z_{i-2}\right)} x_{i-2}+\frac{z_{i}+z_{i-1}-2 z_{i-2}}{4\left(z_{i-1}-z_{i-2}\right)} x_{i-1}+ \\
+\frac{z_{i}+z_{i-1}-2 z_{i-2}}{4\left(z_{i}-z_{i-2}\right)} x_{i},
\end{array}
\]

во втором случае — интерполированием по узловым точкам $z_{i-1}, z_{i}, z_{i+1}$,
\[
\begin{array}{c}
x_{i-1 / 2}^{(2)}=\frac{2 z_{i+1}-z_{i}-z_{i-1}}{4\left(z_{i+1}-z_{i-1}\right)} x_{i-1}+\frac{2 z_{i+1}-z_{i}-z_{i-1}}{4\left(z_{i+1}-z_{i}\right)} x_{i}- \\
-\frac{\left(z_{i}-z_{i-1}\right)^{2}}{4\left(z_{i+1}-z_{i-1}\right)\left(z_{i+1}-z_{i}\right)} x_{i+1} .
\end{array}
\]

Для оценки погрешности аппроксимации на интервале $\left(z_{i-1}, z_{i}\right.$ ) используется величина
\[
E_{\mathrm{x}}^{i}=\left|x_{i-1 / 2}^{(1)}-x_{i-1 / 2}^{(2)}\right| ;
\]
$E_{\mathrm{y}}^{i}$ определяется аналогично. Тогда $E^{i}=\max \left(E_{x}^{i}, E_{y}^{i}\right)$. Далее сетка узловых точек видоизменяется с помощью следующего алгоритма (здесь снова $\varepsilon$ — заданная характерная величина погрешности).

1. $E^{i}>\varepsilon$. Тогда между $z_{i}$ и $z_{i-1}$ мы добавляем еще одну узловую точку $\left(z_{i-1}+z_{i}\right) / 2$. Приближенное значение решения в этой точке находим посредством интерполяции по четырем соседним узловым точкам $z_{i-2}, z_{i-1}, z_{i}, z_{i+1}$. Проделаем эту операцию для $i=1,2, \ldots, n$. Далее перенумеруем узловые точки (добавим новые точки с сохранением порядка), после чего продолжим вычисления на построенной более густой сетке.
2. $E^{i}<\varepsilon / \omega$ для $i=k$ и одновременно для $i=k+1$. В этом случае мы отбрасываем узловую точку $z_{k}$ и вновь проводим
1) $\frac{\partial^{2} x}{\partial z^{2}} \sim \frac{1}{h^{2}}\left(x_{i-1}-2 x_{i}+x_{i+1}\right)$. Формула (6.4.20), очевидно, переходит в простейшую при $z_{i}-z_{i-1}=z_{i+1}-z_{i}=h$.

соответствующие вычисления $E^{i}$ для соседних узловых точек. Затем перенумеровываем узловые точки и продолжаем вычисления. При этом значение $\omega$ выбирается обычно в диапазоне $10-20$.
3. В остальных случаях сетка не изменяется. При этом бывает удобным задавать максимальное и минимальное расстояние между двумя соседними точками.

Для оценки погрешности аппроксимации на неравномерной сетке можно было бы использовать также соображения, изложенные в предыдущем пункте для случая равномерной сетки. В последнее время появился ряд работ по этой теме, см., например, сборник [6.35].

6.4.5. Метод прямых

С методом прямых мы уже встречались в п. 6.3 .3 (см. уравнения (6.3.31)). Его применение оказывается эффективным в тех случаях, когда число узловых точек сравнительно невелико. Последнего можно добиться увеличением порядка аппроксимации. В данном пункте на примере системы типа «реакция-диффузия» (4.3.7) будет продемонстрировано использование этого метода для случая, когда пространственные производные заменяются разностными отношениями с пятью узловыми точками. При этом порядок аппроксимации по сравнению с трехточечной схемой (6.3.31) возрастает с $O\left(h^{2}\right)$ до $O\left(h^{4}\right)$. Обозначим $x_{i}(t) \approx$ $\approx x\left(z_{i}, t\right), y_{i}(t) \approx y\left(z_{i}, t\right)$ и рассмотрим равномерную сетку $z_{i}=$ $=i h, i=0,1, \ldots, n ; h=1 / n$. Уравнение (4.3.7a) заменяется системой уравнений
\[
\begin{array}{l}
\frac{d x_{i}}{d t}=\frac{D_{\mathrm{x}}}{12 L^{2} h^{2}}\left(-x_{i-2}+16 x_{i-1}-30 x_{i}+16 x_{i+1}-x_{i+2}\right)+f\left(x_{i}, y_{i}\right) \text {, } \\
i=2,3, \ldots, n-2 \text {, } \\
\frac{d x_{1}}{d t}=\frac{D_{\mathrm{x}}}{12 L^{2} h^{2}}\left(11 x_{0}-20 x_{1}+6 x_{2}+4 x_{3}-x_{4}\right)+f\left(x_{1}, y_{1}\right) \text {, } \\
\frac{d x_{n-1}}{d t}=\frac{D_{\mathrm{x}}}{12 L^{2} h^{2}}\left(11 x_{n}-20 x_{n-1}+6 x_{n-2}+\right. \\
\left.+4 x_{n-3}-x_{n-4}\right)+f\left(x_{n-1}, y_{n-1}\right) \text {. } \\
\end{array}
\]

В случае граничных условий 1-го рода вида (4.3.9), мы имеем $x_{0}(t) \equiv \bar{x}, x_{n}(t) \equiv \bar{x}$. Для уравнения (4.3.7b) соответствующая замена строится совершенно аналогично. Таким образом, мы получаем систему обыкновенных дифференциальных уравнений, которую можно решить каким-либо из методов, описанных в $\$ 5.7$, например методом Рунге-Кутты.

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

ограничение, которое определяется требованием численной устойчивости. Если же мы применяем схему интегрирования с автоматическим изменением шага (например, схему Мерсона), то будет выбран относительно короткий шаг интегрирования ( $\sim h^{2}$ ), что, как правило, приводит к большим затратам машинного времени.

Использование метода прямых на очень редкой сетке узловых точек (часто неравномерной) приводит к небольшим системам обыкновенных дифференциальных уравнений, поведение которых можно достаточно эффективно анализировать методами, описанными в гл. 5. При этом часто оказывается возможным перенести полученные качественные выводы на исходные параболические уравнения; в частности, динамическое моделирование (численное решение нестационарных уравнений) можно проводить только в тех областях изменения параметров, где в результате анализа с помощью метода прямых следует ожидать появления каких-либо интересных эффектов.

Продемонстрируем указанный подход, построив аппроксимацию решения задачи 16 с помощью метода прямых [6.10]. Зададим граничные условия (P16-13) при $\mathrm{Nu} \rightarrow \infty, \mathrm{Sh} \rightarrow \infty$ и выберем $n$ узловых точек $r_{1}, r_{2}, \ldots, r_{n}=1$. Предположим теперь, что пространственный дифференциальный оператор в уравнении (Р16-11) заменяется в узловой точке $r_{j}$ некоторой линейной комбинацией значений решения в узловых точках, а именно
\[
\frac{\partial^{2} y}{\partial r^{2}}+\left.\frac{a}{r} \frac{\partial y}{\partial r}\right|_{r=r_{j}} \sim \sum_{i=1}^{n} A_{i j} y\left(r_{i}, t\right) .
\]

Коэффициенты $A_{i j}$ находятся из требования, чтобы левая часть соотношения (6.4.25) точно равнялась правой для функций $y=1, \quad y=r^{2}, \quad y=r^{4}, \ldots, \quad y=r^{2 n-2}$. Последовательно подставляя эти функции в формулу (6.4.25), получим
\[
\begin{array}{c}
0=\sum_{i=1}^{n} A_{i j}, \\
2+\frac{a}{r_{j}} 2 r_{j}=\sum_{i=1}^{n} A_{i j} r_{i}^{2} \\
(2 n-2)(2 n-3) r_{j}^{2 n-4}+\frac{a}{r_{j}}(2 n-2) r_{j}^{2 n-3}=\sum_{i=1}^{n} A_{i j} r_{i}^{2 n-2} .
\end{array}
\]

При каждом фиксированном $j$ соотношения (6.4.26) представляют собой систему $n$ линейных алгебраических уравнений
относительно неизвестных коэффициентов $A_{i j}$. Найдем решения этих систем при $j=1,2, \ldots, n-1$ (в случае $j=n$ это оказывается излишним, поскольку в точке $r=1$ у нас задано $y=1$ ).

Используя аппроксимацию (6.4.25) для $у$ и $\Theta$, мы получаем из исходных уравнений (P16-11), (P16-12) систему обыкновенных дифференциальных уравнений для функций $y_{j}(t)=y\left(r_{j}, t\right)$, $\Theta_{j}=\Theta\left(r_{j}, t\right), j=1,2 \ldots, n-1$ :
\[
\begin{array}{c}
\mathrm{Lw} \frac{d y_{j}}{d t}=\sum_{i=1}^{n} A_{i j} y_{i}-\Phi^{2} y_{j} \exp \frac{\Theta_{j}}{1+\Theta_{j} / \gamma}, \\
\frac{d \Theta_{j}}{d t}=\sum_{i=1}^{n} A_{i j} \Theta_{i}+\gamma \beta \Phi^{2} y_{j} \exp \frac{\Theta_{j}}{1+\Theta_{j} / \gamma}
\end{array}
\]
(напомним, что $y_{n}(t) \equiv 1$ и $\Theta_{n}(t) \equiv 0$ ).
Положим теперь $n=2$, т. е. выберем лишь одну внутреннюю точку $r_{1}$, а также точку $r_{2}=1$. Система уравнений (6.4.26) для $j=1$ приобретает вид
\[
A_{21}+A_{11}=0, \quad A_{21}+r_{1}^{2} A_{11}=2(1+a)
\]

откуда
\[
A_{11}=\frac{2(1+a)}{r_{1}^{2}-1}=\rho, \quad A_{21}=-\frac{2(1+a)}{r_{1}^{2}-1}=-\rho .
\]

Дифференциальные уравнения (6.4.27), (6.4.28) принимают в этом случае вид
\[
\begin{aligned}
\text { Lw } \frac{d y_{1}}{d t} & =\rho\left(y_{1}-1\right)-\Phi^{2} y_{1} \exp \frac{\Theta_{1}}{1+\Theta_{1} / \gamma}, \\
\frac{d \Theta_{1}}{d t} & =\rho \Theta_{1}+\gamma \beta \Phi^{2} y_{1} \exp \frac{\Theta_{1}}{1+\Theta_{1} / \gamma}
\end{aligned}
\]
(здесь уже использованы условия $y_{2}(t) \equiv 1, \Theta_{2}(t) \equiv 0$ ).
Весьма существенным является в данном случае выбор координаты $r_{1}$. Вилладсен и Стюарт [6.30] рекомендуют выбирать в качестве $r_{1}$ нуль подходящего ортогонального полинома. Рекомендуемые ими значения $r_{1}$ (нули неких полиномов Якоби) даются следующей таблицей:

Для стационарного решения системы (6.4.30) имеет место соотношение
\[
\Theta_{1}=\gamma \beta\left(1-y_{1}\right),
\]

аналогичное формуле (P16-15). Подставляя его во второе из уравнений (6.4.30) (при $\Theta_{1}=0$ ), получаем
\[
\rho\left(y_{1}-1\right)-\Phi^{2} y_{1} \exp \frac{\gamma \beta\left(1-y_{1}\right)}{1+\beta\left(1-y_{1}\right)}=0 .
\]

В табл. 6.12 приведена зависимость $y_{1}$ от Ф, подсчитанная с помощью метода отображения параметра Ф для последовательности значений $y_{1}$. Сравнивая ее с табл. 6.9, можно заметить качественное совпадение зависимостей решений от параметра ( $y_{1}$ соответствует значению $r=0,4472 !$ ). При $\beta=0,05$ зависимость однозначна, при $\beta \approx 0,25$ у нас возникают кратные решения, а при $\beta=0,4$ в некотором диапазоне изменения параметра Ф существуют три стационарных решения данной задачи.

Таблища 6.12. Зависимость решений уравнения (6.4.32) от параметра Ф для задачи 16, $\gamma=20, a=0, \rho=-2,5$.

Динамическое поведение системы (6.4.30) может подсказать нам, как будет вести себя исходная система двух дифференциальных уравнений с частными производными, динамическое моделирование которой требует больших затрат машинного времени. Выбор $n=3$ может дать нам более точные результаты. Более подробно результаты исследования задачи 16 приведены в работе [6.19], а для других задач — в работе [6.4].

1
Оглавление
email@scask.ru