Вы находитесь на странице: 1из 35

Министерство науки и высшего образования Российской Федерации

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ


ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ (НИ ТГУ)
Физический факультет
Кафедра астрономии и космической геодезии

ДОПУСТИТЬ К ЗАЩИТЕ В ГЭК

Руководитель ООП
канд. физ.-мат. наук, доцент
_____________О.М. Сюсина
«____»__________2020 г.

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА БАКАЛАВРА

НЕЯВНЫЙ МНОГОШАГОВЫЙ МЕТОД ГИРА И ЕГО ЭФФЕКТИВНОСТЬ В


ЗАДАЧАХ ОРБИТАЛЬНОЙ ДИНАМИКИ

по основной образовательной программе подготовки бакалавров


направление подготовки 09.04.02 – Информационные системы и технологии

Чувашов Максим Дмитриевич

Научный руководитель
д-р. физ.-мат. наук
_________________ Авдюшев В.А
подпись

«____»______________20___г.

Автор работы
Студент группы №___________
_________________ Чувашов М.Д.
подпись

Томск – 2020
РЕФЕРАТ

Выпускная квалификационная работа 35 с., 6 рисунков, 14 источников.


В работе исследуется эффективность неявных многошаговых методов Гира
применительно к задачам орбитальной динамики. Описывается теория методов, а
также общий алгоритм для их программной реализации. Анализируются
результаты выполненных автором численных экспериментов по исследованию
эффективности методов Гира.

2
ОГЛАВЛЕНИЕ
Введение ................................................................................................................... 4
1 Дифференциальные уравнения орбитального движения .................................... 5
2 Численные методы решения дифференциальных уравнений............................. 6
2.1 Методы Рунге-Кутты ...................................................................................... 6
2.2 Методы Адамса ............................................................................................... 9
2.3 Предиктор-корректор .................................................................................... 12
2.4 Метод Гира .................................................................................................... 13
2.5 Устойчивость многошаговых методов ......................................................... 14
3 Алгоритмизация метода Гира и его программная реализация ......................... 17
4 Численные результаты ........................................................................................ 19
Заключение ............................................................................................................. 26
Список используемых источников ........................................................................ 27
Приложение ................................................................................................................

3
ВВЕДЕНИЕ

Орбитальное движение небесных тел описывается достаточно сложными


дифференциальными уравнениями, которые не интегрируются аналитически. В
современной практике они решаются приближенными численными методами,
среди которых широко используются явные и неявные одношаговые методы
Рунге–Кутты и неявные многошаговые методы Адамса. Примечательно, что при
моделировании почти круговых орбит методы Адамса оказываются более
эффективными, нежели методы Рунге–Кутты. Так, методы Адамса позволяют
достигать заданный уровень модельной точности в несколько раз быстрее.
Альтернативными многошаговыми методами являются так называемые
методы Гира, которые составляют подкласс многошаговых методов, основанных
на дифференцировании полиномиального приближения решения. Методы Гира,
насколько нам известно, очень редко применяются для численного моделирования
орбит. Поэтому мы поставили перед собой цель скрупулезно исследовать их
возможности применительно к задачам орбитальной динамики.
Для достижения поставленной цели необходимо было решить следующие
задачи: 1) составить алгоритм для программной реализации неявного
многошагового метода Гира; 2) написать программу интегратора в среде
Delphi; 3) провести численные эксперименты по исследованию эффективности
многошаговых методов Гира и Адамса, а также одношаговых методов Рунге-
Кутты; 4) провести сравнительный анализ эффективности численных методов;
5) выработать соответствующие рекомендации по использованию методов Гира в
задачах орбитальной динамики.

4
1 ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ
ОРБИТАЛЬНОГО ДВИЖЕНИЯ

Будем рассматривать движение небесного тела с бесконечно малой массой в


поле тяготения центрального массивного тела под действием возмущающих сил
𝑷. Тогда в прямоугольной системе координат орбитальное движение малого тела
будет описываться дифференциальными уравнениями второго порядка
𝜇 (1)
𝒓′′ = − 3 𝒓 + 𝑷 ≡ 𝑭 + 𝑷
|𝒓|
с начальными условиями
𝒓0 = 𝒓(𝑡0), 𝒓′0 = 𝒓′ (𝑡0 ),
где 𝒓 — вектор положения; 𝑡 — время; 𝑡0 — начальная эпоха; 𝜇 —
гравитационный параметр; 𝑭 — сила притяжения центрального тела; штрих
означает полную производную по времени.
Дифференциальные уравнения (1) в общем случае не имеют аналитического
решения, поэтому для их интегрирования применяют приближённые численные
методы. Рассматриваемые в работе численные методы применяются к
дифференциальным уравнениям первого порядка. Поэтому уравнения (1) следует
переписать в виде
𝒓′ = 𝒗, 𝒗′ = 𝑭 + 𝑷,
с начальными условиями
𝒓0 = 𝒓(𝑡0), 𝒗0 = 𝒓′0 = 𝒓′ (𝑡0 ),
или
𝒓 𝒗 (2)
𝒙′ = 𝒇(𝑡, 𝑥 ), 𝒙0 = 𝒙(𝑡0 ), 𝒙 ≡ ( ) , 𝑓 = ( )
𝒗 𝑭+𝑷
где 𝑥 — вектор динамического состояния малого небесного тела, 𝒗 — его
скорость в физическом пространстве, а 𝒇 — вектор скорости орбитальной системы
(2) в пространстве динамических состояний.

5
2 ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ДИФФЕРЕНЦИАЛЬНЫХ
УРАВНЕНИЙ

В работе были рассмотрены одношаговые схемы численного


интегрирования Рунге-Кутты и многошаговые схемы Гира и Адамса для решения
системы дифференциальных уравнений первого порядка (2).

2.1 МЕТОДЫ РУНГЕ-КУТТЫ

Определим метод Рунге-Кутты, применительно к системе уравнений


первого порядка (2). Метод
𝒌1 = 𝒇(𝑡0 , 𝒙0 ),
𝒌2 = 𝒇(𝑡0 + ℎ𝑐2, 𝒙0 + ℎ𝑎21 𝒌1 ),
𝒌3 = 𝒇(𝑡0 + ℎ𝑐3, 𝒙0 + ℎ(𝑎31 𝒌1 + 𝑎32 𝒌2 )),

