Журнал вычислительной математики и математической физики, 2022, T. 62, № 5, стр. 790-808

МЕТОДЫ ESDIRK ТРЕТЬЕГО И ЧЕТВЕРТОГО ПОРЯДКОВ ДЛЯ ЖЕСТКИХ И ДИФФЕРЕНЦИАЛЬНО-АЛГЕБРАИЧЕСКИХ ЗАДАЧ

Л. М. Скворцов *

МГТУ им. Н.Э. Баумана
105005 Москва, 2-я Бауманская, 5, Россия

* E-mail: lm_skvo@rambler.ru

Поступила в редакцию 16.11.2021
После доработки 14.12.2021
Принята к публикации 11.01.2022

Полный текст (PDF)

Аннотация

Рассматриваются жестко точные однократно диагонально-неявные методы Рунге–Кутты с явной первой стадией (ESDIRK), предназначенные для решения жестких обыкновенных дифференциальных уравнений (ОДУ) и дифференциально-алгебраических уравнений (ДАУ). Достоинство этих методов – простая реализация, но они имеют только второй стадийный порядок, что ограничивает возможность построения эффективных методов высоких порядков. Методы ESDIRK наиболее эффективны при расчетах с невысокой точностью, достаточной для решения большинства практических задач. Поэтому в статье рассматриваются методы 3-го и 4-го порядков, позволяющие получить решение с малыми вычислительными затратами при умеренных требованиях к точности. Предложены новые методы, удовлетворяющие некоторым дополнительным условиям, что позволяет эффективно решать не только жесткие ОДУ, но и ДАУ индексов 2 и 3. Уделено внимание реализации методов с автоматическим выбором размера шага, и приведены результаты численных экспериментов. Библ. 36. Фиг. 2. Табл. 12.

Ключевые слова: обыкновенные дифференциальные уравнения, жесткая задача Коши, дифференциально-алгебраические уравнения индексов 2 и 3, диагонально-неявные методы Рунге–Кутты, ESDIRK.

1. ВВЕДЕНИЕ

Диагонально-неявные методы Рунге–Кутты (DIRK, см. [1]–[18]) относятся к неявным методам, которые наиболее просто реализуются. Благодаря этому методы DIRK широко применяются в прикладных вычислениях. Они используются для решения жестких ОДУ, ДАУ индексов 2 и 3 (см. [3], [4], [10]–[12], [14]), уравнений в частных производных (см. [15], [19]–[21]), а также входят в состав явно‑неявных аддитивных методов (см. [21], [22]). Методы DIRK реализованы в программных продуктах MATLAB и SimInTech (см. [23]).

Один шаг метода DIRK при решении задачи Коши

${\mathbf{y}}{\kern 1pt} ' = {\mathbf{f}}\left( {t,\;{\mathbf{y}}} \right),\quad {\mathbf{y}}\left( {{{t}_{0}}} \right) = {{{\mathbf{y}}}_{0}}$
выполняется согласно формулам
${{{\mathbf{y}}}_{{n + 1}}} = {{{\mathbf{y}}}_{n}} + h\sum\limits_{i = 1}^s {{{b}_{i}}{{{\mathbf{F}}}_{i}}} ,\quad {{{\mathbf{F}}}_{i}} = {\mathbf{f}}\left( {{{t}_{n}} + h{{c}_{i}},\;{{{\mathbf{Y}}}_{i}}} \right),\quad {{{\mathbf{Y}}}_{i}} = {{{\mathbf{y}}}_{n}} + h\sum\limits_{j = 1}^i {{{a}_{{ij}}}{{{\mathbf{F}}}_{j}}} ,$
где h – размер шага, s – число стадий, Yi и Fi – стадийные значения и их производные. Таблица коэффициентов (таблица Бутчера) метода DIRK имеет вид
$\begin{array}{*{20}{c}} {{{c}_{1}}}&\vline & {{{a}_{{11}}}}&{}&{}&{} \\ {{{c}_{2}}}&\vline & {{{a}_{{21}}}}&{{{a}_{{22}}}}&{}&{} \\ \vdots &\vline & \vdots & \vdots & \ddots &{} \\ {{{c}_{s}}}&\vline & {{{a}_{{s1}}}}&{{{a}_{{s2}}}}& \cdots &{{{a}_{{ss}}}} \\ \hline {}&\vline & {{{b}_{1}}}&{{{b}_{2}}}& \cdots &{{{b}_{s}}} \end{array} = \begin{array}{*{20}{c}} {\mathbf{c}}&\vline & {\mathbf{A}} \\ \hline {}&\vline & {{{{\mathbf{b}}}^{{\text{T}}}}} \end{array}$
(нулевые элементы матрицы A обычно опускают).

Практическое применение нашли однократно диагонально-неявные методы Рунге–Кутты (SDIRK – Singly DIRK) и аналогичные методы с явной первой стадией (ESDIRK – Explicit first stage SDIRK). Методы SDIRK имеют ${{a}_{{ii}}}\, = \gamma ,i = 1,...,s$, а методы ESDIRK имеют a11 = 0, aii = γ, $i = 2,...,s$. В [1] исследовалась сходимость методов SDIRK при решении жесткого уравнения Протеро–Робинсона (см. [24]). В результате был сделан вывод о преимуществе методов, имеющих ${{b}_{i}} = {{a}_{{si}}},i = 1, \ldots ,s$ (такие методы Рунге–Кутты называют жестко точными).

Большое значение при решении жестких ОДУ и ДАУ высших индексов имеет также стадийный порядок – наибольшее целое q, для которого выполняются равенства

${\mathbf{A}}{{{\mathbf{c}}}^{{k - 1}}} = {{{{{\mathbf{c}}}^{k}}} \mathord{\left/ {\vphantom {{{{{\mathbf{c}}}^{k}}} k}} \right. \kern-0em} k},\quad {{{\mathbf{b}}}^{{\text{T}}}}{{{\mathbf{c}}}^{{k - 1}}} = {1 \mathord{\left/ {\vphantom {1 k}} \right. \kern-0em} k},\quad k = 1, \ldots ,q$
(здесь и далее предполагаем покомпонентное выполнение операций возведения вектора в степень и умножения векторов). Стадийный порядок методов SDIRK не может быть выше 1-го, а методов ESDIRK – выше 2-го.

Простейший тест для методов решения ОДУ – уравнение Далквиста $y' = \lambda y$. Один шаг решения этого уравнения методом Рунге–Кутты запишется в виде ${{y}_{{n + 1}}} = R\left( {h\lambda } \right){{y}_{n}}$, где R(z) – функция устойчивости, вычисляемая по формуле

$R\left( z \right) = 1 + z{{{\mathbf{b}}}^{{\text{T}}}}{{\left( {{\mathbf{I}} - z{\mathbf{A}}} \right)}^{{ - 1}}}{\mathbf{e}},\quad {\mathbf{e}} = {{\left[ {1,\; \ldots ,\;1} \right]}^{{\text{T}}}},\quad {\mathbf{I}} = \operatorname{diag} \left( {\mathbf{e}} \right).$

Метод называется A(α)-устойчивым, если $\left| {R\left( z \right)} \right| \leqslant 1$ при $\left| {\arg ( - z)} \right| \leqslant \alpha $, и A-устойчивым, если α = 90°. Если при этом $R\left( \infty \right) = 0$, то метод называется L(α)-устойчивым либо L-устойчивым (при α = 90°). Жестко точные методы SDIRK удовлетворяют условию $R\left( \infty \right) = 0$. Потребуем выполнения этого условия также и для методов ESDIRK. Требование L-устойчивости часто является завышенным, поэтому будем рассматривать также и L(α)-устойчивые методы при значении α, близком к 90°.

Согласно [25], метод называется L-затухающим порядка μ > 0, если его функция устойчивости удовлетворяет соотношению $\left| {R\left( z \right)} \right| = O({{z}^{{ - \mu }}})$ при z → ∞. L(α)-устойчивый метод с порядком L-затухания μ > 1 будем обозначать как Lμ(α)‑устойчивый. На основании численных экспериментов мы убедились, что повышенный порядок L‑затухания (μ > 1) не дает преимущества при решении жестких задач. Действительно, любой L(α)‑устойчивый метод обеспечит порядок L-затухания μ, если принять μ шагов за один шаг. Однако L2(α)-устойчивый метод позволяет реализовать эффективный контроль ошибки при решении ДАУ индекса 3. Поэтому наряду с L(α)-устойчивыми методами рассмотрим также и L2(α)-устойчивый метод.

Тестовое сравнение методов SDIRK и ESDIRK было выполнено в [7]–[10], [14], где показано преимущество методов ESDIRK при решении жестких ОДУ и ДАУ индексов 2 и 3. Это преимущество объясняется более высоким стадийным порядком и наличием дополнительных коэффициентов матрицы A при таком же числе неявных стадий. Поэтому мы рассматриваем жестко точные L(α)-устойчивые методы ESDIRK 2-го стадийного порядка, и в дальнейшем под методами ESDIRK подразумеваем именно такие методы.

Простейший метод ESDIRK, обладающий перечисленными свойствами, имеет 2-й порядок и задается таблицей Бутчера

$\begin{array}{*{20}{c}} 0&\vline & 0&{}&{} \\ {2\gamma }&\vline & \gamma &\gamma &{} \\ 1&\vline & \beta &\beta &\gamma \\ \hline {}&\vline & \beta &\beta &\gamma \end{array}\;,\quad \gamma = 1 - \frac{{\sqrt 2 }}{2},\quad \beta = \frac{{\sqrt 2 }}{4}.$

Этот метод можно интерпретировать как последовательное применение правила трапеций (TR) и формулы дифференцирования назад 2-го порядка (BDF2), поэтому он получил название TR‑BDF2. Благодаря простым расчетным формулам и высокой эффективности, этот метод широко применяется в практических вычислениях, и ему посвящено множество работ, среди которых [17], [18]. Однако метод TR‑BDF2 эффективен только при вычислениях с низкой точностью, а для получения более точного результата следует использовать методы более высоких порядков.

Четырехстадийный метод ESDIRK 3-го порядка можно получить, задав γ равным одному из корней многочлена $1 - 9\gamma + 18{{\gamma }^{2}} - 6{{\gamma }^{3}}$. Задав γ = 0.4358…, получаем L-устойчивый метод, а задав γ = 0.1589…, получаем более точный, но L(75.6°)-устойчивый метод. Такие методы рассматривались в [4]–[7]. Последующие исследования показали, что можно построить более эффективные методы, увеличив число стадий. Поэтому в настоящей статье рассматриваются пяти- и шестистадийные методы порядков 3 и 4.

2. ФУНКЦИЯ УСТОЙЧИВОСТИ

Построение метода ESDIRK обычно начинается с выбора значения диагонального элемента γ. Пусть r = s – 1 – число неявных стадий, а p – порядок метода. Примем p = r – 1 и $R\left( \infty \right) = 0$, тогда функция устойчивости метода ESDIRK однозначно определяется значением γ и имеет вид

(2.1)
$R\left( z \right) = \frac{1}{{1 - \gamma z}} + \sum\limits_{i = 1}^{r - 1} {{{D}_{i}}} \left( \gamma \right)\frac{{{{z}^{i}}}}{{{{{\left( {1 - \gamma z} \right)}}^{{i + 1}}}}},\quad {{D}_{i}}\left( \gamma \right) = \sum\limits_{j = 0}^i {\frac{{{{{\left( { - \gamma } \right)}}^{j}}}}{{\left( {i - j} \right)!}}} \left( {\begin{array}{*{20}{c}} i \\ j \end{array}} \right).$

Функция (2.1) аппроксимирует экспоненту с порядком p = r – 1. Разложив выражение ${{e}^{z}} - R\left( z \right)$ в ряд Тейлора, получаем

(2.2)
${{e}^{z}} - R\left( z \right) = \frac{{{{C}_{r}}}}{{r!}}{{z}^{r}} + \frac{{{{C}_{{r + 1}}}}}{{\left( {r + 1} \right)!}}{{z}^{{r + 1}}} + O({{z}^{{r + 2}}}),$
где коэффициенты Cr и ${{C}_{{r + 1}}}$ совпадают с одними из коэффициентов погрешности метода. Заметим, что при γ = 0, r ≤ 5 получаем функцию устойчивости явного p-стадийного метода порядка p = r – 1, тогда ${{C}_{r}} = {{C}_{{r + 1}}} = 1$.

При выборе подходящих значений γ исходим из того, что метод должен иметь достаточно большой сектор устойчивости (примем α > 75°). Это требование задает ограничение величины γ снизу. Кроме того, должна обеспечиваться достаточно высокая точность решения уравнения Далквиста (зададим ограничения $\left| {{{C}_{r}}} \right| < 1$, $\left| {{{C}_{{r + 1}}}} \right| < 1$, т.е. точность должна быть заведомо выше, чем у явного метода порядка r – 1, полученного при γ = 0). Из условия $0 \leqslant {{c}_{i}} \leqslant 1$ получаем также γ ≤ 0.5. Эти требования ограничивают величину γ сверху. Исходя из перечисленных требований, получаем ограничения значения γ для пятистадийных методов в виде 0.117 < γ < 0.263, а для шестистадийных методов – в виде 0.143 < γ < 0.289.

Исследуем зависимости угла α и коэффициентов Cr, ${{C}_{{r + 1}}}$ от γ. Для пятистадийных методов (r = 4) с функцией устойчивости (2.1) получаем

${{C}_{4}} = 24{{D}_{4}}\left( \gamma \right),\quad {{C}_{5}} = 1 - 200{{\gamma }^{2}} + 1200{{\gamma }^{3}} - 1800{{\gamma }^{4}} + 480{{\gamma }^{5}}.$

