Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике Для решения нелинейных дифференциальных уравнений с частными производными параболического типа существует целый ряд численных методов. В большинстве случаев они представляют собой различные варианты конечно-разностных методов, метода прямых и метода конечных элементов. Наряду со специальными работами имеется много учебников и монографий, посвященных численным методам решения дифференциальных уравнений с частными производными [6.23-6.28]. Ниже мы лишь кратко опишем основные конечно-разностные подходы и обсудим проблему их эффективной алгоритмизации. Bсе рассмотрение будет проведено на примере системы типа «реакция-диффузия» (4.3.7), т. е. для случая одной пространственной переменной. В полуполосе $0 \leqslant z \leqslant 1,0 \leqslant t<\infty$ выберем равномерную сетку узловых точек $\left(z_{i}, t_{j}\right)$; Значения приближенного решения в этих узловых точках будем обозначать как Наиболее часто используется шеститочечная разностная схема типа Кранка – Николсона. Для системы (4.3.7) она дает: Формулы (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$ При этом формулы (6.4.3) записываются для $i=1,2, \ldots, n-1$. В случае граничных условий второго рода (ГУ2) уравнения (6.4.3) рассматриваются для $i=0,1, \ldots, n$, а граничные условия (4.3.12) заменяются соотношениями Схема (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$, а именно Эффективность указанной явной схемы может оказаться довольно низкой, если из условия (6.4.6) приходится выбирать очень малый шаг $\tau$. При $w 6.4.1. Замена нелинейных членов Простейшая разностная замена нелинейных членов в схеме (6.4.3) заключается в использовании линеаризации по $x^{j+1}$ и $y^{j+1}$, т. е. для члена $f_{i}^{i+w}$ мы полагаем тде коэффициенты $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$ и $g$ легко продифференцировать аналитически, то можно воспользоваться формулой Тейлора, т. е. (например, для $f_{i}^{j+w}$ ) положить ${ }^{2)}$ (ср. с (6.4.7)) Здесь $x_{i}^{i+w} \sim w x_{i}^{j+1}+(1-w) x_{i}^{i}$ (аналогично определяется $\left.y_{i}^{i+w}\right)$. Недостатком такого подхода является необходимость сохранять несколько старых слоев, а также необходимость какой-либо другой аппроксимации в начале расчета, поскольку алгоритм по-существу является многошаговым. Еще одним часто используемым методом аппроксимации нелинейных членов является комбинация явной схемы с шагом шт в качестве предиктора с последующим использованием неявной схемы при $w 1) Здесь имеется в виду, что $f(x, y)$ (или $g(x, y)$ ) содержит слагаемое $x^{2}$, и обсуждается, какое слагаемое можно ввести в определение величины. $f^{i+w}$. 6.4.2. Автоматическое изменение шага по времени Нахождение значений на одном слое при больших $n$ может потребовать много вычислений, в связи с чем часто оказывается выгодным регулировать длину шага по времени $\tau$ в зависимости от требуемой точности решения. Характер самого решения и его вариаций во времени может изменяться, а вместе с ними будет существенно изменяться и шаг $\tau$, который обеспечивает заданную точность. В связи с этим включение в алгоритм изменения шага по времени может значительно повысить эффективность. используемой схемы. Основная проблема при этом – оценка погрешности решения, вызванной дискретизацией по переменной $t$. Отметим, что используемые подходы носят эвристический характер. Опишем здесь три подхода. Аналогично определяется $E_{\mathrm{y}}$. Такую же оценку можно получить и для метода «предиктор-корректор». Аналогичным образом записывается и оценка $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) имеем тде $\xi \in\left(z_{i-1}, z_{t+1}\right)$. Для аппроксимации четвертой производной можно воспользоваться разностной формулой вида при $i=2,3, \ldots, n-2$. Тогда оценку погрешности «в направлении оси $z$ » можно записать в виде Аналогичное выражение получается и для $E_{\text {у }}$ (при $i=1$ и $i=$ $=n-1$ для четвертой производной можно использовать асимметричные формулы). Обозначим $E=\max \left(E_{\mathrm{x}}, E_{\mathrm{y}}\right)$. Тогда для изменения (регулировки) $n$ можно использовать следующую стратегию: После проведения интерполяции перенумеруем заново узловые точки, удвоим число $n$ и вдвое уменьшим шаг $h$; затем продолжим вычисления. При формулировке алгоритма удобно задавать максимальный и минимальный допустимый шаг $h$. 6.4.4. Адаптивная неравномерная сетка Пусть у нас имеется некоторая, вообще говоря, неравномерная сетка узловых точек $z_{0}=0, z_{1}, \ldots, z_{n}=1$. Тогда вторую производную в направлении $z$ в точке $\left(z_{i}, t_{j}\right)$ можно заменить трехточечной разностной формулой При этом разностные уравнения (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}$, во втором случае – интерполированием по узловым точкам $z_{i-1}, z_{i}, z_{i+1}$, Для оценки погрешности аппроксимации на интервале $\left(z_{i-1}, z_{i}\right.$ ) используется величина 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$. Далее перенумеруем узловые точки (добавим новые точки с сохранением порядка), после чего продолжим вычисления на построенной более густой сетке. соответствующие вычисления $E^{i}$ для соседних узловых точек. Затем перенумеровываем узловые точки и продолжаем вычисления. При этом значение $\omega$ выбирается обычно в диапазоне $10-20$. Для оценки погрешности аппроксимации на неравномерной сетке можно было бы использовать также соображения, изложенные в предыдущем пункте для случая равномерной сетки. В последнее время появился ряд работ по этой теме, см., например, сборник [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) заменяется системой уравнений В случае граничных условий 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}$ некоторой линейной комбинацией значений решения в узловых точках, а именно Коэффициенты $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), получим При каждом фиксированном $j$ соотношения (6.4.26) представляют собой систему $n$ линейных алгебраических уравнений Используя аппроксимацию (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$ : откуда Дифференциальные уравнения (6.4.27), (6.4.28) принимают в этом случае вид Для стационарного решения системы (6.4.30) имеет место соотношение аналогичное формуле (P16-15). Подставляя его во второе из уравнений (6.4.30) (при $\Theta_{1}=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 |
Оглавление
|