𝒌𝑠 = 𝒇(𝑡0 + ℎ𝑐𝑠 , 𝒙0 + ℎ(𝑎𝑠1 𝒌1 +. . . +𝑎𝑠,𝑠−1𝒌𝑠−1)),
𝒙1 = 𝒙0 + ℎ(𝑏1 𝒌1 +. . . +𝑏𝑠 𝒌𝒔 ),
или
𝑠

𝒙1 = 𝒙0 + ℎ ∑ 𝑏𝑗 𝒌𝑗 , 𝒌1 = 𝒇(𝑡0 , 𝑥0 ),
𝑗=1

𝑖−1

𝒌𝑖 = 𝒇 (𝑡0 + ℎ𝑐𝑖 , 𝒙0 + ℎ ∑ 𝑎𝑖𝑗 𝒌𝑗 ) (𝑖 = 2, … , 𝑠)


𝑗=1

называется явным s-этапным методом Рунге-Кутты, 𝑎𝑖,𝑗 , 𝑏𝑖 , 𝑐𝑖 — коэффициенты,


определяемые из условий порядка. Метод имеет порядок 𝑝, если разложение в ряд
Тейлора точного решения 𝒙(𝑡1 ) и приближённого 𝒙1 по малому параметру ℎ
совпадают до членов 𝑝 включительно. Метод называется явным потому, что

6
каждая величина 𝒌𝑖 на 𝑖 − м этапе выражается явно через величины 𝒌1,…,𝑖−1 на
предыдущих этапах. Таким образом, явный -этапный метод Рунге-Кутты на
каждом шаге требует 𝑠 вычислений функции f.
Коэффициенты 𝑎𝑖,𝑗 , 𝑏𝑖 , 𝑐𝑖 принято представлять в виде таблицы Бутчера

0
с2 𝑎21
с3 𝑎31 𝑎32
⋮ ⋮ ⋮ ⋱
с𝑠 𝑎𝑠1 𝑎𝑠2 … 𝑎𝑠,𝑠−11
𝑏1 𝑏2 … 𝑏𝑠−1 𝑏𝑠

Приведём в пример формулу явной схемы Рунге-Кутты шестого порядка:

𝒌1 = 𝒇(𝑡, 𝑥 ),
ℎ 𝒌1
𝒌2 = 𝒇 (𝑡 + , 𝑥 + ),
6 6
4ℎ 4𝒌1 16𝒌2
𝒌3 = 𝒇 (𝑡 + ,𝑥 + + ),
15 75 75
2ℎ 5𝒌1 8𝒌2 5𝒌3
𝒌4 = 𝒇 (𝑡 + ,𝑥 + − + ),
3 6 3 2
5ℎ 165𝒌1 55𝒌2 425𝒌3 85𝒌4
𝒌5 = 𝒇 (𝑡 + ,𝑥 − + − + ),
6 64 6 64 96
12𝒌1 4015𝒌3 11𝒌4 88𝒌5
𝒌6 = 𝒇 (𝑡 + ℎ, 𝑥 + − 8𝒌2 + −− + ),
5 612 36 255
ℎ 8263𝒌1 124𝒌2 643𝒌3 81𝒌4 2484𝒌5
𝒌7 = 𝒇 (𝑡 + ,𝑥 − + − − − ),
15 15000 75 680 240 10625
3501𝒌1 300𝒌2 297275𝒌3
𝒌8 = 𝒇 (𝑡 + ℎ, 𝑥 + − + −
1720 43 52632

7
319𝒌4 24068𝒌5 3850𝒌7
+ −
+ ),
2322 84065 26703
3𝒌1 875𝒌3 23𝒌4 264𝒌5 125𝒌7 43𝒌8
𝒙1 = 𝒙0 + ℎ ( + + + + + ).
40 2244 72 1955 11592 616

Метод имеет табличный вид

0
1 1
6 6
4 4 16
15 75 75
2 5 8 5

3 6 3 2
5 165 55 425 85
− −
6 64 6 64 96
1 12 −8 4015 11 88

5 612 36 255
1 8263 124 643 81 2484 0
− − −
15 15000 75 680 250 10625
1 3501 300 297275 319 24068 0 3850
− −
1720 43 52632 2322 84065 26703
3 0 875 23 264 0 125 43
40 2244 72 1955 11592 616

Метод
𝒌1 = 𝒇(𝑡0 + ℎ𝑐1, 𝒙0 + ℎ(𝑎11 𝒌1 + . . . +𝑎1𝑠 𝒌𝑠 )),

𝒌𝑠 = 𝒇(𝑡0 + ℎ𝑐𝑠 , 𝒙0 + ℎ(𝑎𝑠1 𝒌1 +. . . +𝑎𝑠,𝑠 𝒌𝑠 )), (3)

𝒙1 = 𝒙0 + ℎ(𝑏1 𝒌1 +. . . +𝑏𝑠 𝒌𝑠 ),

8
или
𝑠

𝒙1 = 𝒙0 + ℎ ∑ 𝑏𝑗 𝒌𝑗 ,
𝑗=1

𝒌𝑖 = 𝒇 (𝑡0 + ℎ𝑐𝑖 , 𝒙0 + ℎ ∑ 𝑎𝑖𝑗 𝒌𝑗 ) (𝑖 = 1, … , 𝑠)


𝑗=1

называется неявным s-этапным методом Рунге-Кутты для системы (2).


Неявные методы сложнее в реализации, нежели явные. Несмотря на это, к
использованию неявных схем на практике прибегают чаще в связи с
возможностью конструировать схемы более десятого порядка, что не могут
позволить явные схемы [1]. Сложность реализации связана с тем, что 𝒌𝑖 входят в
(3) неявно, что предполагает решение, в общем случае, нелинейных уравнений на
каждом шаге интегрирования. Применение неявных методов Рунге-Кутты
сводится к использованию метода простых итераций:

𝒌1𝑙+1 = 𝒇 (𝑡0 + ℎ𝑐1 , 𝒙0 + ℎ(𝑎11𝒌1𝑙 + . . . +𝑎1𝑠 𝒌𝑙𝑠 )),