На фиг. 1а приведены графики зависимостей α, С4 и С5 от γ. В общем случае при выборе соответствующих коэффициентов такие методы имеют 3-й порядок. А если задать γ равным одному из 4 значений, удовлетворяющих условию C4 = 0, то метод может иметь 4-й порядок. Наилучшая точность обеспечивается при наименьшем из этих значении (γ = 0.1064…), но такой метод не является даже L(0)-устойчивым. Таким образом, выбор γ  сводится к компромиссу между точностью и устойчивостью.

Фиг. 1.

В первых пяти строках табл. 1 приведены характеристики функции устойчивости для некоторых значений γ, пригодных для построения пятистадийных L(α)-устойчивых методов 3-го порядка. Значение γ = 0.125 примерно соответствует локальному максимуму зависимости α(γ). Близкое к этому значение γ = 0.1288… (один из корней многочлена $1 - 12\gamma + 36{{\gamma }^{2}} - 24{{\gamma }^{3}}$) обеспечивает 2-й порядок L-затухания. Метод будет L-устойчивым, если 0.2236… ≤ γ ≤ 0.5728… (см. [2]). Значение γ = 0.225 близко к левой границе этого интервала и использовалось в двух методах из [13]. А значение γ = 0.5728… (правая граница интервала) является единственным, при котором метод L-устойчив и имеет 4-й порядок. В результате сравнения характеристик мы выбрали значение γ = 0.2204…, при котором метод имеет 4-й порядок (см. строку 1 в табл. 2). Метод с таким значением γ был предложен в [7] и является наиболее эффективным среди пятистадийных L(α)-устойчивых методов. Он не является L-устойчивым, но ниже будет показано, что даже при решении жесткой задачи с чисто мнимым спектром матрицы Якоби он показывает приемлемые результаты. В табл. 1 (строки 3, 4, 6, 7) приведены также значения γ  методов, построенных в разд. 4, 5 и удовлетворяющих дополнительным условиям порядка для ДАУ индексов 2 и 3.

Таблица 1.

Характеристики функций устойчивости методов 3-го порядка

s γ Устойчивость С4 С5
1 5 0.125 L(83.12°) –0.0566 –0.206
2 5 0.1288 L2(82.90°) –0.0691 –0.233
3 5 0.1815 L(79.35°) –0.0800 –0.272
4 5 0.2164 L(88.81°) –0.0107 0.076
5 5 0.225 L(90°) 0.0130 0.207
6 6 1/6 L2(88.91°) –0.0185 –0.0185
7 6 0.2 L(90°) 0.0096 0.170
Таблица 2.

Характеристики функций устойчивости методов 4-го порядка

s γ Устойчивость С5 С6
1 5 0.2204 L(89.55°) 0.135 0.878
2 6 1/6 L(89.95°) 0.059 0.367
3 6 0.1744 L2(89.97°) 0.076 0.476
4 6 0.25 L(90°) 0.102 0.590
5 6 4/15 L(90°) 0.050 0.109

Рассмотрим теперь функцию R(z) шестистадийных методов 4-го порядка. В этом случае коэффициенты погрешности в (2.2) находим по формулам

${{C}_{5}} = 120{{D}_{5}}\left( \gamma \right),\quad {{C}_{6}} = 1 - 450{{\gamma }^{2}} + 4800{{\gamma }^{3}} - 16\,200{{\gamma }^{4}} + 17\,280{{\gamma }^{5}} - 3600{{\gamma }^{6}}.$

На фиг. 1б приведены графики зависимостей α, C5 и C6 от γ на интересующем нас интервале, а в строках 2–5 табл. 2 приведены характеристики функции устойчивости при некоторых значениях γ. В пределах этого интервала метод будет L-устойчивым при γ ≥ 0.2479… (см. [2]). Наиболее удобно близкое к граничному значение γ = 0.25, которое использовалось при построении методов 4‑го порядка в [2], [7]–[10], [13], [14], [21]. В [2] рекомендовалось также значение γ = 4/15 = 0.2666…, при котором ${{C}_{5}}$ и ${{C}_{6}}$ малы. Отметим, что при 0.164 ≤ γ ≤ 0.191 коэффициенты погрешности невелики, а α > 89.9°. Значение γ = 1/ 6 – наиболее удобное из этого интервала. Методы с таким γ предлагались в [9], [10], [14]. Близкое к этому значение γ = 0.1744… (один из корней многочлена $1 - 20\gamma + 120{{\gamma }^{2}} - 240{{\gamma }^{3}} + 120{{\gamma }^{4}}$) обеспечивает 2-й порядок L-затухания.

3. ТОЧНОСТЬ

Главным показателем точности методов численного решения ОДУ является порядок аппроксимации. Условия, обеспечивающие порядок p метода Рунге–Кутты, можно представить в виде

(3.1)
$e\left( {{{T}_{{ij}}}} \right) = 0,\quad i = 1,\; \ldots ,\;p,\quad j = 1,\; \ldots ,\;{{\nu }_{i}},$
где e(Tij) – коэффициенты погрешности метода; Tij – корневые деревья порядка i, соответствующие этим коэффициентам; ${{\nu }_{i}}$ – число различных деревьев порядка i. Для i ≤ 6 имеем ${{\nu }_{1}} = {{\nu }_{2}} = 1$, ${{\nu }_{3}} = 2$, ${{\nu }_{4}} = 4$, ${{\nu }_{5}} = 9$, ${{\nu }_{6}} = 20$. Условия порядка до 5-го включительно вместе с соответствующими деревьями приведены в [14], [26].

В общем случае все коэффициенты погрешности различны, но если стадийный порядок больше 1, то число различных коэффициентов сокращается. Для методов 2‑го стадийного порядка справедливы равенства

$\begin{gathered} e\left( {{{T}_{{31}}}} \right) = e\left( {{{T}_{{32}}}} \right);\quad e\left( {{{T}_{{41}}}} \right) = e\left( {{{T}_{{42}}}} \right),\quad e\left( {{{T}_{{43}}}} \right) = e\left( {{{T}_{{44}}}} \right); \\ e\left( {{{T}_{{51}}}} \right) = e\left( {{{T}_{{52}}}} \right) = e\left( {{{T}_{{55}}}} \right),\quad e\left( {{{T}_{{53}}}} \right) = e\left( {{{T}_{{54}}}} \right),\quad e\left( {{{T}_{{56}}}} \right) = e\left( {{{T}_{{57}}}} \right),\quad e\left( {{{T}_{{58}}}} \right) = e\left( {{{T}_{{59}}}} \right). \\ \end{gathered} $

Для методов ESDIRK из условия 1-го стадийного порядка получаем

(3.2)
${{a}_{{i1}}} = {{c}_{i}} - \mathop \sum \limits_{j = 2}^{i - 1} {{a}_{{ij}}} - \gamma ,\quad i = 2,\; \ldots ,\;s.$

Коэффициенты ai1 не входят во все остальные условия, поэтому их вычисляют в последнюю очередь. Из условия 2-го стадийного порядка имеем

(3.3)
${{c}_{2}} = 2\gamma ,\quad {{a}_{{i2}}} = \frac{1}{{4\gamma }}\left[ {c_{i}^{2} - 2\left( {\mathop \sum \limits_{j = 3}^{i - 1} {{a}_{{ij}}}{{c}_{j}} + \gamma {{c}_{i}}} \right)} \right],\quad i = 3,\; \ldots ,\;s.$

Остальные коэффициенты находим исходя из условий порядка (3.1) для 2 < i ≤ p, необходимого условия L(α)-устойчивости $R\left( \infty \right) = 0$ и некоторых дополнительных условий (например, условий порядка для ДАУ индексов 2 и 3).

Основная трудность при построении методов высоких порядков (4 и выше) заключается в необходимости обеспечить выполнение большого числа алгебраических условий. Учет диагональной формы матрицы A позволяет упростить эти условия, в результате они становятся не сложнее, чем для явных методов. Упрощенные условия порядка для методов ESDIRK до 5-го порядка включительно приведены в [9], [14]. Пусть выполняются условия 2-го стадийного порядка (3.2), (3.3). Тогда для обеспечения 3-го порядка метода дополнительно должно выполняться условие

(3.4)
$\sum\limits_{i = 2}^{s - 1} {{{b}_{i}}c_{i}^{2}} = \frac{1}{3} - \gamma ,$
а для обеспечения 4-го порядка должны выполняться также и условия

(3.5)
$\sum\limits_{i = 2}^{s - 1} {{{b}_{i}}c_{i}^{3}} = \frac{1}{4} - \gamma ,\quad \sum\limits_{i = 4}^{s - 1} {{{b}_{i}}\left[ {\sum\limits_{j = 3}^{i - 1} {{{a}_{{ij}}}\left( {\sum\limits_{k = 2}^{j - 1} {{{a}_{{jk}}}{{c}_{k}}} } \right)} } \right]} = \frac{1}{{24}} - \frac{1}{2}\gamma + \frac{3}{2}{{\gamma }^{2}} - {{\gamma }^{3}}.$

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

(3.6)
$R\left( \infty \right) = 1 - {{{\mathbf{\tilde {b}}}}^{{\text{T}}}}{{{\mathbf{\tilde {A}}}}^{{ - 2}}}{\mathbf{\tilde {c}}} = 1 - {{{\mathbf{e}}}_{r}}^{{\text{T}}}{{{\mathbf{\tilde {A}}}}^{{ - 1}}}{\mathbf{\tilde {c}}} = 0,$
где

${\mathbf{\tilde {A}}} = \left[ {\begin{array}{*{20}{c}} \gamma &0& \cdots &0&0 \\ {{{a}_{{32}}}}&\gamma & \cdots &0&0 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ {{{a}_{{s - 1,2}}}}&{{{a}_{{s - 1,3}}}}& \cdots &\gamma &0 \\ {{{a}_{{s2}}}}&{{{a}_{{s3}}}}& \cdots &{{{a}_{{s,s - 1}}}}&\gamma \end{array}} \right],\quad {\mathbf{\tilde {b}}} = \left[ {\begin{array}{*{20}{c}} {{{a}_{{s2}}}} \\ {{{a}_{{s3}}}} \\ \vdots \\ {{{a}_{{s,s - 1}}}} \\ \gamma \end{array}} \right],\quad {\mathbf{\tilde {c}}} = \left[ {\begin{array}{*{20}{c}} {{{c}_{2}}} \\ {{{c}_{3}}} \\ \vdots \\ {{{c}_{{s - 1}}}} \\ {{{c}_{s}}} \end{array}} \right],\quad {{{\mathbf{e}}}_{r}} = \left[ {\begin{array}{*{20}{c}} 0 \\ 0 \\ \vdots \\ 0 \\ 1 \end{array}} \right].$

При p = s – 1 выполнение этого условия обеспечивается, если γ – корень многочлена Dp(γ), а при p = s – 2 условие (3.6) приводится к виду

(3.7)
${{a}_{{s,s - 1}}}{{a}_{{s - 1,s - 2}}} \cdots {{a}_{{32}}}{{c}_{2}} = \gamma {{D}_{p}}\left( \gamma \right).$

Точность решения ОДУ методом порядка p зависит, прежде всего, от размера шага и от коэффициентов погрешности $e\left( {{{T}_{{p + 1,i}}}} \right)$. Используя свободные коэффициенты метода как оптимизируемые параметры, можно повысить точность метода, минимизировав коэффициенты погрешности. Такой подход является обычным при построении методов Рунге–Кутты.

При решении жестких ОДУ реальный порядок метода может быть ниже классического порядка, что приводит к заметному снижению точности решения. Для исследования этого явления, которое получило известность как феномен снижения порядка, Протеро и Робинсон (см. [24]) исследовали уравнение

(3.8)
$y' = \lambda \left( {y - \varphi \left( t \right)} \right) + \varphi '\left( t \right),\quad y\left( {{{t}_{0}}} \right) = \varphi \left( {{{t}_{0}}} \right),$
с точным решением y(t) = φ(t). Используя разложение φ(t) в ряд Тейлора, получаем локальную ошибку метода стадийного порядка q в виде
${{\delta }_{1}} = \varphi \left( {{{t}_{0}} + h} \right) - {{y}_{1}} = \sum\limits_{i = q + 1}^\infty {{{e}_{i}}\left( {h\lambda } \right)} \frac{{{{d}^{i}}\varphi \left( {{{t}_{0}}} \right)}}{{d{{t}^{i}}}}\frac{{{{h}^{i}}}}{{i!}},$
где ${{e}_{i}}\left( z \right) = z{{{\mathbf{b}}}^{{\text{{\rm T}}}}}{{\left( {{\mathbf{I}} - z{\mathbf{A}}} \right)}^{{ - 1}}}({{{\mathbf{c}}}^{i}} - i{\mathbf{A}}{{{\mathbf{c}}}^{{i - 1}}}) + (1 - i{{{\mathbf{b}}}^{{\text{T}}}}{{{\mathbf{c}}}^{{i - 1}}})$ – предложенные в [7] функции погрешности. Глобальная ошибка выражается формулой
$\varphi \left( {{{t}_{{n + 1}}}} \right) - {{y}_{{n + 1}}} = R\left( {h\lambda } \right)\left( {\varphi \left( {{{t}_{n}}} \right) - {{y}_{n}}} \right) + {{\delta }_{{n + 1}}},$
где δn+ 1 – локальная ошибка на (n + 1)-м шаге. Для жестко точных методов с явной 1-й стадией функции погрешности можно представить в виде

