Журнал вычислительной математики и математической физики, 2020, T. 60, № 7, стр. 1111-1125
Построение и анализ явных адаптивных одношаговых методов численного решения жестких задач
Л. М. Скворцов *
МГТУ им. Н.Э. Баумана
105005 Москва, 2-я Бауманская, 5, Россия
* E-mail: lm_skvo@rambler.ru
Поступила в редакцию 29.12.2018
После доработки 26.12.2019
Принята к публикации 10.03.2020
Аннотация
Рассматривается построение адаптивных методов, основанных на явных стадиях Рунге–Кутты. Коэффициенты этих методов настраиваются на решаемую задачу, с помощью покомпонентных оценок наибольших по модулю собственных значений матрицы Якоби. Такие оценки нетрудно получить по результатам стадий явного метода, что практически не требует дополнительных вычислений. В работе исследуется влияние вычислительных ошибок и жесткости решаемой задачи на устойчивость и точность численного решения. Проведенный анализ позволяет построить эффективные явные методы, не уступающие неявным методам при решении многих жестких задач. Предложены новые вложенные пары адаптивных методов и приведены результаты численных экспериментов. Библ. 24. Фиг. 4. Табл. 6.
1. ВВЕДЕНИЕ
Ограничение на размер шага не позволяет использовать традиционные явные методы Рунге–Кутты и Адамса для эффективного решения жестких задач. Поэтому для решения таких задач обычно применяют неявные методы. В то же время неявные методы требуют вычисления матрицы Якоби и решения системы нелинейных алгебраических уравнений, что усложняет их реализацию и затрудняет использование при наличии сложных нелинейных зависимостей. Поэтому наряду с неявными методами разрабатывают и применяют специальные явные методы, позволяющие эффективно решать жесткие задачи.
Класс жестких задач настолько разнообразен, что существует множество определений таких задач, но среди них нет общепринятого. Авторы известной книги по численному решению жестких задач [1] Э. Хайрер и Г. Ваннер считают, что наиболее практичным определением понятия “жесткий” является самое раннее, данное в 1952 г. Кертиссем и Хиршфельдером [2]: “Жесткие уравнения – это уравнения, для которых определенные неявные методы, в частности ФДН, дают лучший результат, обычно несравненно более хороший, чем явные методы”. В настоящее время известны специальные явные методы, эффективные для многих жестких задач, поэтому под явными методами в этом определении следует понимать классические явные методы Рунге–Кутты и Адамса. Отметим, что термины “жесткие уравнения” или “жесткая задача” применимы к конкретной задаче Коши, т.е. при заданных начальных условиях и интервале интегрирования, поскольку задача, жесткая на большом интервале, может быть нежесткой на меньшем интервале или при других начальных условиях.
Будем решать задачу Коши для системы ОДУ
(1.1)
${\mathbf{y}}{\text{'}} = {\mathbf{f}}(t,{\mathbf{y}}),\quad {\mathbf{y}}({{t}_{0}}) = {{{\mathbf{y}}}_{0}},\quad 0 \leqslant t \leqslant T,$Для дальнейшего изложения нам нужно определить меру жесткости задачи Коши (1.1). В качестве такой меры можно использовать минимальное число шагов, необходимое для устойчивого решения задачи простейшим явным методом. Рассмотрим сначала линейную задачу
(1.2)
${\mathbf{y}}{\text{'}} = {\mathbf{Jy}},\quad {\mathbf{y}}({{t}_{0}}) = {{{\mathbf{y}}}_{0}},\quad 0 \leqslant t \leqslant T,$В случае нелинейной задачи (1.1) спектр матрицы Якоби зависит от t, поэтому вычислительные затраты явных методов можно оценить с помощью интеграла
(1.3)
${{M}_{{{\text{stf}}}}} = \int\limits_0^T {\max \left( {\mathop {\max }\limits_i \operatorname{Re} \left( { - {{\lambda }_{i}}(t)} \right),0} \right)dt} .$Аналогично можно определить меры колебательности и неустойчивости задачи Коши. Величину
Таблица 1.
Характеристики тестовых задач
Задача | n | T | ${{M}_{{{\text{stf}}}}}$ | ${{M}_{{{\text{osc}}}}}$ | ${{M}_{{{\text{inst}}}}}$ |
---|---|---|---|---|---|
VDPOL | 2 | 2 | 3.84 × 106 | 4.0 | 35.8 |
ROBER | 3 | 104 | 8.07 × 107 | 0 | 0 |
OREGO | 3 | 360 | 1.13 × 107 | 1.5 | 27.1 |
HIRES | 8 | 321.8122 | 3.44 × 104 | 0.006 | 0 |
PLATE | 80 | 7 | 6.96 × 103 | 1.02 × 104 | 0 |
BEAM | 80 | 5 | 0 | 3.2 × 104 | 0 |
CUSP | 96 | 1.1 | 6.87 × 104 | 1.8 | 21.0 |
BRUSS | 1000 | 10 | 2 × 105 | 0 | 0 |
Наряду с неявными методами, для решения жестких задач с вещественным жестким спектром успешно применяют специальные явные методы. Принципы построения таких методов рассмотрим на примере явного двухстадийного метода Рунге–Кутты 1-го порядка с функцией устойчивости $R(z) = 1 + z + d{{z}^{2}}$. На фиг. 1 приведены области устойчивости такого метода при различных значениях d. При $d > 1{\text{/}}8$ область устойчивости односвязная, а ее длина равна $1{\text{/}}d$. Уменьшая d, можно увеличить длину области устойчивости. При $d < 1{\text{/}}8$ область устойчивости перестает быть односвязной и состоит из двух разделенных областей, наиболее удаленная из которых позволяет обеспечить стабилизацию метода в жесткой части спектра.
Приведенные области позволяют сформулировать два способа построения явных методов для жестких задач. Первый способ основан на максимальном расширении области устойчивости. Построение многочленов устойчивости одношаговых методов такого типа обычно выполняют исходя из условия чебышёвского альтернанса, поэтому их часто называют методами Рунге–Кутты–Чебышёва. Методы с расширенными областями устойчивости рассматривались в [1], [3]–[7] и многих других работах.
Идея второго способа заключается в получении на основе предварительных стадий оценок наибольших по модулю собственных значений матрицы Якоби, которые используются в заключительной формуле для стабилизации расчетной схемы в полученных точках жесткого спектра. Как отмечалось в [7]–[9], эта идея (обычно в замаскированном виде) использовалась во многих явных нелинейных методах (например, в методах из [10]–[14]). В [10] впервые были четко выделены этапы получения оценок собственных значений и последующего использования этих оценок для стабилизации численного решения. Несмотря на большое число работ, посвященных явным нелинейным методам, они так и не получили широкого практического применения. В [14] на конкретных примерах было показано, что предложенные ранее нелинейные методы пригодны для решения с низкой точностью лишь весьма узкого класса жестких задач. Основной причиной низкой эффективности этих методов является снижение реального порядка при решении жестких задач. Например, двухстадийный метод имеет 2-й порядок при решении нежестких задач, но при решении жестких задач реальный порядок снижается до нулевого (см. [15], [16]). Под реальным порядком мы понимаем порядок, который оценивается при реальных размерах шага h, позволяющих обеспечить заданную точность, тогда как классический порядок оценивается при $h \to 0$.
Более эффективные явные нелинейные одношаговые и многошаговые методы, названные адаптивными, были предложены в [15], [16]. Рассмотренные в этих работах одношаговые методы позволяют обеспечить 1-й порядок для жестких задач при числе стадий $s = 3$ и 2-й порядок при $s > 3$. Общий принцип построения адаптивных одношаговых методов изложен в [7]–[9], а в [8] предложен метод, имеющий для жестких задач 3-й порядок. Столь же эффективные для жестких задач одношаговые методы более высоких порядков построить не удалось, но аналогичные многошаговые методы могут иметь практически любой порядок, и на их основе в [17] построен явный адаптивный метод переменного порядка. Явные адаптивные методы реализованы в программных комплексах МВТУ [18], [19] и SimInTech [20], а также в виде программ в системе MathCad, которые доступны в дополнительных материалах к книге [7] по адресу: http://3v-services.com/books/978-5-97060-636-0. В настоящей статье исследуются явные адаптивные одношаговые методы, которые заметно проще многошаговых методов и в то же время позволяют эффективно решать многие жесткие задачи при умеренных требованиях к точности.
Оценим вычислительные затраты явных методов в зависимости от жесткости при решении задач с вещественным жестким спектром. Определим вычислительные затраты как число вычислений правой части на всем интервале Nf. Тогда Nf = N × s , где N – число выполненных шагов, s – число стадий на одном шаге. Для методов с односвязной областью устойчивости (к ним относятся классические методы и методы с расширенными областями), исходя из условия устойчивости численного решения, получаем
где $l(s)$ – длина области устойчивости вдоль вещественной оси. При числе стадий, равном порядку метода, для метода 2-го порядка имеем $c = 1$, для метода 3-го порядка $c = 1.19$ и для метода 4-го порядка $c = 1.44$. Таким образом, вычислительные затраты классических методов пропорциональны жесткости задачи ${{M}_{{{\text{stf}}}}}$.Оценим теперь затраты чебышёвских методов. Для них размер шага h не ограничен условием устойчивости, а выбирается исходя из заданной точности, и может быть таким же большим, как в неявных методах. Но при этом увеличивается число стадий s, которое может достигать нескольких сотен и определяется из условия устойчивости $l(s) > h\mathop {\max }\limits_i \left( { - {{\lambda }_{i}}} \right)$, где $l(s) \approx K{{s}^{2}}$ (для методов 2-го порядка $K \approx 0.8$, а для методов 3-го порядка $K \approx 0.48$). Тогда оценку затрат получаем в виде
Если задача не очень жесткая, то число шагов N зависит от характера решения и почти не зависит от жесткости, поэтому вычислительные затраты пропорциональны $\sqrt {{{M}_{{{\text{stf}}}}}} $.Методы с расширенными областями устойчивости применяют для решения задач с распределенным вещественным спектром матрицы Якоби, к которым относятся, прежде всего, задачи, полученные в результате дискретизации уравнений в частных производных параболического типа (например, задача BRUSS из [1]). В таких задачах жесткие составляющие, соответствующие различным собственным значениям, сильно связаны между собой. Другой тип задач с вещественным спектром – когда жесткие составляющие слабо связаны между собой. Это проявляется в том, что для получения с необходимой точностью оценок всех жестких собственных значений матрицы Якоби достаточно выполнить несколько итераций покомпонентного степенного метода. К таким задачам относятся задачи VDPOL, ROBER, OREGO, HIRES и CUSP из табл. 1. Именно при решении таких задач явные адаптивные методы наиболее эффективны и при расчетах с двойной точностью позволяют эффективно решать задачи с жесткостью до ${{M}_{{{\text{stf}}}}} = {{10}^{{155}}}$ (см. результаты решения задачи Капса в [7], [9]). Никакие другие явные методы не могут решать такие задачи.
2. ПОСТРОЕНИЕ ЯВНЫХ АДАПТИВНЫХ МЕТОДОВ
В общем случае явные адаптивные одношаговые методы строятся на основе явных стадий Рунге–Кутты, выполняемых по формулам
(2.1)
${{{\mathbf{Y}}}_{i}} = {{{\mathbf{y}}}_{0}} + h\sum\limits_{j = 1}^{i - 1} {{{a}_{{ij}}}{{{\mathbf{F}}}_{j}},} \quad {{{\mathbf{F}}}_{i}} = {\mathbf{f}}\left( {{{t}_{0}} + {{c}_{i}}h,{{{\mathbf{Y}}}_{i}}} \right),\quad i = 1, \ldots ,s.$(2.2)
${\mathbf{\tilde {z}}} = {{{{{\mathbf{u}}}_{s}}} \mathord{\left/ {\vphantom {{{{{\mathbf{u}}}_{s}}} {{{{\mathbf{u}}}_{{s - 1}}}}}} \right. \kern-0em} {{{{\mathbf{u}}}_{{s - 1}}}}}.$Шаг интегрирования выполняем согласно формуле
(2.3)
${{{\mathbf{y}}}_{1}} = {{{\mathbf{y}}}_{0}} + h\left( {\sum\limits_{i = 1}^{s - 1} {{{{\mathbf{u}}}_{i}}} {\text{/}}i{\text{!}} + {{{\mathbf{d}}}_{s}}{{{\mathbf{u}}}_{s}}} \right),$(2.4)
${{{\mathbf{y}}}_{1}} = {{{\mathbf{y}}}_{0}} + h\left( {\sum\limits_{i = 1}^{s - 2} {{{{\mathbf{u}}}_{i}}} {\text{/}}i{\text{!}} + {{{\mathbf{d}}}_{{s - 1}}}{{{\mathbf{u}}}_{{s - 1}}}} \right),$(2.5)
${{d}_{0}} = Q(\tilde {z}),\quad {{d}_{{i + 1}}} = {{({{d}_{i}} - {1 \mathord{\left/ {\vphantom {1 {i{\kern 1pt} !}}} \right. \kern-0em} {i{\kern 1pt} !}})} \mathord{\left/ {\vphantom {{({{d}_{i}} - {1 \mathord{\left/ {\vphantom {1 {i{\kern 1pt} !}}} \right. \kern-0em} {i{\kern 1pt} !}})} {\tilde {z}}}} \right. \kern-0em} {\tilde {z}}},\quad i = 0,\;1,\; \ldots ,\;s - 2$.В случае линейной системы (1.2) получаем
Скалярную функцию устойчивости $Q\left( z \right)$ задаем из условий заданного порядка сходимости нежестких компонент, затухания жестких компонент, расхождения неустойчивых компонент и ограниченности коэффициента ${{d}_{{s - 1}}}$ (см. [7]–[9]). Анализ численных экспериментов показал, что для больших по модулю значений z порядок согласованности с экспонентой неважен. Главное – обеспечить качественно правильное поведение (быстрое затухание либо расхождение) соответствующих компонент. Например, при $s = 3$ можно задать
(2.6)
$Q(z) = \left\{ {\begin{array}{*{20}{l}} {1 + z + \frac{{{{z}^{2}}}}{2} + \frac{{{{z}^{3}}}}{6},\quad \left| z \right| \leqslant 1.6,} \\ {0,\quad z < - 1.6,} \\ {1 + \frac{{167}}{{75}}z,\quad z > 1.6,} \end{array}} \right.$(2.7)
$Q(z) = \left\{ {\begin{array}{*{20}{l}} {1 + z + \frac{{{{z}^{2}}}}{2} + \frac{{{{z}^{3}}}}{6} + \frac{{{{z}^{4}}}}{{48}},\quad \left| z \right| \leqslant 4.5,} \\ {0,\quad z < - 4.5,} \\ {1 + z + \frac{{107}}{{64}}{{z}^{2}},\quad z > 4.5.} \end{array}} \right.$Вычисление коэффициентов вектора ${{{\mathbf{d}}}_{{s - 1}}}$ организуем таким образом, чтобы избежать операций с большими числами и деления на 0. Рассмотрим, например, вычисление ${{d}_{2}}$ при $s = 3$ и $Q(z)$ в виде (2.6). Если очередная компонента нежесткая, т.е. если $\left| {{{u}_{3}}} \right| \leqslant 1.6\left| {{{u}_{2}}} \right|$, то вычисляем $\tilde {z} = {{{{u}_{3}}} \mathord{\left/ {\vphantom {{{{u}_{3}}} {{{u}_{2}}}}} \right. \kern-0em} {{{u}_{2}}}}$, ${{d}_{2}} = {1 \mathord{\left/ {\vphantom {1 2}} \right. \kern-0em} 2} + {{\tilde {z}} \mathord{\left/ {\vphantom {{\tilde {z}} 6}} \right. \kern-0em} 6}$ (при ${{u}_{2}} = 0$ принимаем $\tilde {z} = 0$), а иначе вычисляем
Согласно (2.1), первая стадия следующего шага выполняется по формуле
(2.8)
${{{\mathbf{F}}}_{1}} = {{{\mathbf{f}}}_{1}} = {\mathbf{f}}({{t}_{0}} + h,{{{\mathbf{y}}}_{1}}).$(2.9)
${{{\mathbf{F}}}_{1}} = {{{\mathbf{f}}}_{1}} = {{{\mathbf{f}}}_{0}} + \sum\limits_{i = 1}^{s - 2} {{{{\mathbf{u}}}_{{i + 1}}}} {\text{/}}i{\text{!}} + {{{\mathbf{d}}}_{{s - 1}}}{{{\mathbf{u}}}_{s}}.$(2.10)
${{{\mathbf{F}}}_{1}} = {{{\mathbf{f}}}_{1}} = {{{\mathbf{f}}}_{0}} + \sum\limits_{i = 1}^{s - 3} {{{{\mathbf{u}}}_{{i + 1}}}} {\text{/}}i{\text{!}} + {{{\mathbf{d}}}_{{s - 2}}}{{{\mathbf{u}}}_{{s - 1}}}.$Другой способ повышения устойчивости заключается в выполнении дополнительной коррекции жестких компонент. Например, при $s = 3$ коррекцию жесткой компоненты можно выполнять по формуле
(2.11)
${{y}_{{1\;{\text{cor}}}}} = {{y}_{0}} + h{{d}_{1}}{{f}_{0}} + \left( {1 - {{d}_{1}}} \right)\left( {{{y}_{1}} - {{y}_{0}}} \right) + h{{d}_{2}}\left( {{{f}_{1}} - {{f}_{0}}} \right)$Таким образом, можно выделить три типа адаптивных методов: обычный, со стабилизированной 1-й стадией, с коррекцией. Рассмотрим особенности каждого из этих типов, их преимущества и недостатки.
3. УСТОЙЧИВОСТЬ АДАПТИВНЫХ МЕТОДОВ
В [15], [16] были предложены явные адаптивные методы, стадии которых выполняются согласно формулам
(3.1)
$\begin{gathered} {{{\mathbf{F}}}_{1}} = {\mathbf{f}}({{t}_{0}},{{{\mathbf{y}}}_{0}}),\quad {{{\mathbf{Y}}}_{2}} = {{{\mathbf{y}}}_{0}} + h\beta {{{\mathbf{F}}}_{1}},\quad {{{\mathbf{F}}}_{2}} = {\mathbf{f}}({{t}_{0}} + h\beta ,{{{\mathbf{Y}}}_{2}}), \\ {{{\mathbf{Y}}}_{i}} = {{{\mathbf{y}}}_{0}} + h[(\beta - \alpha ){{{\mathbf{F}}}_{1}} + \alpha {{{\mathbf{F}}}_{{i - 1}}}],\quad {{{\mathbf{F}}}_{i}} = {\mathbf{f}}({{t}_{0}} + h\beta ,{{{\mathbf{Y}}}_{i}}),\quad i = 3,\; \ldots ,\;s. \\ \end{gathered} $(3.2)
$\alpha = \min \left( {\bar {\alpha },\;\mathop {\min }\limits_i \left| {\tilde {z}_{i}^{{ - 1}}} \right|{{{{h}_{{{\text{old}}}}}} \mathord{\left/ {\vphantom {{{{h}_{{{\text{old}}}}}} h}} \right. \kern-0em} h}} \right),$Исследуем устойчивость адаптивных методов, основанных на стадиях (3.1) при $s = 3$, в зависимости от неточности вычисления оценок ${{\tilde {z}}_{i}}$. Решаем уравнение Далквиста $y{\text{'}} = \lambda y$. Пусть $\bar {z} = h\lambda $ и оценка этой величины получена с относительной ошибкой ε, тогда $\tilde {z} = \bar {z}(1 + \varepsilon )$. Предположим также, что
Для обычного метода, исходя из условия $Q(\tilde {z}) = 0$, получаем ${{d}_{2}} = - {{\tilde {z}}^{{ - 1}}} - {{\tilde {z}}^{{ - 2}}}$. Функция устойчивости такого метода при $z = \bar {z}$ имеет видРассмотрим теперь метод с дополнительной коррекцией. В этом случае функция устойчивости скорректированного метода будет имееть вид
Для метода со стабилизированной первой стадией формулы одного шага решения уравнения Далквиста можно записать в виде
Аналогичным образом получены ограничения вида $\left| {\bar {z}} \right| < {{\left| {\bar {z}} \right|}_{{\max }}}$ для методов, основанных на четырех стадиях вида (3.1), и для методов, основанных на шести стадиях, приведенных в [7], [8]. Значения ${{\left| {\bar {z}} \right|}_{{\max }}}$ приведены в табл. 2, где s – число стадий, на основе которых построен адаптивный метод, $\tilde {p}$ – реальный порядок метода при решении жестких задач, nf – число вычислений правой части на одном шаге. Обозначения методов приняты в виде ARK (Adaptive Runge–Kutta) – обычный метод, ARKc – с дополнительной коррекцией, ARKs – со стабилизированной 1-й стадией.
Таблица 2.
Значения ${{\left| {\bar {z}} \right|}_{{\max }}}$ в зависимости от ε
s | $\tilde {p}$ | ARK | ARKc | ARKs | |||
---|---|---|---|---|---|---|---|
nf | ${{\left| {\bar {z}} \right|}_{{\max }}}$ | nf | ${{\left| {\bar {z}} \right|}_{{\max }}}$ | nf | ${{\left| {\bar {z}} \right|}_{{\max }}}$ | ||
3 | 1 | 3 | ${{\left| \varepsilon \right|}^{{ - 1}}}$ | 4 | ${{\left| \varepsilon \right|}^{{ - 2}}}$ | 2 | ∞ |
4 | 2 | 4 | $\sqrt 2 {{\left| \varepsilon \right|}^{{{{ - 1} \mathord{\left/ {\vphantom {{ - 1} 2}} \right. \kern-0em} 2}}}}$ | 5 | $\sqrt 2 {{\left| \varepsilon \right|}^{{ - 1}}}$ | 3 | $0.5{{\left| \varepsilon \right|}^{{ - 1}}}$ |
6 | 3 | 6 | ${{6}^{{{1 \mathord{\left/ {\vphantom {1 3}} \right. \kern-0em} 3}}}}{{\left| \varepsilon \right|}^{{{{ - 1} \mathord{\left/ {\vphantom {{ - 1} 3}} \right. \kern-0em} 3}}}}$ | 7 | ${{6}^{{{1 \mathord{\left/ {\vphantom {1 3}} \right. \kern-0em} 3}}}}{{\left| \varepsilon \right|}^{{{{ - 2} \mathord{\left/ {\vphantom {{ - 2} 3}} \right. \kern-0em} 3}}}}$ | 5 | $\sqrt {{6 \mathord{\left/ {\vphantom {6 7}} \right. \kern-0em} 7}} {{\left| \varepsilon \right|}^{{{{ - 1} \mathord{\left/ {\vphantom {{ - 1} 2}} \right. \kern-0em} 2}}}}$ |
Приведем пример, подтверждающий полученные оценки. Будем решать задачу
(3.4)
$\begin{gathered} y_{1}^{'} = - \mu {{e}_{1}}(t) + \cos t,\quad {{e}_{1}}(t) = {{y}_{1}} - \sin t, \\ y_{2}^{'} = - \mu {{e}_{2}}(t) - \sin t,\quad {{e}_{2}}(t) = {{y}_{2}} - \cos t, \\ {{y}_{1}}(0) = 0,\quad {{y}_{2}}(0) = 1,\quad 0 \leqslant t \leqslant 2\pi , \\ \end{gathered} $Как и следовало ожидать из проведенного выше анализа, расхождение решения методом ARK21 наблюдается при $h\mu > {{\varepsilon }^{{ - 1}}}$, а методом ARK21с – при $h\mu > {{\varepsilon }^{{ - 2}}}$. Внутри интервалов устойчивости ошибки этих двух методов уменьшаются при увеличении μ, что объясняется видом уравнений и свойством жесткой точности при $\beta = 1$ (см. анализ ошибки решения уравнения Протеро–Робинсона в [7], [8]). Метод ARK21s, в отличие от ARK21, не расходится при $h\mu > {{\varepsilon }^{{ - 1}}}$, но ошибка перестает уменьшаться с ростом μ и сохраняет свое значение вплоть до $\mu = {{10}^{{155}}}$, и только при $\mu = 1.4 \times {{10}^{{155}}}$ выдается сообщение о переполнении.
Рассмотрим теперь методы со стадиями (3.1) при $s = 4$, $\beta = 1$, которые сохраняют 2-й порядок при решении жестких задач и обозначены через ARK2, ARK2c и ARK2s. Результаты решения задачи (3.4) этими методами при $\varepsilon = {{10}^{{ - 6}}}$ приведены на фиг. 3. В отношении устойчивости эти результаты полностью согласуются с табл. 2. Ошибки методов ARK2 и ARK2c, как и аналогичных методов ARK21 и ARK21c, уменьшаются при увеличении μ, а ошибка метода ARK2s сначала уменьшается, а при $h\mu \approx {{\varepsilon }^{{{{ - 1} \mathord{\left/ {\vphantom {{ - 1} 2}} \right. \kern-0em} 2}}}}$ начинает возрастать. Таким образом, можно заключить, что неточность оценки собственного значения может привести к расхождению численного решения, а для методов со стабилизированной 1-й стадией – также и к снижению точности при сохранении устойчивости.
4. ТОЧНОСТЬ АДАПТИВНЫХ МЕТОДОВ
Для исследования точности используем три задачи, точные решения которых приводим ниже. Первая из них – задача Капса (см. [21]):
(4.1)
$\begin{gathered} y_{1}^{'} = - (\mu + 2){{y}_{1}} + \mu y_{2}^{2},\quad y_{2}^{'} = {{y}_{1}} - {{y}_{2}} - y_{2}^{2}, \\ {{y}_{1}}(t) = \exp ( - 2t),\quad {{y}_{2}}(t) = \exp ( - t),\quad 0 \leqslant t \leqslant 1. \\ \end{gathered} $(4.2)
$\begin{gathered} \left[ {\begin{array}{*{20}{c}} {y_{1}^{'}} \\ {y_{2}^{'}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} a&b \\ b&a \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{{y}_{1}} - \sin t} \\ {{{y}_{2}} - \cos t} \end{array}} \right] + \left[ {\begin{array}{*{20}{c}} {\cos t} \\ { - \sin t} \end{array}} \right], \\ a = - {{(\mu + 1)} \mathord{\left/ {\vphantom {{(\mu + 1)} 2}} \right. \kern-0em} 2},\quad b = - {{(\mu - 1)} \mathord{\left/ {\vphantom {{(\mu - 1)} 2}} \right. \kern-0em} 2},\quad {{y}_{1}}(t) = \sin t,\quad {{y}_{2}}(t) = \cos t,\quad 0 \leqslant t \leqslant 1. \\ \end{gathered} $(4.3)
$\begin{gathered} y_{1}^{'} = {{y}_{2}} - \frac{\mu }{2}{{y}_{1}}(y_{1}^{2} + y_{2}^{2} - 1),\quad y_{2}^{'} = - {{y}_{1}} - \frac{\mu }{2}{{y}_{2}}(y_{1}^{2} + y_{2}^{2} - 1), \\ {{y}_{1}}(t) = \sin t,\quad {{y}_{2}}(t) = \cos t,\quad 0 \leqslant t \leqslant 1. \\ \end{gathered} $Жесткость задач определяется значением μ, которое (при больших μ) практически совпадает с мерой жесткости ${{M}_{{{\text{stf}}}}}$. Мы решали эти задачи с шагом $h = {1 \mathord{\left/ {\vphantom {1 {30}}} \right. \kern-0em} {30}}$ адаптивными методами, а также методом Розенброка 2-го порядка, который обозначим через Ros2 (этот метод реализован в решателе ode23s системы MATLAB, см. [22]). Ошибки решения в зависимости от μ приведены в табл. 3 для задачи (4.1), в табл. 4 для задачи (4.2) и в табл. 5 для задачи (4.3).
Таблица 3.
Ошибки решения задачи (4.1)
Метод | μ = 1 | μ = 102 | μ = 104 | μ = 106 |
---|---|---|---|---|
ARK21 | 2.74 × 10–5 | 2.80 × 10–4 | 7.11 × 10–3 | 8.28 × 10–3 |
ARK21c | 2.74 × 10–5 | 3.67 × 10–4 | 7.71 × 10–3 | 8.29 × 10–3 |
ARK21s | 2.11 × 10–5 | 8.25 × 10–4 | 1.78 × 10–3 | 1.20 × 10–3 |
ARK2 | 3.02 × 10–5 | 6.87 × 10–5 | 9.21 × 10–5 | 9.31 × 10–5 |
ARK2c | 3.02 × 10–5 | 6.87 × 10–5 | 9.13 × 10–5 | 9.31 × 10–5 |
ARK2s | 3.01 × 10–5 | 7.93 × 10–5 | 2.22 × 10–4 | 2.25 × 10–4 |
Ros2 | 7.77 × 10–5 | 1.85 × 10–4 | 1.51 × 10–4 | 1.48 × 10–4 |
Таблица 4.
Ошибки решения задачи (4.2)
Метод | μ = 1 | μ = 102 | μ = 104 | μ = 106 |
---|---|---|---|---|
ARK21 | 7.89 × 10–5 | 1.16 × 10–3 | 3.29 × 10–3 | 3.33 × 10–3 |
ARK21c | 7.89 × 10–5 | 6.29 × 10–4 | 3.27 × 10–3 | 3.33 × 10–3 |
ARK21s | 7.89 × 10–5 | 4.16 × 10–3 | 1.93 × 10–1 | 2.13 × 10–1 |
ARK2 | 7.92 × 10–5 | 5.03 × 10–5 | 2.40 × 10–5 | 2.46 × 10–5 |
ARK2c | 7.92 × 10–5 | 5.03 × 10–5 | 2.37 × 10–5 | 2.46 × 10–5 |
ARK2s | 7.92 × 10–5 | 3.66 × 10–5 | 7.29 × 10–5 | 7.41 × 10–5 |
Ros2 | 6.21 × 10–5 | 8.94 × 10–5 | 8.21 × 10–5 | 8.17 × 10–5 |
Таблица 5.
Ошибки решения задачи (4.3)
Метод | μ = 1 | μ = 102 | μ = 104 | μ = 106 |
---|---|---|---|---|
ARK21 | 5.86 × 10–5 | 2.20 × 10–4 | 8.95 × 10–4 | 1.05 × 10–3 |
ARK21c | 5.86 × 10–5 | 1.85 × 10–4 | 8.89 × 10–4 | 9.05 × 10–4 |
ARK21s | 6.24 × 10–5 | 4.02 × 10–4 | 1.49 × 10–2 | 1.59 × 10–2 |
ARK2 | 5.86 × 10–5 | 8.07 × 10–5 | 9.52 × 10–4 | — |
ARK2c | 5.86 × 10–5 | 8.07 × 10–5 | 3.58 × 10–4 | — |
ARK2s | 5.86 × 10–5 | 8.04 × 10–5 | 3.58 × 10–4 | 3.06 × 10–4 |
Ros2 | 7.37 × 10–5 | 1.84 × 10–4 | 1.44 × 10–2 | 3.44 × 10–1 |
При решении задачи (4.1) все методы показали приемлемые и вполне объяснимые результаты. При повышении жесткости методы ARK21, ARK21c и ARK21s заметно снижают точность, что объясняется снижением реального порядка до 1-го. Снижение порядка подтверждается расчетами с уменьшением размера шага. Для всех методов при $\mu > {{10}^{4}}$ дальнейшее повышение жесткости уже не приводит к заметному увеличению ошибки, которая мало изменяется вплоть до значения μ, при котором решение расходится.
Задача (4.2) оказалась трудной для метода ARK21s, который показывает неудовлетворительную точность при $\mu \geqslant {{10}^{4}}$, хотя и сохраняет устойчивость вплоть до значения $\mu = {{10}^{{155}}}$. Но при этом сходимость обеспечивается только при малых размерах шага. Например, при $\mu = {{10}^{6}}$ и уменьшении шага в 10 раз ошибка мало изменилась и равна $0.195$. И только при $h < {{10}^{{ - 3}}}$ ошибка пропорциональна ${{h}^{2}}$. Приведенный пример показывает, что при решении некоторых жестких задач метод со стабилизированной 1-й стадией может быть менее точным по сравнению с другими адаптивными методами.
Задача (4.3) – пример жесткой задачи, трудной для решения неявными методами. При больших значениях μ все неявные методы, которые мы использовали для решения этой задачи, требовали больших вычислительных затрат и не обеспечивали требуемой точности. Причиной низкой эффективности неявных методов является медленная сходимость простых ньютоновских итераций, которые используются в этих методах. Явные адаптивные методы были более эффективными. Несколько неожиданно методы ARK21 и ARK21c имели 2‑й порядок при больших значениях μ, хотя при решении других жестких задач реальный порядок снижается до 1-го. Метод ARK2 не позволил получить решение с данным шагом при $\mu > {{10}^{4}}$, а ARK2c – при $\mu > 2 \times {{10}^{5}}$.
При решении всех трех задач методы ARK и ARKc показали близкие результаты, но при этом методы ARKc позволяют решать более жесткие задачи. Например, задача (4.2) была успешно решена методом ARK21 вплоть до значения $\mu = {{10}^{{18}}}$, а методом ARK21c – вплоть до $\mu = {{10}^{{30}}}$.
5. ПОСТРОЕНИЕ МЕТОДОВ ARK32 И ARK32C
Методы, построенные на основе стадий (3.1) при $s = 3$, не могут иметь порядок выше 1-го для жестких задач, поэтому они эффективны только при низкой задаваемой точности. Более эффективные методы 2-го порядка получим, задав $s = 4$. Для эффективного решения жестких задач следует задать $\beta = 1$, но для нежестких задач оптимальное значение β равно 2/3 (тогда метод имеет 3-й порядок). Поэтому имеет смысл настраивать в процессе решения не только заключительную формулу интегрирования, но и параметр β, что позволяет наиболее эффективно решать не только жесткие, но и нежесткие задачи.
Характерной особенностью многих жестких задач является наличие в решении коротких пограничных участков (слоев) с быстрым изменением переменных. При прохождении этих участков все значения $h{{\lambda }_{i}}$ невелики, поэтому задача внутри такого участка не является жесткой. Таким образом, все решение можно разбить на “медленные” жесткие и “быстрые” нежесткие участки. На нежестких участках изменения переменных наиболее значительны, поэтому они вносят значительный вклад в ошибку численного решения. Это является еще одной причиной для построения методов, имеющих повышенный порядок сходимости при решении нежестких задач.
Построим такой метод на основе стадий (3.1) при $s = 4$. Параметры α и β задаем исходя из полученных на предыдущем шаге оценок ${{\tilde {z}}_{i}}$, при этом $\beta = 1 - \alpha $, а α принимаем в виде (3.2), где $\bar {\alpha } = {1 \mathord{\left/ {\vphantom {1 3}} \right. \kern-0em} 3}$. Такие значения обеспечивают эффективное решение как жестких, так и нежестких задач. Шаг интегрирования выполняем по формуле
(5.1)
${{{\mathbf{y}}}_{1}} = {{{\mathbf{y}}}_{0}} + h\left( {{{{\mathbf{f}}}_{0}} + {{{{{\mathbf{u}}}_{2}}} \mathord{\left/ {\vphantom {{{{{\mathbf{u}}}_{2}}} 2}} \right. \kern-0em} 2} + {{{\mathbf{d}}}_{3}}{{{\mathbf{u}}}_{3}}} \right),$При реализации алгоритмов с автоматическим выбором размера шага используют вложенную пару формул (методов) вычисления ${{{\mathbf{y}}}_{1}}$ и ${{{\mathbf{\hat {y}}}}_{1}}$, позволяющую получить оценку локальной ошибки как норму вектора ${{{\mathbf{y}}}_{1}} - {{{\mathbf{\hat {y}}}}_{1}}$. В [7], [8] при $\beta = 1$, $s = 4$ использовалась вложенная формула вида
(5.2)
${{{\mathbf{\hat {y}}}}_{1}} = {{{\mathbf{y}}}_{0}} + h({{{\mathbf{f}}}_{0}} + {{{\mathbf{\hat {d}}}}_{2}}{{{\mathbf{u}}}_{2}}),$Для FSAL-пары принимаем
(5.3)
${{{\mathbf{\hat {y}}}}_{1}} = {{{\mathbf{y}}}_{0}} + h({{{\mathbf{f}}}_{0}} + {{{\mathbf{\hat {d}}}}_{2}}{{{\mathbf{u}}}_{2}} + {{{\mathbf{\hat {d}}}}_{3}}{{{\mathbf{u}}}_{3}} + {{{\mathbf{\hat {d}}}}_{4}}{{{\mathbf{v}}}_{4}}),\quad {{{\mathbf{v}}}_{4}} = {{{\mathbf{f}}}_{1}} - {{{\mathbf{f}}}_{0}} - {{{\mathbf{u}}}_{2}} - {{{{{\mathbf{u}}}_{3}}} \mathord{\left/ {\vphantom {{{{{\mathbf{u}}}_{3}}} 2}} \right. \kern-0em} 2}.$(5.4)
$\begin{gathered} {{{\hat {d}}}_{2}} = (1 - \gamma - g)\gamma + a + g(1 - g),\quad {{{\hat {d}}}_{3}} = ((1 - \gamma - g)\gamma + a)g + a\gamma , \\ {{{\hat {d}}}_{4}} = ag(2 + 4\gamma (1 + \gamma )),\quad a = g\left( {g - \frac{7}{9}} \right) + \frac{{53}}{{162}},\quad \gamma = \min \left( {\frac{2}{9},\left| {{{{\tilde {z}}}^{{ - 1}}}} \right|} \right). \\ \end{gathered} $Рассмотрим теперь метод с коррекцией жестких компонент, которую выполняем после вычислений по формулам (5.1), (5.3), (5.4). Если для i-й компоненты ${{\tilde {z}}_{i}} < - 4.5$, то пересчитываем эту компоненту согласно формулам
Чтобы адаптивные методы были эффективными, необходимо ограничить рост внутренних функций устойчивости. В методах, основанных на стадиях (3.1), это осуществляется с помощью настройки параметра α. Однако реальный порядок таких методов для жестких задач не может быть выше 2-го. Построить эффективный метод, имеющий при решении жестких задач 3-й порядок, удалось только на основе явного метода, имеющего 2-й псевдостадийный порядок (см. [7]). Формулы явного адаптивного метода 3-го порядка со стабилизированной 1-й стадией приведены в [7], [8]. Обозначим этот метод через ARK3s.
6. ЧИСЛЕННЫЕ ЭКСПЕРИМЕНТЫ
Для экспериментов с переменным размером шага были выбраны 5 задач из [1], основные характеристики которых приведены в табл. 1. Для управления размером шага используем стандартную процедуру (см. [1], [7]). Допустимую ошибку обозначим через Tol. Для всех задач задаем допустимую относительную ошибку $Rtol = Tol$, а допустимую абсолютную ошибку принимаем в виде $Atol = Tol$ для задач VDPOL и OREGO, $Atol = {{10}^{{ - 6}}}{\kern 1pt} \times Tol$ для ROBER, $Atol = {{10}^{{ - 4}}}{\kern 1pt} \times Tol$ для HIRES и $Atol = {{10}^{{ - 2}}}{\kern 1pt} \times Tol$ для CUSP. Вычислительные затраты оцениваем числом вычислений правой части Nf, а в качестве оценки точности решения, как и в [24], используем значение
Результаты для трех значений Tol приведены в табл. 6. Обсудим сначала результаты решения задачи VDPOL, которая задается уравнениями
(6.1)
$y_{1}^{'} = {{y}_{2}},\quad y_{2}^{'} = \mu ((1 - y_{1}^{2}){{y}_{2}} - {{y}_{1}}),\quad {{y}_{1}}(0) = 2,\quad {{y}_{2}}(0) = 0,\quad 0 \leqslant t \leqslant 2,$Таблица 6.
Результаты решения тестовых задач
Задача | Метод | Tol = 10–2 | Tol = 10–3 | Tol = 10–4 | |||
---|---|---|---|---|---|---|---|
scd | Nf | scd | Nf | scd | Nf | ||
VDPOL | ARK21s | 2.16 | 2515 | 3.27 | 16 183 | 5.02 | 103 895 |
ARK2s | 2.25 | 823 | 4.14 | 1708 | 4.06 | 4060 | |
ARK3s | 2.31 | 1181 | 3.06 | 1276 | 3.56 | 2276 | |
ARK2c | 1.12 | 1120 | 2.09 | 2071 | 2.64 | 4207 | |
ARK32 | 2.69 | 1705 | 2.99 | 2437 | 4.15 | 4069 | |
ARK32c | 2.44 | 1093 | 3.11 | 2029 | 4.13 | 4110 | |
ROBER | ARK2s | 3.05 | 32 383 | 3.39 | 895 | 4.37 | 2629 |
ARK3s | 2.96 | 41 971 | 2.61 | 21 156 | 4.74 | 10 031 | |
ARK32 | 4.38 | 28 377 | 6.23 | 18 641 | 5.76 | 8221 | |
ARK32c | 3.84 | 925 | 4.17 | 1394 | 4.47 | 2330 | |
OREGO | ARK2s | 1.06 | 1984 | 2.19 | 4360 | 3.28 | 11 275 |
ARK3s | 1.71 | 2451 | 2.18 | 3036 | 3.19 | 4971 | |
ARK32 | 1.70 | 3905 | 2.47 | 4649 | 2.67 | 8109 | |
ARK32c | 0.95 | 1870 | 1.67 | 3598 | 2.92 | 8883 | |
HIRES | ARK2s | 1.35 | 1129 | 2.05 | 1489 | 2.57 | 2338 |
ARK3s | 1.22 | 2216 | 3.06 | 2341 | 3.78 | 2666 | |
ARK32 | 1.01 | 1765 | 1.37 | 1725 | 2.22 | 2381 | |
ARK32c | 0.73 | 1344 | 1.29 | 1652 | 2.71 | 2293 | |
CUSP | ARK2s | 2.88 | 565 | 3.46 | 1306 | 4.26 | 3091 |
ARK3s | 3.05 | 7086 | 3.66 | 3611 | 4.53 | 3331 | |
ARK32 | 3.16 | 13 349 | 4.16 | 3733 | 4.11 | 2685 | |
ARK32c | 2.42 | 679 | 3.18 | 1185 | 3.91 | 2826 |
Обратим теперь внимание на результаты методов ARK2s, ARK3s и ARK32 при решении задачи ROBER. При $Tol = {{10}^{{ - 2}}}$ вычислительные затраты Nf намного больше, чем при меньших значениях Tol. Объясняется это тем, что при увеличении размера шага возникает неустойчивость численного решения, которая приводит к резким колебаниям величины шага и увеличению числа шагов. Аналогичное явление проявляется и при решении задачи CUSP методами ARK3s и ARK32 (хотя задача CUSP значительно менее жесткая, чем задачи VDPOL и OREGO, при решении которых этот эффект отсутствует).
Для более наглядного сравнения методов мы объединили результаты решения всех пяти задач и приводим на фиг. 4 зависимости общих затрат на их решение от усредненного для этих задач значения scd при $Tol = {{10}^{{ - i}}}$, $i = 2,\; \ldots ,7$. При $Tol = {{10}^{{ - 4}}}$ все методы показывают примерно одинаковые результаты. При повышении точности ($Tol < {{10}^{{ - 4}}}$) преимущество имеет метод более высокого порядка ARK3s, а при $Tol > {{10}^{{ - 4}}}$ метод ARK32c превосходит другие методы.
Анализ приведенных результатов позволяет сделать вывод, что наиболее эффективным явным адаптивным методом при решении жестких задач с умеренной точностью является ARK32c, а для расчетов с повышенной точностью можно использовать метод ARK3s.
Список литературы
Хайрер Э., Ваннер Г. Решение обыкновенных дифференциальных уравнений. Жесткие и дифференциально-алгебраические задачи. М.: Мир, 1999.
Curtiss C.W., Hirschelder J.O. Integration of stiff equations // Proc. Nat. Acad. Sci. USA. 1952. V. 38. P. 235–243.
Лебедев В.И. Как решать явными методами жесткие системы дифференциальных уравнений // Вычисл. процессы и системы. М.: Наука, 1991. Вып. 8. С. 237–291.
Verwer J.G. Explicit Runge–Kutta methods for parabolic partial differential equations // Appl. Numer. Math. 1996. V. 22. № 1–3. P. 359–379.
Новиков Е.А. Явные методы для жестких систем. Новосибирск: Наука, 1997.
Скворцов Л.М. Явные стабилизированные методы Рунге–Кутты // Ж. вычисл. матем. и матем. физ. 2011. Т. 51. № 7. С. 1236–1250.
Скворцов Л.М. Численное решение обыкновенных дифференциальных и дифференциально-алгебраических уравнений. М: ДМК Пресс, 2018.
Скворцов Л.М. Явные адаптивные методы Рунге–Кутты для жестких и колебательных задач // Ж. вычисл. матем. и матем. физ. 2011. Т. 51. № 8. С. 1434–1448.
Скворцов Л.М. Явные адаптивные методы Рунге–Кутты // Матем. моделирование. 2011. Т. 23. № 7. С. 73–87.
Fowler M.E., Warten R.M. A numerical integration technique for ordinary differential equations with widely separated eigenvalues // IBM J. Research and Development. 1967. V. 11. № 5. P. 537–543.
Lambert J.D. Nonlinear methods for stiff systems of ordinary differential equations // Lect. Notes in Math. 1974. V. 363. P. 75–88.
Wambecq A. Rational Runge–Kutta methods for solving systems of ordinary differential equations // Computing. 1978. V. 20. № 4. P. 333–342.
Бобков В.В. Новые явные A-устойчивые методы численного решения дифференциальных уравнений // Дифференц. ур-ния. 1978. Т. 14. № 12. С. 2249–2251.
Заворин А.Н. Применение нелинейных методов для расчета переходных процессов в электрических цепях // Изв. вузов. Радиоэлектроника. 1983. Т. 26. № 3. С. 35–41.
Скворцов Л.М. Адаптивные методы численного интегрирования в задачах моделирования динамических систем // Изв. РАН. Теория и системы управления. 1999. № 4. С. 72–78.
Скворцов Л.М. Явные адаптивные методы численного решения жестких систем // Матем. моделирование. 2000. Т. 12. № 12. С. 97–107.
Скворцов Л.М. Явный многошаговый метод численного решения жестких дифференциальных уравнений // Ж. вычисл. матем. и матем. физ. 2007. Т. 47. № 6. С. 959–967.
Козлов О.С., Скворцов Л.М., Ходаковский В.В. Решение дифференциальных и дифференциально-алгебраических уравнений в программном комплексе “МВТУ”. 2005. URL: http://model.exponenta.ru/mvtu/20051121.html.
Козлов О.С., Скворцов Л.М. Программный комплекс “МВТУ” в научных исследованиях и прикладных разработках // Матем. моделирование. 2015. Т. 27. № 11. С. 32–46.
Карташов Б.А., Шабаев Е.А., Козлов О.С., Щекатуров А.М. Среда динамического моделирования технических систем SimInTech. М.: ДМК Пресс, 2017.
Деккер К., Вервер Я. Устойчивость методов Рунге–Кутты для жестких нелинейных дифференциальных уравнений. М.: Мир, 1988.
Shampine L.F., Reichelt M.W. The MATLAB ODE suite // SIAM J. Sci. Comput. 1997. V. 18. № 1. P. 1–22.
Bogacki P., Shampine L.F. A 3(2) pair of Runge–Kutta formulas // Appl. Math. Lett. 1989. V. 2. № 4. P. 321–325.
Mazzia F., Magherini C. Test set for initial value problem solvers. Release 2.4. 2008. URL: http://pitagora.dm.uniba.it/~testset/report/testset.pdf.
Дополнительные материалы отсутствуют.
Инструменты
Журнал вычислительной математики и математической физики