(4)

𝒌𝑙+1
𝑠 = 𝒇 (𝑡0 + ℎ𝑐𝑠 , 𝒙0 + ℎ(𝑎𝑠1 𝒌1𝑙 + . . . +𝑎𝑠𝑠 𝒌𝑙𝑠 )).

Для нахождения 𝒌𝑖 необходимо как минимум две итерации. Следовательно,


-этапные неявные методы требуют не менее чем 2𝑠 вычислений функции 𝒇 [2].

2.2 МЕТОДЫ АДАМСА

Рассмотренные в предыдущем параграфе методы Рунге-Кутты являются


одношаговыми. Одношаговые методы позволяют получить численное решение
дифференциального уравнения, используя для определения значения 𝒙𝑛+1 лишь
значение 𝒙𝑛 . В общем случае приближенное решение может определяться
9
многошаговыми схемами интегрирования, которые впервые получил Джон Кауч
Адамс — британский математик и астроном [1].
Многошаговые методы основаны на запоминании и использовании
вычисленных ранее значений правых частей дифференциальных уравнений.
Начальные решения при известных начальных условиях находят с помощью
одношаговых методов. Чтобы вычислить приближенное значение 𝒙𝑚 , необходимо
найти множество начальных решений 𝒙0 , 𝒙1 , … , 𝒙𝑚−1. Сделать это можно
одношаговым методом, например, методом Рунге-Кутты.
Рассмотрим задачу Коши и предположим, что:
𝒙′ = 𝒇(𝑡, 𝒙), 𝒙(𝑡0) = 𝒙0 ;
на равномерной сетке 𝑡0 , … , 𝑡𝑟 с шагом ℎ известны первые 𝑟 + 1 решения 𝒙0 , … , 𝒙𝑟 .
Решение для шага 𝑟 + 1 представляется как
𝑡𝑟+1 (5)
𝒙(𝑡𝑟+1) = 𝒙(𝑡𝑟 ) + ∫ 𝒇(𝑡, 𝒙(𝑡))𝑑𝑡.
𝑡𝑟

Подынтегральную функцию заменим интерполирующим полиномом


Ньютона, полученным по узловым значениям 𝒇𝑖 = 𝒇(𝑡𝑢 , 𝒙𝑖 ) (𝑖 = 0, … , 𝑟):

𝒑(𝑡) = 𝒇0 + 𝒇0,1(𝑡 − 𝑡0) + 𝒇0,1,2 (𝑡 − 𝑡0 )(𝑡 − 𝑡1) + ⋯ + (6)


+𝒇0,1,..,𝑟 (𝑡 − 𝑡0 ) … (𝑡 − 𝑡𝑟−1)

где разделенные разности вычисляются из треугольника

𝑡0 𝒇0
𝒇0,1
𝑡1 𝒇1 𝒇0,1,2
𝒇1,2 … 𝒇0,1,…,𝑟
𝑡2 𝐟2 …
… … …
𝑡𝑟 𝒇𝑟
10
Из этого следует, что численный аналог (5) можно задать формулой
𝑡𝑟+1
𝒙𝑟+1 = 𝒙𝑟 + ∫ 𝒑(𝑡)𝑑𝑡.
𝑡𝑟 (7)
Из (7) для 𝑟 = 0, … , 3 получаем следующие формулы Адамса:
𝒙1 = 𝒙0 + ℎ𝒇0 (метод Эйлера),
3 1
𝒙2 = 𝒙1 + ℎ [ 𝒇1 − 𝒇0],
2 2
23 16 5
𝒙3 = 𝒙2 + ℎ [ 𝒇2 − 𝒇1 + 𝒇0]. (8)
12 12 12
55 59 37 9
𝒙4 = 𝒙3 + ℎ [ 𝒇3 − 𝒇2 + 𝒇1 − 𝒇 ]
24 24 24 24 0
Формулы (8) называются явными формулами Адамса. Они получаются
путём интегрирования интерполирующего полинома (5) вне интервала
интерполяции, что обычно ведёт к достаточно плохому приближению, а также
малой области устойчивости.
Данную проблему Адамс решил путём включения значения функции 𝒇𝑟+1
от искомого решения в интерполяционный полином . Такая замена позволяет
получить неявные формулы. Например, для 𝑟 = 0, … ,3 получаем следующие
выражения:
𝒙1 = 𝒙0 + ℎ𝒇1 (метод Эйлера),
1 1
𝒙2 = 𝒙1 + ℎ [ 𝒇2 + 𝒇1] (правило трапеций) .
2 2
5 8 1
𝒙3 = 𝒙2 + ℎ [ 𝒇3 + 𝒇2 − 𝒇1],
12 12 12
9 19 5 1
𝒙4 = 𝒙3 + ℎ [ 𝒇4 + 𝒇3 − 𝒇2 + 𝒇 ]
24 24 24 24 1

11
Разностную схему -шагового метода Адамса в общем случае можно
записать следующим образом:
𝑠
(9)
𝒙𝑠 = 𝒙𝑠−1 + ℎ ∑ 𝛽𝑖 𝒇𝑖
𝑖=0
где 𝛽𝑖 — постоянные метода.
Если 𝛽𝑠 = 0, то схема (12) является явной и имеет в общем случае порядок
𝑝 = 𝑠. Иначе схема — неявная и имеет порядок 𝑝 = 𝑠 + 1.
Коэффициенты 𝛽𝑖 для явной схемы вычисляются как:
𝑠−1
(−1)𝑗 1
𝛽𝑠−𝑗−1 = ∫ ∏(𝑢 + 𝑖)𝑑𝑢 (𝑗 = 0, … , 𝑠 − 1);
𝑗! (𝑠 − 𝑗 − 1)! 0
𝑖=0
𝑖≠𝑗

Для неявной:
𝑠−1
(−1) 𝑗 1
𝛽𝑠−𝑗 = ∫ ∏(𝑢 + 𝑖 − 1)𝑑𝑢 (𝑗 = 0, … , 𝑠);
𝑗! (𝑠 − 𝑗 − 1)! 0
𝑖=0
𝑖≠𝑗

2.3 ПРЕДИКТОР-КОРРЕКТОР