${{e}_{i}}\left( z \right) = {{{\mathbf{e}}}_{r}}^{{\text{{\rm T}}}}{{\left( {{\mathbf{I}} - z{\mathbf{\tilde {A}}}} \right)}^{{ - 1}}}\left( {{{{{\mathbf{\tilde {c}}}}}^{i}} - i{\mathbf{\tilde {A}}}{{{{\mathbf{\tilde {c}}}}}^{{i - 1}}}} \right)$.

В [8], [9], [11], [14] были рассмотрены также функции погрешности eij(z), полученные при анализе ошибок решения простейших модельных уравнений, отличных от уравнения Протеро–Робинсона. Но при этом для всех j имеем ${{e}_{{q + 1,j}}}\left( z \right) \equiv {{e}_{{q + 1}}}\left( z \right)$. Таким образом, функция ${{e}_{{q + 1}}}\left( z \right)$ задает главный член погрешности при решении жестких модельных уравнений, поэтому далее будем рассматривать только функцию e3(z).

Анализ ошибки численного решения уравнения (3.8) в зависимости от величины z = hλ показал важность понятий жесткой точности и стадийного порядка для эффективного решения жестких задач. Жесткая точность обеспечивает малую ошибку при больших по модулю значениях z, а высокий стадийный порядок ограничивает ошибку при умеренных z. Снижение точности и порядка тем заметнее, чем больше разность между классическим порядком p и стадийным порядком q. Можно ограничить снижение точности, если минимизировать функцию ${{e}_{3}}\left( z \right)$. Методы ESDIRK с минимизированной функцией погрешности предлагались в [7]–[9], [14]. В [9], [14], [27] были рассмотрены также методы, имеющие ${{e}_{3}}\left( z \right) \equiv 0$, но они требуют выполнения двух дополнительных стадий.

Обсудим теперь точность решения ДАУ методами ESDIRK. Системы ДАУ индекса 1 имеют вид

${\mathbf{y}}{\kern 1pt} ' = {\mathbf{f}}\left( {{\mathbf{y}},{\mathbf{z}}} \right),\quad {\mathbf{0}} = {\mathbf{g}}\left( {{\mathbf{y}},{\mathbf{z}}} \right),$
где матрица ${{{\mathbf{g}}}_{{\mathbf{z}}}} = {{\partial {\mathbf{g}}\left( {{\mathbf{y}},{\mathbf{z}}} \right)} \mathord{\left/ {\vphantom {{\partial {\mathbf{g}}\left( {{\mathbf{y}},{\mathbf{z}}} \right)} {\partial {\mathbf{z}}}}} \right. \kern-0em} {\partial {\mathbf{z}}}}$ обратима в окрестности решения. Жестко точные методы, к которым относятся ESDIRK, обеспечивают точное выполнение алгебраического соотношения, поэтому порядки сходимости дифференциальных и алгебраических компонент совпадают с порядком метода: ${{p}_{y}} = {{p}_{z}} = p$.

Систему ДАУ индекса 2 можно привести к виду

${\mathbf{y}}' = {\mathbf{f}}\left( {{\mathbf{y}},{\mathbf{z}}} \right),\quad {\mathbf{0}} = {\mathbf{g}}\left( {\mathbf{y}} \right),$
где матрица gyfz обратима в окрестности решения. Как следствие теоремы 5.2 из [28], порядки сходимости соответствующих компонент при решении таких задач методами ESDIRK (при p ≥ 3, q = 2) следующие: ${{p}_{y}} = \min (p,\;q + 1) = 3$, ${{p}_{z}} = q = 2$.

Систему ДАУ индекса 3 можно представить в виде

${\mathbf{y}}' = {\mathbf{f}}\left( {{\mathbf{y}},{\mathbf{z}}} \right),\quad {\mathbf{z}}' = {\mathbf{k}}\left( {{\mathbf{y}},{\mathbf{z}},{\mathbf{u}}} \right),\quad {\mathbf{0}} = {\mathbf{g}}\left( {\mathbf{y}} \right),$
где матрица gyfzku обратима в окрестности решения. В [29] получены порядки сходимости компонент y, z, u при решении таких задач методами с обратимой матрицей A. Для методов с явной 1-й стадией аналогичных результатов мы не нашли, но численные эксперименты с методами ESDIRK давали оценки порядков ${{\tilde {p}}_{y}} = {{\tilde {p}}_{z}} = 2$, ${{\tilde {p}}_{u}} = 1$.

В [10], [11], [14] для исследования сходимости решения ДАУ индексов 2 и 3 использовались простые модельные уравнения, позволившие получить дополнительные условия, необходимые для повышения порядков сходимости различных компонент ДАУ. Для методов ESDIRK при R(∞) = 0, q = 2 эти условия имеют вид

(3.9)
${\mathbf{e}}_{r}^{{\text{T}}}{{{\mathbf{\tilde {A}}}}^{{ - 1}}}{{{\mathbf{\tilde {c}}}}^{3}} = 3;$
(3.10)
${\mathbf{e}}_{r}^{{\text{T}}}{{{\mathbf{\tilde {A}}}}^{{ - 2}}}{{{\mathbf{\tilde {c}}}}^{3}} = 6;$
(3.11)
${{{\mathbf{\tilde {b}}}}^{{\text{T}}}}({\mathbf{\tilde {c}}} \cdot ({{{\mathbf{\tilde {A}}}}^{{ - 2}}}{{{\mathbf{\tilde {c}}}}^{3}})) = 2,\quad {{{\mathbf{\tilde {b}}}}^{{\text{T}}}}{{({{{\mathbf{\tilde {A}}}}^{{ - 2}}}{{{\mathbf{\tilde {c}}}}^{3}})}^{2}} = 12;$
(3.12)
${{{\mathbf{\tilde {b}}}}^{{\text{T}}}}({\mathbf{\tilde {c}}} \cdot ({{{\mathbf{\tilde {A}}}}^{{ - 1}}}{{{\mathbf{\tilde {c}}}}^{3}})) = {3 \mathord{\left/ {\vphantom {3 4}} \right. \kern-0em} 4}.$

В табл. 3 приведены необходимые условия сходимости с заданным порядком для компонент ДАУ, где необходимое условие для каждой компоненты отмечено знаком +. Эти условия являются необходимыми для рассмотренных в [10], [11], [14] модельных уравнений, а значит, и для уравнений более общего вида. На ряде тестовых задач мы убедились, что выполнение этих условий действительно обеспечивает указанные порядки, но у нас нет доказательства, что эти условия являются также и достаточными.

Таблица 3.

Необходимые условия для порядков сходимости компонент ДАУ

Условие ДАУ индекса 2 ДАУ индекса 3
py = 4 pz = 3 py = 3 pz = 3 pu = 2
(3.4) + + + +
(3.5) +
(3.9) + + + + +
(3.10) + + +
(3.11) + +
(3.12) +

4. ПЯТИСТАДИЙНЫЕ МЕТОДЫ

Чтобы различать рассматриваемые методы, условимся обозначать их в виде ESDIRKsp(γ), где s – число стадий, p – порядок, γ – диагональный элемент.

Пятистадийный метод 4-го порядка должен удовлетворять условиям (3.3)–(3.5), из которых получаем

(4.1)
$\begin{gathered} {{c}_{2}} = 2\gamma ,\quad {{a}_{{32}}} = \frac{{c_{3}^{2}{\kern 1pt} - 2\gamma {{c}_{3}}}}{{4\gamma }},\quad \left[ {\begin{array}{*{20}{c}} {{{b}_{2}}} \\ {{{b}_{3}}} \\ {{{b}_{4}}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{{a}_{{52}}}} \\ {{{a}_{5}}_{3}} \\ {{{a}_{5}}_{4}} \end{array}} \right] = {{\left[ {\begin{array}{*{20}{c}} {{{c}_{2}}}&{{{c}_{3}}}&{c{}_{4}} \\ {c_{2}^{2}}&{c_{3}^{2}}&{c_{4}^{2}} \\ {c_{2}^{3}}&{c_{3}^{3}}&{c_{4}^{3}} \end{array}} \right]}^{{ - 1}}}\left[ {\begin{array}{*{20}{c}} {{1 \mathord{\left/ {\vphantom {1 2}} \right. \kern-0em} 2}\, - \gamma } \\ {{1 \mathord{\left/ {\vphantom {1 3}} \right. \kern-0em} 3}\, - \gamma } \\ {{1 \mathord{\left/ {\vphantom {1 {4{\kern 1pt} }}} \right. \kern-0em} {4{\kern 1pt} }}{\kern 1pt} - \gamma } \end{array}} \right], \\ {{a}_{{43}}} = \frac{{1 - 12\gamma + 36{{\gamma }^{2}} - 24{{\gamma }^{3}}}}{{24{{b}_{4}}{{a}_{{32}}}{{c}_{2}}}},\quad {{a}_{{42}}} = \frac{{c_{{_{4}}}^{2} - 2\left( {{{a}_{{43}}}{{c}_{3}} + \gamma {{c}_{4}}} \right)}}{{4\gamma }}, \\ \end{gathered} $
после чего коэффициенты ai1 находим из (3.2). Такой метод будет иметь R(∞) = 0, если γ – корень многочлена ${{D}_{4}}\left( \gamma \right)$. Мы выбрали значение
(4.2)
$\gamma = 0.22042841025921,$
которое считаем наиболее подходящим (тогда метод L(89.55°)-устойчив и имеет малые значения двух из девяти коэффициентов погрешности 5-го порядка: $e\left( {{{T}_{{58}}}} \right) = e\left( {{{T}_{{59}}}} \right) = 0.135$). Альтернативное значение γ = 0.5728… обеспечивает L-устойчивость, но тогда $e\left( {{{T}_{{58}}}} \right) = e\left( {{{T}_{{59}}}} \right) = - 3.27$ и ${{c}_{2}} > 1$.

У нас остались два свободных параметра – ${{c}_{3}}$ и ${{c}_{4}}$. Их подбором можно минимизировать остальные коэффициенты погрешности, но это приводит к большим значениям коэффициентов метода, что нежелательно. Более заметный эффект получим, минимизировав функцию погрешности. При p = r = s – 1 функция ${{e}_{3}}\left( z \right)$ метода ESDIRK зависит только от γ и c3 и имеет вид

${{e}_{3}}\left( z \right) = \frac{{{{z}^{{p - 2}}}}}{{{{{\left( {1 - \gamma z} \right)}}^{p}}}}2\gamma {{D}_{{p - 1}}}\left( \gamma \right)[{{c}_{3}} - (c_{3}^{ * } + \gamma ) - \gamma z({{c}_{3}} - c_{3}^{ * })],\quad c_{3}^{ * } = 4\gamma + {{\gamma }^{2}}\frac{{{{D}_{{p - 2}}}\left( \gamma \right)}}{{{{D}_{{p - 1}}}\left( \gamma \right)}}.$

В [9], [14] было показано, что неравенство $c_{3}^{ * } \leqslant {{c}_{3}} \leqslant c_{3}^{ * } + \gamma $ задает множество всех (Парето-оптимальных) значений c3, изменяя которые невозможно уменьшить функцию $\left| {{{e}_{3}}\left( z \right)} \right|$ сразу во всех точках левой полуплоскости. Отметим также, что значение ${{c}_{3}} = c_{3}^{ * }$ обеспечивает выполнение равенства (3.9).

При заданном значении γ (4.2) интервал оптимальных значений c3 получаем в виде $0.701\, \leqslant \,{{c}_{3}}\, \leqslant \,0.921$. Мы выбрали

(4.3)
$\begin{gathered} {{c}_{3}} = (2 + \sqrt 2 )\gamma \approx 0.753,\quad {{c}_{4}} = \frac{{a + \gamma \sqrt b }}{{48{{\gamma }^{3}} - 72{{\gamma }^{2}} + 24\gamma - 2}} \approx 0.601, \\ a = (6{{\gamma }^{2}} - 6\gamma + 1){{c}_{3}} + 96{{\gamma }^{3}} - 100{{\gamma }^{2}} + 27\gamma - 2,\quad \\ b = (19\,872{{\gamma }^{3}}{\kern 1pt} - 17\,808{{\gamma }^{2}}{\kern 1pt} + 4160\gamma \, - 264){{c}_{3}} - 26\,784{{\gamma }^{3}}{\kern 1pt} + 24\,128{{\gamma }^{2}}{\kern 1pt} - 5656\gamma \, + 361. \\ \end{gathered} $

Эти значения обеспечивают попадание c3 в оптимальный интервал, а также L-устойчивость 3-й и 4-й стадий, тогда

(4.4)
${{a}_{{i1}}} = {{a}_{{i2}}},\quad i = 2,\; \ldots ,\;5.$

Метод, задаваемый формулами (4.1)(4.4), был предложен в [7], численные значения его коэффициентов приведены в [7], [9], [14]. Обозначим его через ESDIRK54(0.220).

Рассмотрим теперь построение пятистадийных методов, обладающих повышенной точностью при решении ДАУ индексов 2 и 3. Методы 4-го порядка не подходят для этого вследствие недостаточного числа свободных коэффициентов. Поэтому снизим порядок до 3-го и используем условия (3.2)–(3.4), (3.7), (3.9)–(3.11). В этом случае число алгебраических условий совпадает с числом коэффициентов метода. Мы нашли 12 методов, которые удовлетворяют этим условиям. Они разбиваются на 3 группы в зависимости от значений b2 и b3: 1) ${{b}_{2}} = 0,\;\;{{b}_{3}} \ne 0$ – 6 методов; 2) ${{b}_{2}} = 0,\;\;{{b}_{3}} = 0$ – 3 метода; 3) ${{b}_{2}} \ne 0,\;\;{{b}_{3}} \ne 0$ – 3 метода. Для всех методов ${{c}_{3}}$ задается формулой

