2
Введение
Задача Коши для систем обыкновенных дифференциальных уравнений может быть записана в виде:
,
)
0
(
]
,
0
[
)],
(
,
[
)
(
0
u
u
T
t
t
u
t
F
t
u
dt
d
(1)
где
n
n
R
R
R
F
:
,
n
R
t
u
)
(
— искомая вектор-функция;
n
R
u
0
— начальные условия.
Часто требуется, чтобы решение было непрерывным. В отличие от разностного решения непрерывное
можно вычислять между узлами основной сетки интегрирования. Для того чтобы получился непрерывный
метод можно воспользоваться интерполяцией, или попытаться построить решение на основе стадий того или
иного метода. Непрерывное решение необходимо, например, при решении ОДУ с запаздываниями.
Задача Коши для систем дифференциальных уравнений с запаздываниями (DDE — delay differential
equations) может быть записана в виде:
,
]
0
,
[
]
,
0
[
),
(
)
(
)],
(
),...,
(
),
(
,
[
)
(
2
1
t
T
t
t
t
u
u
u
u
t
F
t
u
dt
d
k
(2)
где
β
i
(
i=
1
..
k) — параметры запаздывания,
— максимальное запаздывание;
t
t
k
,...,
,
2
1
;
n
k
n
R
R
R
F
)
(
:
,
n
R
t
u
)
(
— искомая вектор-функция;
n
R
t
)
(
— начальные условия.
При поиске новых методов Розенброка часто можно столкнуться с проблемой, когда коэффициенты
приведены с малым числом значащих цифр, рассчитанным на вычисления со стандартной точностью, то есть
15-20 значащих цифр. При этом приходится обращаться к условиям порядка и устойчивости, чтобы уточнить
коэффициенты методов. В данной работе будет описан метод уточнения коэффициентов, а так же даны сами
уточненные коэффициенты некоторых методов.
Тестирование современных методов было проведено на сверхжестких задачах без запаздываний.
1. Современные вычисления
Многие вычисления удобно делать в какой-нибудь системе компьютерной математики, такой как Maple.
Система Maple предназначена для символьных вычислений, обладает развитыми графическими средствами,
имеет собственный язык программирования.
Большинство поисков решений систем уравнений было произведено именно в Maple. Кроме того, он
позволяет производить вычисления произвольной точности с различным количеством значащих цифр.
Так же активно использовался язык программирования C++ и С++ Builder 6 как программная среда.
1.1. Длинная арифметика
Основная масса библиотек длинной арифметики написана под Unix. К ним относится и библиотеки gmp
(GNU Multi-Precision Library) и mpfr (multiple-precision floating-point computations with correct rounding),
которые позволяют делать вычисления над числами произвольной точности. Библиотека gmp считается самой
быстрой библиотекой чисел произвольной точности. Но нам нужна для тестирования методов решения ОДУ
библиотека под Windows.
Под Windows не существует библиотек подобных gmp и mpfr. Но есть техника, позволяющая считать
числа точности double double [11](30 значащих цифр) и quad double [12](60 значащих цифр). Числа точности
double double работают даже быстрее чем числа mpfr той же точности. В литературе используется в основе 64-
х битный тип double, но его можно заменить 80-ю битным типом long double (extended), что даст больше
значащих цифр. При этом нужно изменить константу разбиения с 134217729 на 8589934593, а так же заменить
некоторые формулы (для экспоненты, синуса и гамма-функции) на более точные.