Решение дифференциальных уравнений с использованием неявных схем


предполагает поэтапное нахождение решений нелинейных уравнений
относительно искомого решения 𝒙𝑠 . Для этого используется какой-либо
итерационный метод. Обычно им является метод простых итераций.
Реализация итерационного процесса требует начального решения заданной
нелинейной системы. Решение обычно получают с использованием любой явной
схемы. То есть, первым этапом строится некоторая экстраполяция при пересчёте
шага. В результате получают некоторое приближение 𝒙10 , которое называется
предиктором (Р). На втором этапе полученное приближение уточняется решением

12
нелинейного уравнения с использованием неявной схемы, называемой
корректором ( С ). Итерационная процедура в целом получила название
«предиктор-корректор» (Р − С).
Также отдельным этапом можно выделить процедуру вычисления правых
частей 𝒇𝑠 (Е). Символьно схему «предиктор-корректор» можно представить
следующим образом:
𝑃 (𝐸𝐶 )𝑙 𝐸,
если правые части 𝒇𝑠 уравнений уточняются, или

𝑃(𝐸𝐶 )𝑙 ,
если правые части не уточняются. Здесь 𝑙 − количество итераций до сходимости
пошагового процесса с заданной точностью. Как правило, на практике достаточно
от одной до трёх итерация для получения точного значения 𝒙0 .

2.4 МЕТОД ГИРА

Рассмотренные в 2.2 методы Адамса основываются на приближенном


решении (7). Однако для построения многошаговых методов существуют
некоторые альтернативы. Например, метод Гира, основанный на формулах
дифференцирования назад, работающий по принципу «предиктор-корректор».
Аппроксимирующий полином для 𝒙 по решениям 𝒙0 , … , 𝒙𝑠 представим в
виде
𝒒(𝑡) = 𝒙0 + 𝒙0,1(𝑡 − 𝑡0 ) + 𝒙0,1,2(𝑡 − 𝑡0 )(𝑡 − 𝑡1 ) + (10)
+ . . . +𝒙0,1,…,𝑠 (𝑡 − 𝑡0 ) … (𝑡 − 𝑡𝑠−1).
Потребуем, чтобы полином (10) удовлетворял дифференциальному уравнению
как минимум в одном из узлов, т.е. его производная совпала с правой частью
уравнения:

13
𝒒′ (𝑡𝑟 ) = 𝒇(𝑡𝑟 , 𝒙𝑟 ), (11)
где 𝑟 является одним из значений на интервала 0, … , 𝑠.
Взятие производной из (11) и подстановка 𝑡𝑟 позволяет получить схему
многошагового интегрирования для 𝒙𝑠 . При 𝑟 = 𝑠 метод является неявным и
называется методом Гира.
Пример схемы Гира для 𝑠 = 1, … ,6:
𝒙1 = 𝒙0 + ℎ𝒇1,
3 1
𝒙2 − 2𝒙1 + 𝒙0 = ℎ𝒇2 ,
2 2
11 3 1
𝒙3 − 3𝒙2 + 𝒙1 − 𝒙0 = ℎ𝒇3 ,
6 2 3
25 4 1
𝒙4 − 4𝒙3 + 3𝒙2 − 𝒙1 + 𝒙0 = ℎ𝒇4 ,
12 3 4
137 10 5 1
𝒙5 − 5𝒙4 + 5𝒙3 − 𝒙2 + 𝒙1 − 𝒙0 = ℎ𝒇5 ,
60 3 4 5
147 15 20 15 6 1
𝒙6 − 6𝒙5 + 𝒙4 − 𝒙3 + 𝒙2 − 𝒙1 + 𝒙0 = ℎ𝒇6 .
60 2 3 4 5 6
Таким образом, 𝑠 − шаговый метод на основе дифференцирования
представим как:
𝑠
(12)
∑ 𝛼𝑖 𝒙𝑖 = ℎ𝒇𝑟 ,
𝑖=0

где 𝛼𝑖 — постоянные метода:


1𝑠 𝑠 𝑟−𝑗 (13)
𝛼𝑖 = ∑𝑘=0 ∏ 𝑗=0 ,
𝑖−𝑘 𝑖−𝑗
𝑘≠𝑖 𝑗≠𝑖,𝑘

2.5 УСТОЙЧИВОСТЬ МНОГОШАГОВЫХ МЕТОДОВ

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


решений может быть недостаточным уменьшение шага интегрирования и
14
повышение порядка схемы. Несмотря на повышение локальной точности
вследствие уменьшения шага, может наблюдаться стремительный рост глобальной
ошибки. Эта особенность связана с понятием неустойчивости.
В вопросе исследования устойчивости метода важную роль играет изучение
поведения решения при ℎ → 0 и фиксированном ∆𝑡 = ℎ𝑛. Очевидно, что при
ℎ → 0 схема (12) сводится к формуле
𝛼𝑠 𝒙𝑛+𝑠 +. . . +𝛼0 𝒙𝑛 = 0. (14)
Её можно рассматривать как численный метод (12), применённый к решению
дифференциального уравнения первого порядка
𝒙′ = 0.
Подставив 𝑥𝑖 = ξ𝑖 в формулу (14) и разделив её на ξ𝑛 , получим, что ξ должно быть
корнем уравнения
𝜌(ξ) = 𝛼𝑠 ξ𝑠 + 𝛼𝑠−1ξ𝑠−1+. . . +𝛼0 = 0.
Многошаговый метод является устойчивым, если его производящий
многочлен 𝜌(ξ) удовлетворяет корневому условию, т.е.
1) корни 𝜌(ξ) лежат внутри (или на) единичной окружности;
2) корни, принадлежащие единичной окружности, являются простыми.
Для метода Гира (12) производящий многочлен 𝜌(ξ) можно представить в
виде
𝑠
1
𝜌(ξ) = ∑ ξ𝑠−1(ξ − 1).𝑖
𝑖
𝑖=1

Модули его корней представлены в таблице 1. Как мы видим, согласно корневому


условию, s-шаговый метод Гира устойчив при 𝑠 ≤ 6 и неустойчив при 𝑠 ≥ 7.