(4.5)
${{c}_{3}} = \frac{{(1 - 6\gamma + 2{{\gamma }^{2}})(3\gamma - 6{{\gamma }^{2}})}}{{1 - 9\gamma + 18{{\gamma }^{2}} - 6{{\gamma }^{3}}}}.$

Из всех 12 методов только два удовлетворяют нашим требованиям. Первый из них принадлежит 1-й группе, в которой γ – один из корней многочлена $1 - 24\gamma + 186{{\gamma }^{2}} - 600{{\gamma }^{3}} + 828{{\gamma }^{4}} - 432{{\gamma }^{5}}$ + + 72γ6. Его коэффициенты находим по формулам (3.2), (3.3), (4.5),

$\gamma = 0.18157222316139,\quad {{c}_{4}} = \frac{{1 - 20\gamma + 135{{\gamma }^{2}} - 366{{\gamma }^{3}} + 378{{\gamma }^{4}} - 72{{\gamma }^{5}}}}{{1 - 15\gamma + 81{{\gamma }^{2}} - 180{{\gamma }^{3}} + 162{{\gamma }^{4}} - 36{{\gamma }^{5}}}},\quad {{b}_{2}} = 0,$
${{b}_{3}} = \frac{{\left( {3 - 6\gamma } \right){{c}_{4}}{\kern 1pt} - 2 + 6\gamma }}{{{{c}_{3}}\left( {{{c}_{4}} - {{c}_{3}}} \right)}},\quad {{b}_{4}} = \frac{{\left( {3 - 6\gamma } \right){{c}_{3}}{\kern 1pt} - 2 + 6\gamma }}{{{{c}_{4}}\left( {{{c}_{3}} - {{c}_{4}}} \right)}},\quad {{a}_{{43}}} = \frac{{\gamma (1 - 9\gamma + 18{{\gamma }^{2}} - 6{{\gamma }^{3}})}}{{6{{b}_{4}}{{a}_{{32}}}{{c}_{2}}}}.$

Обозначим этот метод через ESDIRK53(0.182).

Второй метод принадлежит 2-й группе, в которой γ – один из трех вещественных корней многочлена $2 - 36\gamma + 201{{\gamma }^{2}} - 432{{\gamma }^{3}} + 360{{\gamma }^{4}} - 72{{\gamma }^{5}}$ (два других корня – комплексно-сопряженные). Его коэффициенты находим по формулам (3.2), (3.3), (4.5),

$\begin{gathered} \gamma = 0.21646827973787,\quad {{c}_{4}} = \frac{{2\left( {1 - 3\gamma } \right)}}{{3\left( {1 - 2\gamma } \right)}},\quad {{b}_{2}} = {{b}_{3}} = 0, \\ {{b}_{4}} = \frac{{3{{{\left( {1 - 2\gamma } \right)}}^{2}}}}{{4\left( {1 - 3\gamma } \right)}},\quad {{a}_{{43}}} = \frac{{\gamma (1 - 9\gamma + 18{{\gamma }^{2}} - 6{{\gamma }^{3}})}}{{6{{b}_{4}}{{a}_{{32}}}{{c}_{2}}}}. \\ \end{gathered} $

Обозначим этот метод через ESDIRK53(0.216).

5. ШЕСТИСТАДИЙНЫЕ МЕТОДЫ

При построении шестистадийных методов 4-го порядка часто используют значение γ = 1/4, которое обеспечивает L-устойчивость и малые коэффициенты погрешности. В [13] при таком значении γ свободные параметры метода выбирались из условий L-устойчивости внутренних стадий и минимизации коэффициентов погрешности. Построенный метод ESDIRK4(3)6L [2]SA (см. [13], табл. 16) “is recommended as a good default method for solving stiff problems at moderate error tolerances”. В наших обозначениях это метод ESDIRK64(1/4).

В [10], [14] рассматривались шестистадийные методы ESDIRK 4-го порядка, удовлетворяющие условиям (3.9)–(3.12). При γ = 1/6 такие методы образуют однопараметрическое семейство со свободным параметром c4. Из этого семейства мы выбрали метод, имеющий c4 = 2/3 и таблицу Бутчера