15
Таблица 1. Модули корней производящего многочлена для метода Гира.
𝑠 |ξ|
1 1
2 0.333 1
3 0.426 0.426 1
4 0.381 0.560 0.560 1
5 0.417 0.417 0.708 0.708 1
6 0.406 0.474 0.474 0.863 0.863 1
7 0.425 0.425 0.539 0.539 1 1.022 1.022
8 0.421 0.458 0.458 0.608 0.608 1 1.183 1.183
9 0.434 0.434 0.496 0.496 0.681 0.681 1 1.347 1.347
10 0.431 0.455 0.455 0.539 0.539 0.756 0.756 1 1.512 1.512

16
3 АЛГОРИТМИЗАЦИЯ МЕТОДА ГИРА И ЕГО ПРОГРАММНАЯ
РЕАЛИЗАЦИЯ

Интегратор Гира был программно реализован в среде разработки Delphi в


компьютерной арифметике с расширенной точностью. Схема предназначена для
решения дифференциальных уравнений орбитальной динамики первого порядка с
постоянным задаваемым шагом интегрирования. Заголовок процедуры
интегратора имеет вид
𝐺𝐸𝐴𝑅 (𝑁𝑆, 𝑇𝑆, 𝑇𝐹, 𝐼𝑇𝐸𝑅, 𝑁𝑆𝑇𝐸𝑃, 𝑁𝐶𝐼𝑅𝐶𝐿, 𝐶𝑅𝑀𝑃).
Опишем входные (𝐼) и выходные (𝑂) параметры, обозначив их
соответствующими индексами: 𝑁𝑆 𝐼 — число узлов ( 𝑝 = 𝑠 ); 𝑇𝑆 𝐼 и 𝑇𝐹𝐼 —
стартовые и конечные значения независимой переменной; 𝐼𝑇𝐸𝑅 𝐼 — число
итераций для корректора; 𝑁𝑆𝑇𝐸𝑃𝐼 — число шагов, определяющее размер шага;
𝑁𝐶𝐼𝑅𝐶𝐿𝐼 — число оборотов; 𝑋𝑂𝐼 — интегрируемые уравнения, заданные во
входном текстовом файле; 𝐶𝑅𝑀𝑃𝐼 — имя процедуры вычисления правых частей 𝒇.
Решения интегрируемых уравнений записываются в текстовый файл с указанием
параметра 𝑁𝐶𝐹𝑂 — количества вызовов процедуры вычисления 𝒇.
Программно многошаговый неявный метод Гира реализуется по следующей
алгоритмической схеме.
1. Задаётся количество узлов 𝑁𝑆, начальный 𝑇𝑆 и конечный
𝑇𝐹 моменты времени; число итераций для корректора 𝐼𝑇𝐸𝑅 ;
количество шагов 𝑁𝑆𝑇𝐸𝑃; число оборотов 𝑁𝐶𝐼𝑅𝐶𝐿.
2. По начальным условиям вычисляется постоянный шаг
интегрирования
ℎ = (𝑇𝐹 − 𝑇𝑆)/𝑁𝑆𝑇𝐸𝑃.
3. Вычисляются необходимые для интегрирования коэффициенты 𝛼 для
предиктора:

17
𝑠 1 𝑠 𝑠−𝑗−1
𝑝
𝛼𝑖 = ∑ ∏ 𝑗=0 ,
𝑘=0 𝑖 − 𝑘 𝑖−𝑗
𝑘≠𝑖 𝑗≠𝑖,𝑘

а также для корректора:


𝑠1 𝑠 𝑠−𝑗
𝛼𝑖 = ∑ ∏ 𝑗=0 ,
𝑘=0 𝑖 − 𝑘 𝑖−𝑗
𝑘≠𝑖 𝑗≠𝑖,𝑘

4. По начальным условиям вычисляются правые части 𝒇𝑠−1 на момент


времени 𝑡𝑛 = ℎ (𝑠 − 1).
5. Находится решение-предиктор:
𝑠−1
1 𝑝
𝒙𝑠 = 𝑝 (ℎ𝒇𝑠−1 − ∑ 𝑥𝑖 𝛼𝑖 )
𝛼𝑠
𝑖=0

6. Делается шаг 𝑡 + ℎ. Вычисляются правые части дифференциальных


уравнений.
7. Вычисляется корректор:
𝑠−1
1
𝒙𝑠 = (ℎ𝒇𝑠 − ∑ 𝑥𝑖 𝛼𝑖 )
𝛼𝑠
𝑖=0

8. Происходит сдвиг элементов сетки полученных решений и времени


влево в соответствии с адресацией массивов решений для реализации
пошагового интегрирования заданного порядка 𝑝=𝑠
(значения 𝒙𝑖 при 𝑡𝑛 заменяются значениями 𝒙𝑖+1 при 𝑡𝑛+1 ).
9. Возвращение к п.5 до тех пор, пока не будет выполнено заданное
количество шагов 𝑁𝑆𝑇𝐸𝑃, т.е. при 𝑡 = ℎ ∙ 𝑁𝑆𝑇𝐸𝑃.
10. Формируется решение 𝑋 на момент времени 𝑇𝐹.

18
4 ЧИСЛЕННЫЕ РЕЗУЛЬТАТЫ

Для исследования эффективности методов Гира были проведены некоторые


численные эксперименты. Метод тестировался применительно к
дифференциальным уравнениям первого порядка орбитального невозмущённого
движения в прямоугольных координатах. Показатели эффективности схемы Гира
сопоставлялись с показателями методов Рунге-Кутты и методов Адамса. Для
каждого интегратора характеристики строились по оценкам эффективности при
варьировании показателя 𝑁𝑆𝑇𝐸𝑃 . Эффективность анализировалась по
характеристикам точность-быстродействие, которые позволяют оценить
соотношение между точностью интегрирования и трудоёмкостью вычислений.
Точность |∆𝒙| оценивается на конце временного интервала, за который
объект выполняет некоторое количество оборотов 𝑁𝐶𝐼𝑅𝐶𝐿. В качестве показателя
трудоёмкости выбрано количество обращений к процедуре правых частей. Оценка
точности осуществляется сравнением полученных при численном интегрировании
результатов с результатами, полученными аналитическими способами решения
задачи двух тел. Значения эффективности были получены многократными
численными интегрированиями уравнений при различных значениях задаваемых
параметров интегратора.
Первоначально интегратор был применён к дифференциальным уравнениям
плоской нормированной круговой задачи:
𝜇𝒓 (15)
𝒓′ = 𝒗, 𝒗′ = −
|𝒓|3

или
𝒓′ 𝒗
𝒙′ = ( ′ ) = (−𝐫/|𝒓|3 ) = 𝒇(𝒙).
𝒗
Здесь 𝒓 = (𝑟1, 𝑟2)𝑇 и 𝒗 = (𝑣1 , 𝑣2)𝑇 — векторы положения и скорости, 𝜇 —
гравитационный параметр.

19
Для круговой нормированной задачи |𝒓| = 𝑎 = 1, 𝜇 = 1, 𝑒 = 0,
предполагаем, что 𝜇/|𝒓|3 = 𝜈 2 = 1 . Следовательно, решение 𝒙 = (𝒓, 𝒗)
описывается с помощью уравнения гармонического осциллятора с частотой 𝜈 = 1
и может быть записано в виде:
𝑥1 = 𝑟1 = cos 𝑡,
𝑥2 = 𝑟2 = sin 𝑡,
𝑥3 = 𝑣1 = − sin 𝑡,
𝑥4 = 𝑣2 = − cos 𝑡.
Первоначально необходимо было выяснить какой порядок метода даёт
наилучший показатель точность-быстродействие. Разумеется, рассматривались
только устойчивые схемы интегрирования от первого до шестого порядков
включительно. Результаты сравнения приведены на рис.1. Характеристика для
схемы первого порядка метода была исключена в связи со сравнительно низкими
показателями эффективности.

Рис. 1. Характеристики точность-быстродействие для схем интегрирования Гира


2-6 порядков.

20
Из рис.1 можно сделать вывод, что наилучшая эффективность метода, как и
предполагалось, достигается при использовании схемы шестого порядка.
Очевидно, чем характеристика ближе к осям, тем эффективность метода выше.
Метод шестого порядка по сравнению с методами более низких порядков при
одинаковом объёме вычислений и одинаковом показателе ошибки работает в разы
быстрее. Например, схема шестого порядка втрое быстрее схемы пятого порядка.
Заметим, что любая характеристика во всех представленных зависимостях
имеет «колено». Это обусловлено влиянием ошибок округления. При малом шаге
ℎ и одновременно большом показателе NCF методическая точность становится
выше вычислительной ошибки, вследствие чего и образуется «колено».
Вычислительная ошибка имеет свойство накапливаться при большом объёме
вычислений в связи с особенностями компьютерной арифметики. «Колено» и есть
точка, достижение которой является ограничением в повышении точности любого
рассматриваемого метода. При отсутствии вычислительных ошибок,
характеристики представляли бы собой в логарифмических шкалах прямые, а
стало быть, точность постоянно возрастала бы при увеличении порядка метода и
уменьшении шага интегрирования как |∆𝒙| ∝ ℎ𝑝 ∝ 𝑁𝐶𝐹 −𝑝 .
Исходя из рис.1 в качестве оптимального порядка для дальнейших
исследований мы приняли 𝑁𝑆 = 𝑠 = 6.
Схема Гира использует итерационный способ вычисления правых частей 𝒇,
стало быть, следующим шагом исследования выберем определения числа
итераций корректора, являющимся оптимальным для достижения наилучшего
показателя эффективности метода шестого порядка применительно к
моделированию круговой орбиты на десяти оборотах. Характеристики
представлены на рис.2. Анализируя зависимость точности интегрирования от
трудоёмкости вычислительного процесса, зависящего непосредственно от числа
итераций, можно сделать вывод, что наилучший показатель достигается при одной
итерации.
21
Рис. 2. Характеристики точность-быстродействие для схем интегрирования Гира 6
порядка на десяти оборотах при 1-5 итерациях корректора на десяти оборотах.

С увеличением интервала интегрирования объём вычислений, очевидно,


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

Рис. 3. Характеристики точность-быстродействие для схем интегрирования Гира 6


порядка 1 итерации корректора с числом оборотов 1,10,100,1000.

22
Рис. 4. Характеристики точность-быстродействие для методов Гира, Адамса,
Рунге-Кутты шестых порядков на интервале времени 10 оборотов.

Мы также провели сравнительный анализ эффективности методов Гира,


Адамса и Рунге-Кутты шестых порядков. Как видно из рис.4, многошаговые
методы одинаково хороши в сравнении с одношаговыми методами. Так,
многошаговые методы работают быстрее, нежели явный метод Рунге-Кутты,
почти в три раза. Хотя в сравнении с неявным методом Рунге-Кутты
эффективность многошаговых методов менее впечатляющая: их быстродействие
выше только приблизительно в полтора раза. Особенность неявного метода Рунге-
Кутты такова, что он относится к методам типа Лобатто и является
четырёхэтапным [1]. На каждом шаге для получения решения выполнялось две
итерации, хотя обращений к процедуре правых частей уравнений фактически
требуется всего 6, а не 8, как в явном методе. Поэтому эффективность неявного
метода по быстродействия немного выше.
Дальнейшее изучение эффективности схемы Гира шестого порядка было
продолжено на примере плоской эллиптической нормированной задачи двух тел
(17). Начальные решения для метода Гира вычислялись по точным аналитическим

23
формулам. Результаты представлены на рис.5.

Рис. 5. Характеристики точность-быстродействие схемы Гира шестого порядка


применительно к плоской задаче двух тел при различных эксцентриситетах.

Из рисунка видно, что с ростом эксцентриситета характеристики точность-


быстродействие ухудшаются. Низкая эффективность метода Гира для больших
эксцентриситетов объясняется тем, что его схема интегрирования не
предусматривает использование переменного шага, что требуется для решения
дифференциальных уравнений с эксцентричным поведением правых частей.
Однако ещё до 𝑒 = 0.2 метод демонстрирует весьма неплохую эффективность.
Мы также исследовали возможности метода Гира при численном
моделировании движения космического аппарата ГЛОНАСС. Движение
рассматривалось на интервале времени 10 оборотов в рамках размерной круговой
задачи двух тел с гравитационным параметром 𝜇 = 398600.4356 и орбитальными
элементами а = 25778 км и 𝑖 = 64.8°. В частности, из рис.6 видно, что предельно
высокая точность метода Гира шестого порядка значительно превышает
миллиметрового уровня. Следовательно, метод может быть вполне пригодным для