$\begin{array}{*{20}{c}} 0&\vline & 0&{}&{}&{}&{}&{} \\ {{1 \mathord{\left/ {\vphantom {1 3}} \right. \kern-0em} 3}}&\vline & {{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{}&{}&{}&{} \\ {{8 \mathord{\left/ {\vphantom {8 {15}}} \right. \kern-0em} {15}}}&\vline & {{{31} \mathord{\left/ {\vphantom {{31} {150}}} \right. \kern-0em} {150}}}&{{4 \mathord{\left/ {\vphantom {4 {25}}} \right. \kern-0em} {25}}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{}&{}&{} \\ {{2 \mathord{\left/ {\vphantom {2 3}} \right. \kern-0em} 3}}&\vline & {{{23} \mathord{\left/ {\vphantom {{23} {88}}} \right. \kern-0em} {88}}}&{{8 \mathord{\left/ {\vphantom {8 {99}}} \right. \kern-0em} {99}}}&{{{125} \mathord{\left/ {\vphantom {{125} {792}}} \right. \kern-0em} {792}}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{}&{} \\ {{1 \mathord{\left/ {\vphantom {1 2}} \right. \kern-0em} 2}}&\vline & {{{61} \mathord{\left/ {\vphantom {{61} {384}}} \right. \kern-0em} {384}}}&{{{13} \mathord{\left/ {\vphantom {{13} {72}}} \right. \kern-0em} {72}}}&{{{125} \mathord{\left/ {\vphantom {{125} {1152}}} \right. \kern-0em} {1152}}}&{{{ - 11} \mathord{\left/ {\vphantom {{ - 11} {96}}} \right. \kern-0em} {96}}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{} \\ 1&\vline & {{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&0&0&0&{{2 \mathord{\left/ {\vphantom {2 3}} \right. \kern-0em} 3}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}} \\ \hline {{{b}_{i}}}&\vline & {{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&0&0&0&{{2 \mathord{\left/ {\vphantom {2 3}} \right. \kern-0em} 3}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}} \end{array}$.

Обозначим этот метод через ESDIRK64(1/6).

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

Первый метод является L2(88.91°)-устойчивым (см. строку 6 в табл. 1) и имеет таблицу коэффициентов

(5.1)
$\begin{array}{*{20}{c}} 0&\vline & 0&{}&{}&{}&{}&{} \\ {{1 \mathord{\left/ {\vphantom {1 3}} \right. \kern-0em} 3}}&\vline & {{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{}&{}&{}&{} \\ {{2 \mathord{\left/ {\vphantom {2 3}} \right. \kern-0em} 3}}&\vline & {{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{{1 \mathord{\left/ {\vphantom {1 3}} \right. \kern-0em} 3}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{}&{}&{} \\ 1&\vline & {{1 \mathord{\left/ {\vphantom {1 3}} \right. \kern-0em} 3}}&0&{{1 \mathord{\left/ {\vphantom {1 2}} \right. \kern-0em} 2}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{}&{} \\ 1&\vline & {{7 \mathord{\left/ {\vphantom {7 {16}}} \right. \kern-0em} {16}}}&0&{{3 \mathord{\left/ {\vphantom {3 {16}}} \right. \kern-0em} {16}}}&{{5 \mathord{\left/ {\vphantom {5 {24}}} \right. \kern-0em} {24}}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{} \\ 1&\vline & {{1 \mathord{\left/ {\vphantom {1 8}} \right. \kern-0em} 8}}&{{3 \mathord{\left/ {\vphantom {3 8}} \right. \kern-0em} 8}}&{{3 \mathord{\left/ {\vphantom {3 8}} \right. \kern-0em} 8}}&{{1 \mathord{\left/ {\vphantom {1 {360}}} \right. \kern-0em} {360}}}&{ - {2 \mathord{\left/ {\vphantom {2 {45}}} \right. \kern-0em} {45}}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}} \\ \hline {{{b}_{i}}}&\vline & {{1 \mathord{\left/ {\vphantom {1 8}} \right. \kern-0em} 8}}&{{3 \mathord{\left/ {\vphantom {3 8}} \right. \kern-0em} 8}}&{{3 \mathord{\left/ {\vphantom {3 8}} \right. \kern-0em} 8}}&{{1 \mathord{\left/ {\vphantom {1 {360}}} \right. \kern-0em} {360}}}&{ - {2 \mathord{\left/ {\vphantom {2 {45}}} \right. \kern-0em} {45}}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}} \end{array}$.

Обозначим его через ESDIRK63(1/6).

Второй метод является L-устойчивым (см. строку 7 в табл. 1). При его построении мы старались минимизировать функцию e3(z). Полученный метод ESDIRK63(1/5) имеет таблицу коэффициентов

$\begin{array}{*{20}{c}} 0&\vline & 0&{}&{}&{}&{}&{} \\ {{2 \mathord{\left/ {\vphantom {2 5}} \right. \kern-0em} 5}}&\vline & {{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}&{{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}&{}&{}&{}&{} \\ {{4 \mathord{\left/ {\vphantom {4 5}} \right. \kern-0em} 5}}&\vline & {{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}&{{2 \mathord{\left/ {\vphantom {2 5}} \right. \kern-0em} 5}}&{{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}&{}&{}&{} \\ 0&\vline & {{{ - 877} \mathord{\left/ {\vphantom {{ - 877} {8040}}} \right. \kern-0em} {8040}}}&{{{ - 731} \mathord{\left/ {\vphantom {{ - 731} {4020}}} \right. \kern-0em} {4020}}}&{{{731} \mathord{\left/ {\vphantom {{731} {8040}}} \right. \kern-0em} {8040}}}&{{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}&{}&{} \\ 1&\vline & {{{257423} \mathord{\left/ {\vphantom {{257423} {2807040}}} \right. \kern-0em} {2807040}}}&{{{59} \mathord{\left/ {\vphantom {{59} {1920}}} \right. \kern-0em} {1920}}}&{{{1381} \mathord{\left/ {\vphantom {{1381} {3840}}} \right. \kern-0em} {3840}}}&{{{7437} \mathord{\left/ {\vphantom {{7437} {23392}}} \right. \kern-0em} {23392}}}&{{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}&{} \\ 1&\vline & {{{5047} \mathord{\left/ {\vphantom {{5047} {29240}}} \right. \kern-0em} {29240}}}&{{8 \mathord{\left/ {\vphantom {8 {15}}} \right. \kern-0em} {15}}}&{{{29} \mathord{\left/ {\vphantom {{29} {120}}} \right. \kern-0em} {120}}}&{{{ - 4489} \mathord{\left/ {\vphantom {{ - 4489} {109650}}} \right. \kern-0em} {109650}}}&{ - {8 \mathord{\left/ {\vphantom {8 {75}}} \right. \kern-0em} {75}}}&{{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}} \\ \hline {{{b}_{i}}}&\vline & {{{5047} \mathord{\left/ {\vphantom {{5047} {29240}}} \right. \kern-0em} {29240}}}&{{8 \mathord{\left/ {\vphantom {8 {15}}} \right. \kern-0em} {15}}}&{{{29} \mathord{\left/ {\vphantom {{29} {120}}} \right. \kern-0em} {120}}}&{{{ - 4489} \mathord{\left/ {\vphantom {{ - 4489} {109650}}} \right. \kern-0em} {109650}}}&{ - {8 \mathord{\left/ {\vphantom {8 {75}}} \right. \kern-0em} {75}}}&{{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}} \end{array}.$

Основные характеристики рассмотренных методов приведены в табл. 4, где

$\begin{gathered} \left\| {e\left( {{{T}_{i}}} \right)} \right\| = {{\left( {\sum\limits_{j = 1}^{{{\nu }_{i}}} {e{{{\left( {{{T}_{{ij}}}} \right)}}^{2}}} } \right)}^{{{1 \mathord{\left/ {\vphantom {1 2}} \right. \kern-0em} 2}}}},\quad {{\left\| {{{e}_{3}}{\kern 1pt} \left( z \right)} \right\|}_{{\text{R}}}}{\kern 1pt} = \max \left( {\left| {{{e}_{3}}{\kern 1pt} \left( x \right)} \right|,\;x \leqslant 0} \right), \\ {{\left\| {{{e}_{3}}{\kern 1pt} \left( z \right)} \right\|}_{{\text{C}}}}{\kern 1pt} = \max \left( {\left| {{{e}_{3}}{\kern 1pt} \left( z \right)} \right|,\;\operatorname{Re} z \leqslant 0} \right) = \max \left( {\left| {{{e}_{3}}{\kern 1pt} \left( {iy} \right)} \right|,\;y \geqslant 0} \right). \\ \end{gathered} $
Таблица 4.

Характеристики методов ESDIRK

Метод sp(γ) α $\left\| {e\left( {{{T}_{{p + 1}}}} \right)} \right\|$ $\left\| {e\left( {{{T}_{{p + 2}}}} \right)} \right\|$ ${{\left\| {{{e}_{3}}\left( z \right)} \right\|}_{{\text{R}}}}$ ${{\left\| {{{e}_{3}}\left( z \right)} \right\|}_{{\text{C}}}}$
ESDIRK53(0.182) 79.35° 0.180 0.78 0.0027 0.0083
ESDIRK53(0.216) 88.81° 0.084 0.44 0.0058 0.0179
ESDIRK63(1/6) 88.91° 0.026 0.05 0.0040 0.0138
ESDIRK63(1/5) 90° 0.015 0.28 0.0013 0.0052
ESDIRK54(0.220) 89.55° 0.25 1.64 0.0020 0.0116
ESDIRK64(1/6) 89.95° 0.13 0.72 0.0016 0.0086
ESDIRK64(1/4) 90° 0.16 1.11 0.0114 0.0326

6. РЕЗУЛЬТАТЫ РАСЧЕТОВ С ПОСТОЯННЫМ РАЗМЕРОМ ШАГА

Чтобы обеспечить одинаковые условия для всех методов, задаем размер шага таким, чтобы на всем интервале было выполнено заданное число неявных стадий Nr. В этом случае будет выполнено N = Nr/r шагов размером h = T/N. На каждой неявной стадии выполняем достаточно большое число итераций, заведомо обеспечивающее сходимость.

Посмотрим сначала, как влияет жесткость задачи на точность решения. Для этого используем задачу

$\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],\quad {\mathbf{y}}\left( 0 \right) = \left[ {\begin{array}{*{20}{c}} 0 \\ 1 \end{array}} \right], \\ a = - {{\left( {\mu + 1} \right)} \mathord{\left/ {\vphantom {{\left( {\mu + 1} \right)} 2}} \right. \kern-0em} 2},\quad b = {{\left( {\mu - 1} \right)} \mathord{\left/ {\vphantom {{\left( {\mu - 1} \right)} 2}} \right. \kern-0em} 2},\quad 0 \leqslant t \leqslant 2\pi , \\ \end{gathered} $
решение которой ${{y}_{1}}\left( t \right) = \sin \;t$, ${{y}_{2}}\left( t \right) = \cos \;t$, а собственные числа матрицы Якоби равны –1 и –μ. Задаем Nr = 120 и вычисляем максимальное значение евклидовой нормы ошибки на всем интервале интегрирования. Полученные результаты (зависимости ошибки от μ) приведены на фиг. 2. Большой “горб” кривой для ESDIRK64(1/4) объясняется поведением функции погрешности e3(z), которая у жестко точных методов достигает максимального значения при умеренных значениях z. У других методов такой горб проявляется значительно меньше или совсем отсутствует, что объясняется меньшими значениями функции погрешности и меньшей разностью p – q у методов 3-го порядка.

Фиг. 2.

Вторая задача – тест PLATE (ее описание дано в [2]). Она содержит 80 переменных и имеет комплексный спектр матрицы Якоби. Интегрирование выполняем на интервале [0, 7] с размерами шага ${{h}_{1}} = {7 \mathord{\left/ {\vphantom {7 N}} \right. \kern-0em} N}$ и ${{h}_{2}} = 0.1{{h}_{1}}$, где $N = {{280} \mathord{\left/ {\vphantom {{280} r}} \right. \kern-0em} r}$. Точность решения оцениваем величиной

(6.1)
$scd = - \lg \left( {\mathop {\max }\limits_i \left| {\frac{{{{y}_{i}} - {{{\tilde {y}}}_{i}}}}{{{{y}_{i}}}}} \right|} \right)$,
где yi – точное, а ${{\tilde {y}}_{i}}$ – численное решение по i-й компоненте в конце интервала интегрирования. Величина scd (significant correct digits) показывает число правильных значащих цифр численного решения. Результаты приведены в табл. 5. Видно, что порядок метода практически не влияет на точность решения этой задачи, и лучшие результаты показывают методы, имеющие малые нормы функции погрешности (см. табл. 4). Такие результаты характерны для умеренно жестких задач, а также для задач с распределенным спектром матрицы Якоби, к которым относится PLATE.

Таблица 5.

Значения scd при решении задачи PLATE

h Метод ESDIRK
53(0.182) 53(0.216) 63(1/6) 63(1/5) 54(0.220) 64(1/6) 64(1/4)
h1 3.68 3.51 3.43 3.91 3.77 3.67 2.78
0.1h1 6.32 5.95 5.87 6.33 6.29 6.38 5.49

Еще две задачи – ДАУ индексов 2 и 3. Задача индекса 2 задается уравнениями

(6.2)
$\begin{gathered} y_{1}^{'} = {{y}_{2}}z,\quad y_{2}^{'} = {{y}_{1}}\left( {z - 2\cos t} \right),\quad 2{{y}_{1}}{{y}_{2}} = \sin \left( {2\sin t} \right), \\ {{y}_{1}}\left( 0 \right) = 0,\quad {{y}_{2}}\left( 0 \right) = z\left( 0 \right) = 1,\quad 0 \leqslant t \leqslant 2\pi \\ \end{gathered} $
и имеет решение ${{y}_{1}}\left( t \right) = \sin \left( {\sin t} \right)$, ${{y}_{2}}\left( t \right) = \cos \left( {\sin t} \right)$, $z\left( t \right) = \cos t$. Задаем Nr = 200 и вычисляем ey и ez – максимальные ошибки соответствующих компонент на всем интервале (для вектора ${\mathbf{y}} = {{\left( {{{y}_{1}},\;{{y}_{2}}} \right)}^{{\text{T}}}}$ используем евклидову норму ошибки). Вычисляем также оценки порядков сходимости ${{\tilde {p}}_{y}}$ и ${{\tilde {p}}_{z}}$ по соответствующим компонентам (для этого используем ошибки, полученные при размерах шага h и h/2). Результаты приведены в табл. 6.

Таблица 6.

Результаты решения задачи (6.2) при h = const

Метод ey ez ${{\tilde {p}}_{y}}$ ${{\tilde {p}}_{z}}$
ESDIRK53(0.182) 1.55 × 10–5 7.55 × 10–5 3.05 3.04
ESDIRK53(0.216) 7.96 × 10–6 7.93 × 10–5 3.04 3.00
ESDIRK63(1/6) 1.26 × 10–5 2.02 × 10–4 3.06 2.99
ESDIRK63(1/5) 1.13 × 10–5 4.92 × 10–4 3.01 2.99
ESDIRK54(0.220) 4.61 × 10–6 3.31 × 10–4 3.08 2.02
ESDIRK64(1/6) 1.15 × 10–6 1.20 × 10–4 3.98 3.01
ESDIRK64(1/4) 1.65 × 10–5 2.67 × 10–3 3.00 2.00

Задача индекса 3 задается уравнениями

(6.3)
$\begin{gathered} y_{1}^{'} = {{z}_{1}},\quad y_{2}^{'} = {{z}_{2}},\quad z_{1}^{'} = - {{y}_{1}}u - {{y}_{2}}\sin t,\quad z_{2}^{'} = - {{y}_{2}}u + {{y}_{1}}\sin t, \\ y_{1}^{2} + y_{2}^{2} = 1,\quad \\ {{y}_{1}}\left( 0 \right) = {{z}_{2}}\left( 0 \right) = 0,\quad {{y}_{2}}\left( 0 \right) = {{z}_{1}}\left( 0 \right) = u\left( 0 \right) = 1,\quad 0 \leqslant t \leqslant 2\pi \\ \end{gathered} $
и имеет решение ${{y}_{1}}\left( t \right) = \sin \left( {\sin t} \right)$, ${{y}_{2}}\left( t \right) = \cos \left( {\sin t} \right)$, ${{z}_{1}}\left( t \right) = \cos \left( {\sin t} \right) \cdot \cos t$, z2(t) = –sin(sint) · cost, $u\left( t \right) = {{\cos }^{2}}t$. Задаем Nr = 1000, и аналогично предыдущей задаче вычисляем ошибки и оценки порядков сходимости. Результаты приведены в табл. 7.

Таблица 7.

Результаты решения задачи (6.3) при h = const

Метод ey ez eu ${{\tilde {p}}_{y}}$ ${{\tilde {p}}_{z}}$ ${{\tilde {p}}_{u}}$
ESDIRK53(0.182) 6.88 × 10–6 5.95 × 10–6 8.26 × 10–4 3.01 3.01 2.00
ESDIRK53(0.216) 3.70 × 10–6 2.26 × 10–6 4.30 × 10–4 3.00 3.00 2.00
ESDIRK63(1/6) 3.04 × 10–6 2.18 × 10–6 4.66 × 10–4 3.03 3.04 2.00
ESDIRK63(1/5) 1.43 × 10–6 4.35 × 10–6 1.52 × 10–3 3.03 3.00 2.00
ESDIRK54(0.220) 5.50 × 10–5 5.56 × 10–5 8.57 × 10–3 2.00 2.01 1.00
ESDIRK64(1/6) 4.74 × 10–6 3.31 × 10–6 1.88 × 10–3 2.98 3.00 2.00
ESDIRK64(1/4) 2.18 × 10–4 2.60 × 10–4 7.61 × 10–3 2.00 2.01 1.06

Из приведенных результатов следует, что методы ESDIRK53(0.220) и ESDIRK64(1/4), которые не удовлетворяют условиям (3.9)–(3.11), уступают остальным методам, для которых эти условия выполняются. Аналогичные результаты были получены и при решении других задач индексов 2 и 3.

7. РЕАЛИЗАЦИЯ МЕТОДОВ С КОНТРОЛЕМ ОШИБКИ

Для  реализации  с  переменным  размером  шага  были  выбраны  методы 3-го порядка ESDIRK63(1/6) и ESDIRK63(1/5) (как более удобные для реализации) и все три метода 4-го порядка. Используем экономичную схему реализации с двухшаговым прогнозом (см. [14], [30], [31]). Рассмотрим эту схему применительно к системе ДАУ

(7.1)
${\mathbf{y}}{\kern 1pt} ' = {\mathbf{f}}\left( {t,{\mathbf{y}},{\mathbf{z}}} \right),\quad {\mathbf{0}} = {\mathbf{g}}\left( {t,{\mathbf{y}},{\mathbf{z}}} \right),\quad {\mathbf{y}}\left( {{{t}_{0}}} \right) = {{{\mathbf{y}}}_{0}},\quad {\mathbf{z}}\left( {{{t}_{0}}} \right) = {{{\mathbf{z}}}_{0}}.$

Формулы (n + 1)-го шага решения этой системы методом ESDIRK запишутся в виде

(7.2)
$\begin{gathered} {{{\mathbf{F}}}_{1}} = {{{\mathbf{f}}}_{n}}, \\ \left. {\begin{array}{*{20}{c}} {{{{\mathbf{Y}}}_{i}} = {{{\mathbf{y}}}_{n}} + h\sum\limits_{j = 1}^{i - 1} {{{a}_{{ij}}}{{{\mathbf{F}}}_{j}}} + h\gamma {{{\mathbf{F}}}_{i}}\;,\quad {{{\mathbf{F}}}_{i}} = {\mathbf{f}}\left( {{{t}_{n}} + {{c}_{i}}h,\;{{{\mathbf{Y}}}_{i}},{{{\mathbf{Z}}}_{i}}} \right),} \\ {{\mathbf{g}}\left( {{{t}_{n}} + {{c}_{i}}h,\;{{{\mathbf{Y}}}_{i}},\;{{{\mathbf{Z}}}_{i}}} \right) = {\mathbf{0}}} \end{array}\,} \right\}\quad i = 2,\; \ldots ,\;s, \\ {{{\mathbf{y}}}_{{n + 1}}} = {{{\mathbf{Y}}}_{s}}\;,\quad {{{\mathbf{z}}}_{{n + 1}}} = {{{\mathbf{Z}}}_{s}},\quad {{{\mathbf{f}}}_{{n + 1}}} = {{{\mathbf{F}}}_{s}}, \\ \end{gathered} $
где выполнение неявных стадий сводится к решению нелинейных алгебраических уравнений.

Обозначим через fy, fz, gy и gz соответствующие матрицы частных производных, вычисленные в некоторой точке численного решения (предполагается, что эти матрицы не изменяются в течение нескольких шагов). Итерации метода Ньютона при реализации i-й стадии запишутся в виде

$\begin{gathered} \left[ {\begin{array}{*{20}{c}} {\Delta {\mathbf{Y}}_{i}^{k}} \\ {\Delta {\mathbf{Z}}_{i}^{k}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {\Delta {\mathbf{Y}}_{i}^{{k - 1}}} \\ {\Delta {\mathbf{Z}}_{i}^{{k - 1}}} \end{array}} \right]\; + \;{{\left[ {\begin{array}{*{20}{c}} {{\mathbf{I}} - h\gamma {{{\mathbf{f}}}_{{\mathbf{y}}}}}&{ - h\gamma {{{\mathbf{f}}}_{{\mathbf{z}}}}} \\ { - {{{\mathbf{g}}}_{{\mathbf{y}}}}}&{ - {{{\mathbf{g}}}_{{\mathbf{z}}}}} \end{array}} \right]}^{{ - 1}}}\left[ {\begin{array}{*{20}{c}} {h\sum\limits_{j = 1}^{i - 1} {{{a}_{{ij}}}{{{\mathbf{F}}}_{j}}} + h\gamma {\mathbf{F}}_{i}^{{k - 1}} - \Delta {\mathbf{Y}}_{i}^{{k - 1}}} \\ {{\mathbf{G}}_{i}^{{k - 1}}} \end{array}} \right], \\ {\mathbf{Y}}_{i}^{k} = {{{\mathbf{y}}}_{n}} + \Delta {\mathbf{Y}}_{i}^{k},\quad {\mathbf{Z}}_{i}^{k} = {{{\mathbf{z}}}_{n}}\, + \Delta {\mathbf{Z}}_{i}^{k},\quad k = 1, \ldots ,m; \\ {\mathbf{F}}_{i}^{k} = {\mathbf{f}}({{t}_{n}}\, + {{c}_{i}}h,\;{\mathbf{Y}}_{i}^{k},{\mathbf{Z}}_{i}^{k}),\quad {\mathbf{G}}_{i}^{k} = {\mathbf{g}}({{t}_{n}}\, + {{c}_{i}}h,\;{\mathbf{Y}}_{i}^{k},{\mathbf{Z}}_{i}^{k}),\quad k = 1, \ldots ,m - 1; \\ {{{\mathbf{Y}}}_{i}} = {\mathbf{Y}}_{i}^{m},\quad {{{\mathbf{Z}}}_{i}} = {\mathbf{Z}}_{i}^{m}, \\ \end{gathered} $
где m – число итераций.

Перед началом итераций нужно задать начальные значения $\Delta {\mathbf{Y}}_{i}^{0} = {\mathbf{Y}}_{i}^{0} - {{{\mathbf{y}}}_{n}}{\kern 1pt} $, $\Delta {\mathbf{Z}}_{i}^{0} = \,{\mathbf{Z}}_{i}^{0} - {{{\mathbf{z}}}_{n}}$, ${\mathbf{F}}_{i}^{0}$, ${\mathbf{G}}_{i}^{0}$. Для уменьшения числа итераций применяем двухшаговый прогноз, задаваемый в виде

${\mathbf{Y}}_{i}^{0} = \sum\limits_{j = 1}^{s - 1} {{{\alpha }_{{ij}}}{{{{\mathbf{\bar {Y}}}}}_{j}}} + \sum\limits_{j = 1}^{i - 1} {{{\beta }_{{ij}}}{{{\mathbf{Y}}}_{j}}} ,\quad {\mathbf{Z}}_{i}^{0} = \sum\limits_{j = 1}^{s - 1} {{{\alpha }_{{ij}}}{{{{\mathbf{\bar {Z}}}}}_{j}}} + \sum\limits_{j = 1}^{i - 1} {{{\beta }_{{ij}}}{{{\mathbf{Z}}}_{j}}} ,$
где ${{{\mathbf{\bar {Y}}}}_{j}}$, ${{{\mathbf{\bar {Z}}}}_{j}}$ – стадийные значения предыдущего шага (на 1-м шаге принимаем ${{{\mathbf{\bar {Y}}}}_{j}} = {{{\mathbf{y}}}_{0}}$, ${{{\mathbf{\bar {Z}}}}_{j}} = {{{\mathbf{z}}}_{0}}$). Значения ${\mathbf{F}}_{i}^{0}$ и ${\mathbf{G}}_{i}^{0}$ обычно вычисляют как правые части в (7.1) при ${\mathbf{y}} = {\mathbf{Y}}_{i}^{0}$, ${\mathbf{z}} = {\mathbf{Z}}_{i}^{0}$. В экономичной схеме вместо этого используем такой же прогноз, как для переменных, в результате получаем

(7.3)
${\mathbf{F}}_{i}^{0} = \sum\limits_{j = 1}^{s - 1} {{{\alpha }_{{ij}}}{{{{\mathbf{\bar {F}}}}}_{j}}} + \sum\limits_{j = 1}^{i - 1} {{{\beta }_{{ij}}}{{{\mathbf{F}}}_{j}},\quad {\mathbf{G}}_{i}^{0} = {\mathbf{0}}.} $

После выполнения итераций следует вычислить значение Fi, которое будет использовано на последующих стадиях. Определяем его из формулы вычисления Yi в (7.2), откуда

(7.4)
${{{\mathbf{F}}}_{i}} = \frac{1}{\gamma }\left( {\frac{{\Delta {{{\mathbf{Y}}}_{i}}}}{h} - \sum\limits_{j = 1}^{i - 1} {{{a}_{{ij}}}{{{\mathbf{F}}}_{j}}} } \right).$

Использование (7.3), (7.4) позволяет сэкономить одно вычисление правой части на каждой неявной стадии, а для жестких задач (как показали эксперименты) дает более точный результат по сравнению со стандартной схемой.

Остановимся на формулах прогноза. Для методов ESDIRK прогноз 2-го порядка формируем как значение интерполяционного многочлена, построенного по уже вычисленным трем стадийным значениям. Пусть для формирования прогноза используются два стадийных значения предыдущего шага: ${{{\mathbf{\bar {Y}}}}_{i}}$ и ${{{\mathbf{\bar {Y}}}}_{j}}$ (мы задаем i = 1 и  j – наибольшее значение, при котором $0.5 \leqslant {{c}_{j}} < 1$). Принимаем также $w = {h \mathord{\left/ {\vphantom {h {\bar {h}}}} \right. \kern-0em} {\bar {h}}}$, где $\bar {h}$ – размер предыдущего шага. Формулы прогноза на стадиях 2, 3, 4 запишутся в виде

${\mathbf{Y}}_{2}^{0} = {{\alpha }_{{2i}}}{{{\mathbf{\bar {Y}}}}_{i}} + {{\alpha }_{{2j}}}{{{\mathbf{\bar {Y}}}}_{j}} + {{\beta }_{{21}}}{{{\mathbf{Y}}}_{1}},$
${{\alpha }_{{2i}}} = \frac{{(w{{c}_{2}} - {{c}_{j}} + 1)w{{c}_{2}}}}{{({{c}_{i}} - {{c}_{j}})({{c}_{i}} - 1)}},\quad {{\alpha }_{{2j}}} = \frac{{(w{{c}_{2}} - {{c}_{i}} + 1)w{{c}_{2}}}}{{({{c}_{j}} - {{c}_{i}})({{c}_{j}} - 1)}},\quad {{\beta }_{{21}}} = 1 - {{\alpha }_{{2i}}} - {{\alpha }_{{2j}}};$
${\mathbf{Y}}_{3}^{0} = {{\alpha }_{{3j}}}{{{\mathbf{\bar {Y}}}}_{j}} + {{\beta }_{{31}}}{{{\mathbf{Y}}}_{1}} + {{\beta }_{{32}}}{{{\mathbf{Y}}}_{2}},$
${{\beta }_{{31}}} = \frac{{{{c}_{3}} - {{c}_{2}}}}{{{{c}_{2}}}}\left( {\frac{{w{{c}_{3}}}}{{{{c}_{j}} - 1}} - 1} \right),\quad {{\beta }_{{32}}} = \frac{{{{c}_{3}}(w{{c}_{3}} - {{c}_{j}} + 1)}}{{{{c}_{2}}(w{{c}_{2}} - {{c}_{j}} + 1)}},\quad {{\alpha }_{{3j}}} = 1 - {{\beta }_{{31}}} - {{\beta }_{{32}}};$
${\mathbf{Y}}_{4}^{0} = {{\beta }_{{41}}}{{{\mathbf{Y}}}_{1}} + {{\beta }_{{42}}}{{{\mathbf{Y}}}_{2}} + {{\beta }_{{43}}}{{{\mathbf{Y}}}_{3}},$
${{\beta }_{{42}}} = \frac{{{{c}_{4}}({{c}_{4}} - {{c}_{3}})}}{{{{c}_{2}}({{c}_{2}} - {{c}_{3}})}},\quad {{\beta }_{{43}}} = \frac{{{{c}_{4}}({{c}_{4}} - {{c}_{2}})}}{{{{c}_{3}}({{c}_{3}} - {{c}_{2}})}},\quad {{\beta }_{{41}}} = 1 - {{\beta }_{{42}}} - {{\beta }_{{43}}}.$

На 5-й стадии имеет смысл формировать прогноз 3-го порядка в виде

${\mathbf{Y}}_{5}^{0} = {{\beta }_{{51}}}{{{\mathbf{Y}}}_{1}} + {{\beta }_{{52}}}{{{\mathbf{Y}}}_{2}} + {{\beta }_{{53}}}{{{\mathbf{Y}}}_{3}} + {{\beta }_{{54}}}{{{\mathbf{Y}}}_{4}},\quad {{\beta }_{{51}}} = 1 - {{\beta }_{{52}}} - {{\beta }_{{53}}} - {{\beta }_{{54}}},$
где коэффициенты ${{\beta }_{{52}}}$, ${{\beta }_{{53}}}$, ${{\beta }_{{54}}}$ находим из уравнений
$\begin{gathered} {{\beta }_{{52}}}{{c}_{2}} + {{\beta }_{{53}}}{{c}_{3}} + {{\beta }_{{54}}}{{c}_{4}} = {{c}_{5}}, \\ {{\beta }_{{52}}}c_{2}^{2} + {{\beta }_{{53}}}c_{3}^{2} + {{\beta }_{{54}}}c_{4}^{2} = c_{5}^{2}, \\ {{\beta }_{{53}}}{{a}_{{32}}}c_{2}^{2} + {{\beta }_{{54}}}({{a}_{{42}}}c_{2}^{2} + {{a}_{{43}}}c_{3}^{2}) = {{a}_{{52}}}c_{2}^{2} + {{a}_{{53}}}c_{3}^{2} + {{a}_{{54}}}c_{4}^{2} \\ \end{gathered} $
(под порядком прогноза понимают порядок аппроксимации стадийного значения формулой прогноза).

На 6-й стадии к условиям порядка можно добавить условие L-сходимости прогноза. Для методов ESDIRK64(1/6) и ESDIRK64(1/4) такой прогноз 3-го порядка принимаем в виде

${\mathbf{Y}}_{6}^{0} = {{\beta }_{{61}}}{{{\mathbf{Y}}}_{1}} + \cdots + {{\beta }_{{65}}}{{{\mathbf{Y}}}_{5}},\quad {{\beta }_{{61}}} = 1 - {{\beta }_{{62}}} - \cdots - {{\beta }_{{65}}},$
где ${{\beta }_{{62}}},\; \ldots ,\;{{\beta }_{{65}}}$ находим из системы линейных уравнений

$\begin{gathered} {{{{\mathbf{\hat {\beta }}}}}^{{\text{T}}}}{\mathbf{\hat {c}}} = 1,\quad {{{{\mathbf{\hat {\beta }}}}}^{{\text{T}}}}{{{{\mathbf{\hat {c}}}}}^{2}} = 1,\quad {{{{\mathbf{\hat {\beta }}}}}^{{\text{T}}}}{\mathbf{\hat {{\rm A}}}}{{{{\mathbf{\hat {c}}}}}^{2}} = {1 \mathord{\left/ {\vphantom {1 3}} \right. \kern-0em} 3},\quad {{{{\mathbf{\hat {\beta }}}}}^{{\text{T}}}}{{{{\mathbf{\hat {{\rm A}}}}}}^{{ - 1}}}{\mathbf{\hat {c}}} = 1, \\ {\mathbf{\hat {\beta }}} = \left[ {\begin{array}{*{20}{c}} {{{\beta }_{{62}}}} \\ {{{\beta }_{{63}}}} \\ {{{\beta }_{{64}}}} \\ {{{\beta }_{{65}}}} \end{array}} \right],\quad {\mathbf{\hat {c}}} = \left[ {\begin{array}{*{20}{c}} {{{c}_{2}}} \\ {{{c}_{3}}} \\ {{{c}_{4}}} \\ {{{c}_{5}}} \end{array}} \right],\quad {\mathbf{\hat {{\rm A}}}} = \left[ {\begin{array}{*{20}{c}} \gamma &0&0&0 \\ {{{a}_{{32}}}}&\gamma &0&0 \\ {{{a}_{{42}}}}&{{{a}_{{43}}}}&\gamma &0 \\ {{{a}_{{52}}}}&{{{a}_{{53}}}}&{{{a}_{{54}}}}&\gamma \end{array}} \right]. \\ \end{gathered} $

Для метода ESDIRK63(1/6) принимаем ${\mathbf{Y}}_{6}^{0} = {{\left( {{{{\mathbf{Y}}}_{4}} + 2{{{\mathbf{Y}}}_{5}}} \right)} \mathord{\left/ {\vphantom {{\left( {{{{\mathbf{Y}}}_{4}} + 2{{{\mathbf{Y}}}_{5}}} \right)} 3}} \right. \kern-0em} 3}$, что обеспечивает L-сходимость прогноза, а для ESDIRK63(1/5) принимаем ${\mathbf{Y}}_{6}^{0} = {{{\mathbf{Y}}}_{5}}$.

Формулу прогноза последней стадии используем также и для формирования нормированной оценки ошибки, которую принимаем в виде

$err = \mathop {\max }\limits_i \left( {\frac{{\left| {\delta {{y}_{i}}} \right|}}{{Rtol \times \max \left( {\left| {{{y}_{{n,i}}}} \right|,\left| {{{y}_{{n + 1,i}}}} \right|} \right) + Atol}}} \right),\quad \delta {\mathbf{y}} = K({{{\mathbf{y}}}_{{n + 1}}} - {\mathbf{Y}}_{s}^{0}),$
где Rtol – допустимая относительная ошибка, Atol – допустимая абсолютная ошибка. Такая оценка соответствует применению вложенной формулы, записанной в виде ${{{\mathbf{\hat {y}}}}_{{n + 1}}} = {{{\mathbf{y}}}_{{n + 1}}} - \delta {\mathbf{y}}$. Принимаем следующие значения коэффициента K: ESDIRK54(0.220) – K = 0.5, ESDIRK64(1/6) – K = 0.125, ESDIRK64(1/4) – K = 0.0712123 (это значение эквивалентно вложенной формуле в [13], табл. 16), ESDIRK63(1/6) и ESDIRK63(1/5) – K = 0.25. Шаг считаем успешным, если err ≤ 1. Размер следующего шага принимаем в виде ${{h}_{{{\text{new}}}}} = fac \times er{{r}^{{ - {1 \mathord{\left/ {\vphantom {1 p}} \right. \kern-0em} p}}}}h$, где fac = 0.7 для методов 3-го порядка и fac = 0.75 для методов 4-го порядка.

Сходимость итерационных схем решения задачи Коши исследовалась в [32], [33]. При определенных условиях каждая итерация с неточной матрицей Якоби повышает порядок схемы на 1 до тех пор, пока не будет достигнут порядок метода. Численные эксперименты показали, что при использовании экономичной схемы и приведенных формул прогноза для решения жестких ОДУ достаточно выполнить две итерации, первая из которых не требует вычисления правой части. На последней стадии добавляем 3-ю итерацию, которая позволяет получить оценку сходимости итераций в виде $\theta = {{{{\delta }_{3}}} \mathord{\left/ {\vphantom {{{{\delta }_{3}}} {{{\delta }_{2}}}}} \right. \kern-0em} {{{\delta }_{2}}}}$, где ${{\delta }_{i}}$ – норма приращения стадийных значений на i-й итерации. Перерасчет матрицы Якоби выполняем, если θ > 0.1 и при этом ${{\delta }_{3}}$ не очень мало – это позволяет исключить перерасчет при незначительном изменении матрицы.

При решении ДАУ высших индексов сходимость итераций более медленная, поэтому следует предусмотреть возможность выполнения большего числа итераций. В этом случае усложняется также контроль ошибки для переменных высших индексов. Исследуем точность этих компонент на примере системы

$\begin{gathered} 0 = y - \varphi \left( t \right),\quad y{\kern 1pt} ' = z,\quad z{\kern 1pt} ' = u, \\ {{y}_{0}} = \varphi \left( {{{t}_{0}}} \right),\quad {{z}_{0}} = \varphi {\kern 1pt} '\left( {{{t}_{0}}} \right),\quad {{u}_{0}} = \varphi {\kern 1pt} '{\kern 1pt} '\left( {{{t}_{0}}} \right), \\ \end{gathered} $
где переменная z имеет индекс 2, а переменная u – индекс 3. Глобальные ошибки решения этих уравнений запишутся в виде
(7.5)
$\begin{gathered} {{\varphi }_{{n + 1}}} - {{y}_{{n + 1}}} = {{\alpha }_{0}}\left( {{{\varphi }_{n}} - {{y}_{n}}} \right) + \delta {{y}_{{n + 1}}}, \\ \varphi _{{n + 1}}^{'} - {{z}_{{n + 1}}} = {{\alpha }_{0}}(\varphi _{n}^{'} - {{z}_{n}}) + {{h}^{{ - 1}}}{{\alpha }_{1}}\left( {{{\varphi }_{n}} - {{y}_{n}}} \right) + \delta {{z}_{{n + 1}}}, \\ \varphi _{{n + 1}}^{{''}} - {{u}_{{n + 1}}} = {{\alpha }_{0}}(\varphi _{n}^{{''}} - {{u}_{n}}) + {{h}^{{ - 1}}}{{\alpha }_{1}}(\varphi _{n}^{'} - {{z}_{n}}) + {{h}^{{ - 2}}}{{\alpha }_{2}}\left( {{{\varphi }_{n}} - {{y}_{n}}} \right) + \delta {{u}_{{n + 1}}}, \\ \end{gathered} $
где ${{\alpha }_{0}} = R\left( \infty \right)$, ${{\alpha }_{1}} = \mathop {\lim }\limits_{z \to \infty } z\left( {R\left( z \right) - {{\alpha }_{0}}} \right)$, ${{\alpha }_{2}} = \mathop {\lim }\limits_{z \to \infty } z\left[ {z\left( {R\left( z \right) - {{\alpha }_{0}}} \right) - {{\alpha }_{1}}} \right]$, $\delta {{y}_{{n + 1}}}$, $\delta {{z}_{{n + 1}}}$, $\delta {{u}_{{n + 1}}}$ – локальные ошибки соответствующих компонент. Для жестко точных методов ${{y}_{n}} = {{\varphi }_{n}}$ и $\delta {{y}_{{n + 1}}} = 0$.

Аналогичные выражения получаем для вложенной формулы (заменяем αi, $\delta {{y}_{{n + 1}}}$, $\delta {{z}_{{n + 1}}}$, $\delta {{u}_{{n + 1}}}$ соответствующими значениями ${{\hat {\alpha }}_{i}}$, $\delta {{\hat {y}}_{{n + 1}}}$, $\delta {{\hat {z}}_{{n + 1}}}$, $\delta {{\hat {u}}_{{n + 1}}}$ вложенного метода). Из приведенных выражений следует, что в оценке ошибки появляются составляющие, пропорциональные h–1, а также составляющие, пропорциональные только глобальной ошибке. В результате размер шага может уменьшаться до нуля, что приводит к аварийной остановке численного решения. Чтобы этого не происходило, в [34] предлагалось специальным образом масштабировать либо игнорировать оценки ошибки для переменных высших индексов.

Заметим, что если ${{\hat {\alpha }}_{0}} = {{\alpha }_{0}}$, ${{\hat {\alpha }}_{1}} = {{\alpha }_{1}}$ и при этом ${{\alpha }_{0}} = {{\alpha }_{1}} = 0$, то глобальные ошибки будут равны локальным ошибкам. В этом случае можно применять обычный контроль ошибки для всех переменных, не опасаясь аварийной остановки. Вложенная пара такого типа была построена на основе метода ESDIRK63(1/6), в который добавлена еще одна (6-я) стадия специально для оценивания ошибки. Эта же стадия используется как прогноз ${\mathbf{Y}}_{7}^{0} = {{{\mathbf{Y}}}_{6}}$ для заключительной стадии. Полученный метод имеет таблицу Бутчера

$\begin{array}{*{20}{c}} 0&\vline & 0&{}&{}&{}&{}&{}&{} \\ {{1 \mathord{\left/ {\vphantom {1 3}} \right. \kern-0em} 3}}&\vline & {{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{}&{}&{}&{}&{} \\ {{2 \mathord{\left/ {\vphantom {2 3}} \right. \kern-0em} 3}}&\vline & {{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{{1 \mathord{\left/ {\vphantom {1 3}} \right. \kern-0em} 3}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{}&{}&{}&{} \\ 1&\vline & {{1 \mathord{\left/ {\vphantom {1 3}} \right. \kern-0em} 3}}&0&{{1 \mathord{\left/ {\vphantom {1 2}} \right. \kern-0em} 2}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{}&{}&{} \\ 1&\vline & {{7 \mathord{\left/ {\vphantom {7 {16}}} \right. \kern-0em} {16}}}&0&{{3 \mathord{\left/ {\vphantom {3 {16}}} \right. \kern-0em} {16}}}&{{5 \mathord{\left/ {\vphantom {5 {24}}} \right. \kern-0em} {24}}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{}&{} \\ 1&\vline & {{7 \mathord{\left/ {\vphantom {7 {48}}} \right. \kern-0em} {48}}}&{{{17} \mathord{\left/ {\vphantom {{17} {48}}} \right. \kern-0em} {48}}}&{{{17} \mathord{\left/ {\vphantom {{17} {48}}} \right. \kern-0em} {48}}}&{{1 \mathord{\left/ {\vphantom {1 {80}}} \right. \kern-0em} {80}}}&{{{ - 1} \mathord{\left/ {\vphantom {{ - 1} {30}}} \right. \kern-0em} {30}}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&{} \\ 1&\vline & {{1 \mathord{\left/ {\vphantom {1 8}} \right. \kern-0em} 8}}&{{3 \mathord{\left/ {\vphantom {3 8}} \right. \kern-0em} 8}}&{{3 \mathord{\left/ {\vphantom {3 8}} \right. \kern-0em} 8}}&{{1 \mathord{\left/ {\vphantom {1 {360}}} \right. \kern-0em} {360}}}&{ - {2 \mathord{\left/ {\vphantom {2 {45}}} \right. \kern-0em} {45}}}&0&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}} \\ \hline {{{b}_{i}}}&\vline & {{1 \mathord{\left/ {\vphantom {1 8}} \right. \kern-0em} 8}}&{{3 \mathord{\left/ {\vphantom {3 8}} \right. \kern-0em} 8}}&{{3 \mathord{\left/ {\vphantom {3 8}} \right. \kern-0em} 8}}&{{1 \mathord{\left/ {\vphantom {1 {360}}} \right. \kern-0em} {360}}}&{ - {2 \mathord{\left/ {\vphantom {2 {45}}} \right. \kern-0em} {45}}}&0&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}} \\ {{{{\hat {b}}}_{i}}}&\vline & {{7 \mathord{\left/ {\vphantom {7 {48}}} \right. \kern-0em} {48}}}&{{{17} \mathord{\left/ {\vphantom {{17} {48}}} \right. \kern-0em} {48}}}&{{{17} \mathord{\left/ {\vphantom {{17} {48}}} \right. \kern-0em} {48}}}&{{1 \mathord{\left/ {\vphantom {1 {80}}} \right. \kern-0em} {80}}}&{{{ - 1} \mathord{\left/ {\vphantom {{ - 1} {30}}} \right. \kern-0em} {30}}}&{{1 \mathord{\left/ {\vphantom {1 6}} \right. \kern-0em} 6}}&0 \end{array}.$

Здесь основной шестистадийный метод (5.1) и вложенная формула образуют семистадийный метод, который обозначим через ESDIRK73(1/6).

Аналогичным образом на основе метода ESDIRK63(1/5) построен метод ESDIRK73(1/5), 6-я стадия которого является вложенной формулой для оценивания ошибки и имеет коэффициенты

${{\hat {b}}_{i}} = \left( {{{2065} \mathord{\left/ {\vphantom {{2065} {11008,{{1019} \mathord{\left/ {\vphantom {{1019} {1920,{{869} \mathord{\left/ {\vphantom {{869} {3840,{{ - 5293} \mathord{\left/ {\vphantom {{ - 5293} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}} \right. \kern-0em} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}}}} \right. \kern-0em} {3840,{{ - 5293} \mathord{\left/ {\vphantom {{ - 5293} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}} \right. \kern-0em} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}}}}}} \right. \kern-0em} {1920,{{869} \mathord{\left/ {\vphantom {{869} {3840,{{ - 5293} \mathord{\left/ {\vphantom {{ - 5293} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}} \right. \kern-0em} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}}}} \right. \kern-0em} {3840,{{ - 5293} \mathord{\left/ {\vphantom {{ - 5293} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}} \right. \kern-0em} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}}}}}}}} \right. \kern-0em} {11008,{{1019} \mathord{\left/ {\vphantom {{1019} {1920,{{869} \mathord{\left/ {\vphantom {{869} {3840,{{ - 5293} \mathord{\left/ {\vphantom {{ - 5293} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}} \right. \kern-0em} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}}}} \right. \kern-0em} {3840,{{ - 5293} \mathord{\left/ {\vphantom {{ - 5293} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}} \right. \kern-0em} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}}}}}} \right. \kern-0em} {1920,{{869} \mathord{\left/ {\vphantom {{869} {3840,{{ - 5293} \mathord{\left/ {\vphantom {{ - 5293} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}} \right. \kern-0em} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}}}} \right. \kern-0em} {3840,{{ - 5293} \mathord{\left/ {\vphantom {{ - 5293} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}} \right. \kern-0em} {103200,{{ - 7} \mathord{\left/ {\vphantom {{ - 7} {75}}} \right. \kern-0em} {75}},{1 \mathord{\left/ {\vphantom {1 5}} \right. \kern-0em} 5}}}}}}}}}} \right)$
(но в этом случае ${{\hat {\alpha }}_{1}} = {{\alpha }_{1}} \ne 0$). Численные эксперименты показали, что методы (вложенные пары) ESDIRK73(1/6) и ESDIRK73(1/5) более эффективны, чем соответствующие методы (пары) ESDIRK63(1/6) и ESDIRK63(1/5), поэтому далее приводим результаты методов ESDIRK73(1/6) и ESDIRK73(1/5).

8. РЕЗУЛЬТАТЫ РАСЧЕТОВ С ПЕРЕМЕННЫМ РАЗМЕРОМ ШАГА

При реализации всех методов используем одинаковое число итераций и одинаковые условия обновления матрицы Якоби. При решении ОДУ выполняем две итерации экономичной схемы на предварительных стадиях и три итерации на последней стадии. Для решения ДАУ индекса 3 такого числа итераций оказалось недостаточно, в этом случае выполняем три итерации на каждой стадии и вычисляем матрицу Якоби на каждом шаге. Вложенные формулы (6-е стадии) в методах ESDIRK73(1/6) и ESDIRK73(1/6) реализуем, делая одну итерацию (без вычисления правой части) при решении ОДУ и две итерации при решении ДАУ.

Для решения с переменным шагом были выбраны четыре жестких теста: VDPOL, HIRES, PLATE и BEAM, подробные описания которых приведены в [2], [35]. Интервалы интегрирования и размеры начального шага берем, как в [35], [36]. Для всех задач принимаем Rtol = Atol = Tol, где Rtol – относительная допустимая ошибка, Atol – абсолютная допустимая ошибка. Как и в [35], [36] точность решения оцениваем значениями scd (6.1) и

$mescd = - \lg \left( {\mathop {\max }\limits_i \left( {\frac{{\left| {{{y}_{i}} - {{{\tilde {y}}}_{i}}} \right|}}{{{{Atol} \mathord{\left/ {\vphantom {{Atol} {Rtol + }}} \right. \kern-0em} {Rtol + }}\left| {{{y}_{i}}} \right|}}} \right)} \right),$
где ${{y}_{i}}$ – точное, а ${{\tilde {y}}_{i}}$ – численное решение по i-й компоненте в конце интервала интегрирования. При решении задачи BEAM значение scd вычисляем для первых 40 (из 80) переменных, поскольку “they refer to the physically important quantities” [35]. Каждую задачу решаем при двух значениях Tol: 10–3 и 10–4, но если при Tol = 10–3 точность решения низкая (scd < 1), то приводим результаты при Tol = 10–4, 10–5. Вычислительные затраты оцениванием числом вычислений правой части Nf и числом вычислений матрицы Якоби NJ. Результаты расчетов приведены в табл. 8–11. Приводим также некоторые результаты решателя RADAU5, взятые из [36]. Результаты решения этих задач другими известными методами приведены в [35], [36].

Таблица 8.

Результаты решения задачи VDPOL

Метод Tol scd mescd Nf NJ
ESDIRK54(0.220) 10–3 3.23 3.56 1256 67
  10–4 4.05 4.38 1676 70
ESDIRK64(1/6) 10–3 3.11 3.43 1213 55
  10–4 3.89 4.21 1477 70
ESDIRK64(1/4) 10–3 2.26 2.59 1123 41
  10–4 3.68 3.89 1465 44
ESDIRK73(1/6) 10–3 3.84 4.16 1531 39
  10–4 3.92 4.24 2611 55
ESDIRK73(1/5) 10–3 2.63 2.96 1669 36
  10–4 4.45 4.78 2683 53
RADAU5 10–4 4.96 5.28 2253 162
Таблица 9.

Результаты решения задачи HIRES

Метод Tol scd mescd Nf NJ
ESDIRK54(0.220) 10–3 1.95 4.16 136 12
  10–4 3.07 5.42 176 12
ESDIRK64(1/6) 10–4 1.62 3.83 175 10
  10–5 2.28 4.49 235 12
ESDIRK64(1/4) 10–4 0.92 3.13 163 9
  10–5 2.49 5.03 229 11
ESDIRK73(1/6) 10–4 1.91 4.11 295 10
  10–5 1.96 4.17 415 9
ESDIRK73(1/5) 10–4 1.79 4.00 217 15
  10–5 3.14 5.35 421 18
RADAU5 10–5 1.35 3.55 381 23
Таблица 10.

Результаты решения задачи PLATE

Метод Tol scd mescd Nf NJ
ESDIRK54(0.220) 10–3 2.83 4.53 101 1
  10–4 3.72 5.61 216 1
ESDIRK64(1/6) 10–3 1.78 3.92 97 1
  10–4 3.18 5.13 211 1
ESDIRK64(1/4) 10–4 1.87 3.81 121 1
  10–5 2.39 4.40 253 1
ESDIRK73(1/6) 10–3 1.18 3.32 79 1
  10–4 2.96 4.90 175 1
ESDIRK73(1/5) 10–4 2.46 4.60 133 1
  10–5 4.38 6.49 307 1
RADAU5 10–4 1.62 3.77 74 4
Таблица 11.

Результаты решения задачи BEAM

Метод Tol scd mescd Nf NJ
ESDIRK54(0.220) 10–3 2.25 2.54 296 5
  10–4 3.53 3.10 626 5
ESDIRK64(1/6) 10–3 1.69 2.51 151 4
  10–4 2.96 2.50 321 4
ESDIRK64(1/4) 10–3 1.45 2.27 116 5
  10–4 2.04 2.42 211 6
ESDIRK73(1/6) 10–3 1.86 2.35 259 4
  10–4 3.00 2.99 841 3
ESDIRK73(1/5) 10–3 1.84 2.59 193 7
  10–4 2.65 2.58 469 4
RADAU5 10–4 2.49 3.57 406 43

Приведенные результаты подтверждают высокую эффективность методов ESDIRK при решении жестких задач с умеренной точностью. Задача BEAM имеет чисто мнимый спектр матрицы Якоби. По этой причине многие известные методы требуют большого объема вычислений при решении этой задачи даже с невысокой точностью (см. [35], [36]). Рассмотренные методы ESDIRK (в том числе и L(α)-устойчивые) успешно решают эту задачу с малыми вычислительными затратами. Этот факт показывает, что строгое соблюдение условия L-устойчивости не является необходимым при построении эффективных методов, достаточно, чтобы метод был L(α)-устойчивым при α, близком к 90°.

В табл. 12 приведены результаты решения системы ДАУ индекса 3 (6.3). Задаем Rtol = Tol, Atol = 10–4Tol, ${{h}_{0}} = Tol$ и вычисляем ошибки по соответствующим компонентам. Из всех методов только ESDIRK73(1/6) обеспечил устойчивое управление размером шага при контроле ошибки по всем компонентам. Поэтому в методах ESDIRK64(1/6), ESDIRK64(1/4) и ESDIRK73(1/5) контроль ошибки выполняем по y- и z-компонентам, а в методе ESDIRK54(0.220) – только по y-компоненте (в отличие от других методов, вложенная формула в ESDIRK54(0.220) имеет ${{\hat {\alpha }}_{0}} \ne 0$). Чтобы  получить  приемлемые  результаты, пришлось уменьшить значение Tol для метода ESDIRK54(0.220) на 2 порядка и для ESDIRK64(1/4) на порядок. Три других метода оказались более эффективными, при этом для решения задач индекса 3 удобнее всего использовать метод ESDIRK73(1/6), позволяющий осуществлять контроль ошибки по всем переменным.

Таблица 12.

Результаты решения задачи (6.3)

Метод Tol ey ez eu Nf NJ
ESDIRK54(0.220) 10–5 3.55 × 10–4 3.67 × 10–4 1.90 × 10–2 801 99
  10–6 7.55 × 10–5 7.64 × 10–5 8.79 × 10–3 1673 208
ESDIRK64(1/6) 10–3 2.76 × 10–4 2.54 × 10–4 2.02 × 10–2 711 71
  10–4 3.89 × 10–6 8.48 × 10–6 3.78 × 10–3 2271 226
ESDIRK64(1/4) 10–4 4.58 × 10–4 5.95 × 10–4 1.91 × 10–2 1351 133
  10–5 5.14 × 10–5 6.15 × 10–5 4.08 × 10–3 4361 436
ESDIRK73(1/6) 10–3 1.13 × 10–4 1.10 × 10–4 6.67 × 10–3 749 68
  10–4 4.70 × 10–6 3.70 × 10–6 1.34 × 10–3 1970 179
ESDIRK73(1/5) 10–3 5.25 × 10–4 7.16 × 10–4 2.94 × 10–2 551 50
  10–4 9.16 × 10–6 2.11 × 10–5 3.59 × 10–3 1706 154

Список литературы

  1. Alexander R. Diagonally implicit Runge-Kutta methods for stiff O.D.E.’s // SIAM J. Numer. Anal. 1977. V. 14. № 6. P. 1006–1021.

  2. Хайрер Э., Ваннер Г. Решение обыкновенных дифференциальных уравнений. Жесткие и дифференциально-алгебраические задачи. М.: Мир, 1999.

  3. Cameron F., Palmroth M., Piche R. Quasi stage order conditions for SDIRK methods // Appl. Numer. Math. 2002. V. 42. № 1–3. P. 61–75.

  4. Williams R., Burrage K., Cameron I., Kerr M. A four-stage index 2 diagonally implicit Runge–Kutta method // Appl. Numer. Math. 2002. V. 40. № 3. P. 415–432.

  5. Alexander R. Design and implementation of DIRK integrators for stiff systems // Appl. Numer. Math. 2003. V. 46. № 1. P. 1–17.

  6. Kværnø A. Singly diagonally implicit Runge–Kutta methods with an explicit first stage // BIT. 2004. V. 44. № 3. P. 489–502.

  7. Скворцов Л.М. Диагонально неявные FSAL-методы Рунге–Кутты для жестких и дифференциально-алгебраических систем // Матем. моделирование. 2002. Т. 14. № 2. С. 3–17.

  8. Скворцов Л.М. Точность методов Рунге–Кутты при решении жестких задач // Ж. вычисл. матем. и матем. физ. 2003. Т. 43. № 9. С. 1374–1384.

  9. Скворцов Л.М. Диагонально неявные методы Рунге–Кутты для жестких задач // Ж. вычисл. матем. и матем. физ. 2006. Т. 46. № 12. С. 2209–2222.

  10. Скворцов Л.М. Диагонально-неявные методы Рунге–Кутты для дифференциально-алгебраических уравнений индексов 2 и 3 // Ж. вычисл. матем. и матем. физ. 2010. Т. 50. № 6. С. 1047–1059.

  11. Скворцов Л.М. Модельные уравнения для исследования точности методов Рунге–Кутты // Матем. моделирование. 2010. Т. 22. № 5. С. 146–160.

  12. Rang J. An analysis of the Prothero–Robinson example for constructing new adaptive ESDIRK methods of order 3 and 4 // Appl. Numer. Math. 2015. V. 94. P. 75–87.

  13. Kennedy C.A., Carpenter M.H. Diagonally implicit Runge–Kutta methods for ordinary differential equations // A Rev. NASA report NASA/TM‑2016‑219173. 2016.

  14. Скворцов Л.М. Численное решение обыкновенных дифференциальных и дифференциально-алгебраических уравнений. М: ДМК Пресс, 2018.

  15. Boom P.D., Zingg D.W. Optimization of high-order diagonally-implicit Runge–Kutta methods // J. Comput. Phys. 2018. V. 371. P. 168–191.

  16. Kennedy C.A., Carpenter M.H. Diagonally implicit Runge–Kutta methods for stiff ODEs // Appl. Numer. Math. 2019. V. 146. P. 221–244.

  17. Hosea M.E., Shampine L.F. Analysis and implementation of TR-BDF2 // Appl. Numer. Math. 1996. V. 20. № 1–2. P. 21–37.

  18. Bonaventura L., Marmol M.G. The TR-BDF method for second order problems in structural mechanics // Comput. Math. Appl. 2021. V. 92. P. 13–26.

  19. Брагин М.Д., Рогов Б.В. Метод итерируемой приближенной факторизации операторов высокоточной бикомпактной схемы для систем многомерных неоднородных квазилинейных уравнений гиперболического типа // Ж. вычисл. матем. и матем. физ. 2018. Т. 58. № 3. С. 313–325.

  20. Рогов Б.В., Чикиткин А.В. О сходимости и точности метода итерируемой приближенной факторизации операторов многомерных высокоточных бикомпактных схем // Матем. моделирование. 2019. Т. 31. № 12. С. 119–144.

  21. Kennedy C.A., Carpenter M.H. Additive Runge–Kutta schemes for convection–diffusion–reaction equations // Appl. Numer. Math. 2003. V. 44. P. 139–181.

  22. Kennedy C.A., Carpenter M.H. Higher-order additive Runge–Kutta schemes for ordinary differential equations // Appl. Numer. Math. 2019. V. 136. P. 183–205.

  23. Карташов Б.А., Шабаев Е.А., Козлов О.С., Щекатуров А.М. Среда динамического моделирования технических систем SimInTech. М: ДМК Пресс, 2017.

  24. Prothero A., Robinson A. On the stability and accuracy of one-step methods for solving stiff systems of ordinary differential equations // Math. Comput. 1974. V. 28. № 125. P. 145–162.

  25. Кочетков К.А., Ширков П.Д. L-затухающие ROW-методы третьего порядка точности // Ж. вычисл. матем. и матем. физ. 1997. Т. 37. № 6. С. 699–710.

  26. Хайрер Э., Нёрсетт С., Ваннер Г. Решение обыкновенных дифференциальных уравнений. Нежесткие задачи. М.: Мир, 1990.

  27. Скворцов Л.М. Как избежать снижения точности и порядка методов Рунге–Кутты при решении жестких задач // Ж. вычисл. матем. и матем. физ. 2017. Т. 57. № 7. С. 1126–1141.

  28. Jay L. Convergence of a class of Runge–Kutta methods for differential-algebraic systems of index 2 // BIT. 1993. V. 33. № 1. P. 137–150.

  29. Jay L. Convergence of Runge–Kutta methods for differential-algebraic systems of index 3 // Appl. Numer. Math. 1995. V. 17. № 2. P. 97–118.

  30. Скворцов Л.М. Экономичная схема реализации неявных методов Рунге–Кутты // Ж. вычисл. матем. и матем. физ. 2008. Т. 48. № 11. С. 2008–2018.

  31. Скворцов Л.М., Козлов О.С. Эффективная реализация диагонально-неявных методов Рунге–Кутты // Матем. моделирование. 2014. Т. 26. № 1. С. 96–108.

  32. Куликов Г.Ю. Теоремы сходимости для итерационных методов Рунге–Кутты с постоянным шагом интегрирования // Ж. вычисл. матем. и матем. физ. 1996. Т. 36. № 8. С. 73–89.

  33. Jackson K.R., Kværnø A., Nørsett S.P. An analysis of the order of Runge–Kutta methods that use an iterative scheme to compute their internal stage values // BIT. 1996. V. 36. № 4. P. 713–765.

  34. Hairer E., Lubich Ch., Roche M. The numerical solution of differential-algebraic systems by Runge–Kutta methods. Berlin: Springer‑Verlag, 1989.

  35. 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.

  36. The codes BiM and BiMD home page. 2014. URL: http://web.math.unifi.it/users/brugnano/BiM/.

Дополнительные материалы отсутствуют.