24
расчёта эфемерид ГЛОНАСС с целью высокоточной навигации.

Рис. 6. Характеристики точность-быстродействие схемы Гира шестого для


решения классической задачи ГЛОНАСС.

25
ЗАКЛЮЧЕНИЕ

Таким образом, в работе были получены следующие результаты:


1. Освоена теория одношаговых методов Рунге-Кутты и многошаговых
методов Адамса и Гира.
2. Cоставлен и программно реализован алгоритм многошаговой неявной
схемы Гира. Написан интегратор для решения задач орбитальной
динамики в среде разработки Delphi.
3. Проведены численные эксперименты по исследованию эффективности
метода Гира в невозмущённых задачах орбитальной динамики.
4. Выбраны оптимальные параметры интегратора Гира для
высокоэффективного моделирования орбитального движения.
Определено, что интегратор наиболее эффективен при использовании
схемы шестого порядка с одной итерацией для корректора.
5. Проведён сравнительный анализ эффективности методов Адамса,
Рунге-Кутты и Гира шестых порядков. В частности, экспериментально
показано, что метод Гира, как и метод Адамса, значительно
эффективнее, нежели методы Рунге-Кутты: он позволяет получить
численные результаты оперативнее в три раза.
6. Установлено, что метод Гира шестого порядка даёт
удовлетворительные результаты применительно к задачам расчёта
эфемерид КА ГЛОНАСС с целью высокоточной навигации.

26
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1. Авдюшев В. А. Численное моделирование орбит небесных тел / В.


А. Авдюшев. – Томск : Издательский Дом Томского государственного
университета, 2015. – 336 с.
2. Холл Дж. Современные численные методы решения обыкновенных
дифференциальных уравнений / Дж. Холл, Дж. Уатт. – М. : Мир, 1979. – 312 с.
3. Каханер Д. Численные методы и программное обеспечение / Д.
Каханер, К. Моулер, С. Нэш. – М. : Мир, 1998. – 575 с.
4. Иванов Д. С. Численное моделирование орбитального и углового
движения космических аппаратов. / Д. С. Иванов, С. П. Трофимов, М. Г.
Широбоков; под общ. ред. М. Ю. Овчинникова. — М.: ИПМ им. М. В. Келдыша,
2016. — 118 с.
5. Распопова Н. В. Задачи движения тел в космических системах.
Часть 1 : учеб. пособие / Н. В. Распопова, А. А. Давыденко— СПб.: Соло, 2015.
— 73 с.
6. Solving Ordinary Differential Equations I / E. Hairer [et al.]. – Berlin :
Springer-Verlag, 1993. – 528 p.
7. Пименов В. Г. Численные методы : в 2 ч. Часть 2 : учеб. пособие / В.
Г. Пименов, А. Б. Ложников. – Екатеринбург : Изд-во Уральского университета,
2014. – 106 с.
8. Вержбицкий В. М. Основы численных методов : учебник для вузов /
В. М. Вержбицкий. – М. : Высш. шк., 2002. – 840 с.
9. Самарский А. А. Введение в численные методы / А. А. Самарский. –
Москва: Наука, 1982. – 271 с.

27
10. Семенов М. Е. Анализ областей абсолютной устойчивости неявных
методов решения систем обыкновенных дифференциальных уравнений / М. Е.
Семенов, С. Н. Колупаева // Известия Томского политехнического университета.
– 2010. Т. 317. № 2. – С. 16–22.
11. Аристова, Е. Н. Практические занятия по вычислительной
математике в МФТИ Часть II : учеб. пособие / Е. Н. Аристова, А. И. Лобанов. –
М. : МФТИ, 2015. – 310 с.
12. Ортега Дж. Введение в численные методы решения
дифференциальных уравнений / Дж. Ортега, У. Пул. – М. : Наука, 1986. – 288 с.
13. Форсайт Дж. Машинные методы математических вычислений / Дж.
Форсайт, М. Малькольм, К. Моулер. – М. : Мир, 1980. – 275 с.
14. Березин И. С. Методы вычислений Т.1 / И. С. Березин, Н. П.
Жидков. – М. : Государственное издательство физико-математической
литературы, 1962. – 464 с.

28
ПРИЛОЖЕНИЕ

Код интегратора Гира шестого порядка, реализованный в среде


программирования Delphi для решения дифференциальных уравнений
орбитального движения с постоянным шагом.

{VALUES DEFINED IN THE CONSTANTS SECTION:


NE NUMBER OF EQUATIONS}
CONST
NE=6;
{ORBIT PARAMETERS}
MU=398600.4356;
VAR
P, ITER, NSTEP, NCIRCL:INTEGER;
TS, TF:EXTENDED;
TYPE A0NS = ARRAY[0..6] OF EXTENDED;
A0NSNE = ARRAY[0..6,1..NE] OF EXTENDED;
ANE = ARRAY[1..NE] OF EXTENDED;
FUNPROC = PROCEDURE(V:EXTENDED;Q:ANE; VAR F:ANE);
{PROCEDURE OF RIGHT-HAND MEMBERS (FUN)}
PROCEDURE
FUN(V:EXTENDED;Q:ANE; VAR F:ANE );
VAR R,R3:EXTENDED;
BEGIN
R:=SQRT(SQR(Q[1])+SQR(Q[2])+SQR(Q[3]));
R3:=R*R*R;
F[1]:=Q[4];
F[2]:=Q[5];
29
F[3]:=Q[6];
F[4]:=-MU*Q[1]/R3;
F[5]:=-MU*Q[2]/R3;
F[6]:=-MU*Q[3]/R3;
END;
{PROCEDURE FOR INITIALIZING INITIAL SOLUTIONS
DEFINE VARIABLES:
TS INITIAL TIME
H CALCULATED STEP
X ARRAY OF INTEGRATED VARIABLES AT TS}
PROCEDURE
INFILEDATA(NS:INTEGER;TS:EXTENDED;H:EXTENDED;VAR
X:A0NSNE);
VAR INFILE: TEXT;
I: INTEGER;
BEGIN
ASSIGN(INFILE,'IN.TXT');
RESET(INFILE);
FOR I:=0 TO (NS-1) DO
READLN(INFILE,X[I,1],X[I,2],X[I,3],X[I,4],X[I,5],X[I,6]);
END;
{THE GEAR PROCEDURE INTEGRATES DIFFERENTIAL EQUATIONS WITH A
CONSTANT STEP.
DEFINE VARIABLES:
NS NUMBER OF NODES (SAME AS THE METHOD ORDER)
TS INITIAL TIME
TF FINAL TIME
ITER NUMBER OF ITERATIONS FOR CORRECTOR
30
NSTEP NUMBER OF STEPS
NCIRCL NUMBER OF TURNS
CRMP PROCEDURE FOR CALCULATING THE RIGHT-HAND SIDES
OF THE EQUATION
NCF NUMBER OF CALLS TO PROCEDURE}
PROCEDURE
GEAR(NS:INTEGER;TS,TF:EXTENDED;ITER,NSTEP,NCIRCL:INTEGER;C
RMP: FUNPROC);
VAR
ALPHA,BETA: A0NS;
X: A0NSNE;
F, Y, Q,W: ANE;
T,SUM,PROD,DX,H,X1,X2,X3: EXTENDED;
OUTFILE:TEXT;
I,K,J,L,ISTEP,NCF{NUMBER OF CALLS TO PROCEDURE FUN}:
INTEGER;
BEGIN
ASSIGN(OUTFILE,'SOLUTIONS.TXT');
REWRITE(OUTFILE);
T:=0;
NCF:=0;
H:=(TF-TS)/NSTEP; {STEP CALCULATION}
INFILEDATA(NS,TS,H,X);
X1:= X[0,1]; X2:=X[0,2]; X3:=X[0,3];
{ALPHA COEFFICIENT CALCULATION}
FOR I:=0 TO NS DO
BEGIN //I
SUM:=0;
31
FOR K:=0 TO NS DO
IF (K<>I) THEN
BEGIN //IF
PROD:=1;
FOR J:=0 TO NS DO
IF ((J<>I)AND(J<>K)) THEN
PROD:=PROD*((NS-J)/(I-J));
SUM:=SUM+PROD/(I-K);
END;//END IF
ALPHA[I]:=SUM;
END; //END I //END ALPHA
SUM:=0;
{BETTA COEFFICIENT CALCULATION}
FOR I:=0 TO NS DO
BEGIN//I
SUM:=0;
FOR K:=0 TO NS DO
IF (K<>I) THEN
BEGIN //IF
PROD:=1;
FOR J:=0 TO NS DO
IF ((J<>I)AND(J<>K)) THEN
PROD:=PROD*((NS-J-1)/(I-J));
SUM:=SUM+PROD/(I-K);
END;//END IF
BETA[I]:=SUM;
END;//END I //END BETTA
SUM:=0;
32
T:=H*(NS-1);
FOR I:=1 TO NE DO
Q[I]:=X[NS-1,I];
CRMP(T,Q,F); {F(NS-1)}
NCF:= NCF+1;
FOR ISTEP:= NS TO NSTEP*NCIRCL{TURNOVERS} DO
BEGIN //ISTEP
{PREDICTOR}
FOR I:=1 TO NE DO
W[I]:=H*F{S-1}[I];
FOR J:=1 TO NE DO
FOR K:=0 TO (NS-1) DO
W[J]:=W[J]-BETA[K]*X[K,J];
FOR I:=1 TO NE DO
X[NS,I]:=W[I]/BETA[NS];
T:=T+H;
FOR L:=1 TO ITER DO
BEGIN //ITER
{USING THE RIGHT-HAND SIDE CALCULATION PROCEDURE}
FOR I:=1 TO NE DO
Q[I]:=X[NS,I];
CRMP(T,Q,F); {F(NS)}
NCF:= NCF+1;
{CORRECTOR}
FOR I:=1 TO NE DO
Y[I]:=H*F{S}[I];
FOR J:=1 TO NE DO
FOR K:=0 TO (NS-1) DO
33
Y[J]:=Y[J]-ALPHA[K]*X[K,J];
FOR I:=1 TO NE DO
X[NS,I]:=Y[I]/ALPHA[NS];
END;//END ITER
{THE CALCULATION OF THE ERROR (DX)}
DX:=SQRT(SQR(X[NS,1]-COS(T))+SQR(X[NS,2]-SIN(T)));
{TRANSFERRING VALUES}
FOR I:=0 TO (NS-1) DO
FOR J:=1 TO NE DO
X[I,J]:=X[I+1,J];
END; //ISTEP
FOR I:=1 TO NE DO
WRITELN(OUTFILE,'X[',I,']= ',X[NS,I]);
WRITELN(OUTFILE, 'NCF: ',NCF);
CLOSE(OUTFILE);
END;
{EXAMPLE OF THE MAIN SECTION FOR A CLASSIC GLONASS PROBLEM}
BEGIN
WRITE('SCHEME ORDER: '); READLN(P);
IF (P>6) THEN
BEGIN
WRITELN('THE GEER SCHEME IS UNSTABLE AT AN ORDER HIGHER
THAN THE SIXTH.');
EXIT
END
ELSE BEGIN
WRITE('INITIAL INTEGRATION TIME: '); READLN(TS);
WRITE('FINAL INTEGRATION TIME: '); READLN(TF);
34
WRITE('NUMBER OF ITERATIONS FOR THE CORRECTOR: ');
READLN(ITER);
WRITE('NUMBER OF STEPS: '); READLN(NSTEP);
WRITE('NUMBER OF TURNS: '); READLN(NCIRCL);
GEAR({NS}P,{TS}TS,{TF}TF,{ITER}ITER,{NSTEP}NSTEP,{NCIRCL}NCIRCL,{
CRMP}FUN);
WRITELN('DONE. CLICK ENTER TO CLOSE THE WINDOW.');
READLN;
END;
END.

35