Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Численные методы в задачах математического моделирования движения небесных тел в Солнечной системе. Монография
.pdf
(
)
ɺ
ɺ
(
)
ɺ
ɺ
1
3
2
+
n
()()(
)
ной погрешности дискретизации. Кроме того, метод Эверхарта показал себя как самый эффективный по точности и быстродействию
в эксперименте по исследованию алгоритмов и программ численного прогнозирования движения небесных тел, проведенном в СССР в
1986 году [14].
Алгоритм и программа численного интегрирования методом
Эверхарта ранее были разработаны до 27-го порядка, однако использование этих алгоритмов выше 19-го порядка не приводило к
повышению точности вычислений.
В работе [46] рассматривается модификация алгоритма метода
Эверхарта, позволяющая повысить эффективность программного продукта при увеличении порядка метода. Рассмотрим основную идею
построения метода Эверхарта на примере решения уравнения вида
txFx ,=
.
(3.70)
Представим правую часть уравнения (3.70) в виде временного ряда
2
211
n
tAtAtAFtxFx ++++== ...,
.
n
(3.71)
Интегрируя (3.71), получим выражения для определения координат и скоростей:
2
ɺ
ɺɺ
t
Ftxxx
111
t
...
+++++=
A
1
62
2
t
AtFxx
A
111
A
n
t
...
2
+++++=
23
+
n
t
( )( )
A
n
21
++
nn
13
+
n
t
. (3.73)
, (3.72)
Полиномы (3.72) и (3.73) не являются рядами Тейлора, а коэффициенты
вычисляются из условия наилучшего приближения x
A
i
и xɺ с помощью конечных разложений (3.72) и (3.73). Для связи
A-значений с F-значениями воспользуемся вспомогательным выражением
Уравнение (3.74) усечено по времени
ванный момент времени
имеем
t
i
+=
α
,
tFF
2112
αα
ααα
( )
. В каждый фиксиро-
t
n
,
ttttFF
−++=
23323113
...
+−−+−++= tttttttttFF
3232211
. (3.74)
(3.75)
...............................................
91

(
)
α
−
=
t
()(
)
()()()(
)
[
]
ɺ
x
Принимая
( )( )
ttt −= , найдем
jnnj
,/
tFF
2121
−−=
αα
( )( )( )
( )( )( )( )
через разделенные разности:
α
i
,//
ttFF
3213132
,///
tttFF
−−−=
ααα
4324214143
αααα
−−−−=
(3.76)
,////
ttttFF
5435325215154
.............................................................................
Приравнивая коэффициенты при одинаковых степенях
уравнениях (3.71) и (3.75), выразим коэффициенты
( )
cA
...,...
+=+=
αα
33333
αααα
...,...
++=+−−+=
ccttA
33222233222
A
i
αααααα
ccctttA
через
...,...
+++=++−+=
3312211113322211
α
i
(3.77)
..........................
Коэффициенты
c определяются из следующих рекуррентных
ij
соотношений:
,,1
jic
ij
1,11
iii
−
,11,1
−−−
==
,1,
ictc
>−=
jiijiij
.1,
ijctcc
<<−=
(3.78)
Для алгоритма интегрирования пятого порядка
где
t
,
t
,
являются корнями кубического уравнения
t
2
3
4
Вопрос о нахождении узлов разбиения на шаге
tttc −=
,
43241
ttttttc ++=
,
24433242
432244332432
, (3.79)
tttc −−−=
43243
32
01
=+−−−++++− ttttttttttttttt
. (3.80)
Th ,0=
смотрим на примере алгоритма интегрирования пятого порядка.
в
:
рас-
3.7.1. АЛГОРИТМ ИНТЕГРИРОВАНИЯ
В начальный момент времени
ния
в моменты времени
t
,
t
,
2
3
известны
01=t
определяются с помощью трех
t
4
x
,
x
1
, F. Значе-
1
предсказывающих уравнений:
5
4
92
3
22
21
tAtAtAtF
23
+++++=
, (3.81)
201262
2
ɺ
txxx
21
2112

20126
2
432
′
′
′
′
′
∆
()()(
)
423020126
T
T
T
∆
ɺ
ɺ
31
txxx
3113
3
2
41
41
txxx
4114
3
2
31
4
32
4
42
5
tAtAtAtF
33
+++++=
+++++=
, (3.82)
201262
5
tAtAtAtF
43
201262
(3.83)
и двух исправляющих уравнений для нахождения положения и скорости на конце шага h:
2
1
( )
ɺ
TxxTx +++++=
11
ɺɺ
( )
TFxTx ++++=
11
3
1
2
1
4
2
3
2
5
TATATATF
3
, (3.84)
4
TATATA
3
. (3.85)
Эта схема является неявной, так как коэффициенты, стоящие в
квадратных скобках (3.81) – (3.83), неизвестны при первой итерации.
Уравнения (3.81) – (3.83) обеспечивают пятый порядок точности относительно t. Можно увеличить порядок точности в вычислении x и xɺ до седьмого порядка путем специального выбора под-
шагов
тервала интегрирования, добавив два дополнительных времени
t
значения
t
,
t
,
t
2
. Затем вычислим для
6
. С этой целью увеличим количество разбиений ин-
3
4
и
5
A
значения
t
6
.
3
t
,
и
A
,
A
A
A
4
5
,
1
2
Из уравнения (3.40) можно найти поправки
t
5
и
α
4
, а также новые
α
5
x
, улучшающие
значения координат:
3
′
−
x
=∆ .(3.86)
11
′
+
4
−
22
′
+
5
−
33
6
′
4
+
7
′
TATATAATAATAA
5
+
Выражая в уравнении (3.79)
c
51
, …,
c
54
через
c
,
c
,
, а
41
c
42
43
также полагая
t
2
h
=
2
t
3
h
=
,
3
t
4
h
=
,
, (3.87)
4
можно записать выражение (3.86) в виде
′
′
( )
−=∆
Значение
′
6
Ttx
554
в последнем выражении можно обратить в ноль
x
+
+
1
ccc
434241
20126
+
+
ααα
′
′
′
7
T
5
+
+
1
ccc
434241
30201230
+
.
42
при выполнении следующих условий:
93
,

421302012
′+′+′
ɺ
∆
′
′
′
′
1
ccc
434241
20126
′
′
′
+
ccc
434241
+
30
,0
=+
.0
=+
Проводя подобные рассуждения для скорости, приравнивая к
нулю x
, получим третье условие для определения
c
,
41
Тогда соответствующие данным разбиениям коэффициенты
дут определяться из системы алгебраических уравнений
′
′
′
+
+
′
+
+
′
+
+
1
ccc
434241
=+
,0
5
432
′
1
ccc
434241
=+
,0
6
543
′
ccc
434241
654
1
=+
.0
7
′
′
Первое и второе уравнения (3.88) являются линейными комбинациями уравнений (3.89), поэтому ими можно пренебречь.
Из решения системы (3.89) получим
Следует отметить, что значения величин
4
′
′
′
−=−=
35
6
7
12
7
,hhhc
43241
++==
,hhhhhhc
42433242
−−−=−=
.hhhc
43243
h
,
h
,
являются кор-
2
h
3
4
нями полинома третьей степени
12
−+ hhh
7
6
23
+
7
4
0
=−
, (3.91)
35
корни которого имеют следующие значения:
t
2
h
h
h
==
2
T
t
3
==
3
T
t
4
==
4
T
,...392123405382,0
,...595905331355,0
....89114124048,0
(3.88)
c
42
c
(3.89)
(3.90)
(3.92)
,
ij
c
43
бу-
.
94

ɺ
≤
≤
[
]
T
[
]
Использование этих узлов позволяет получить решение уравнения (3.71) с точностью до седьмого порядка для обеих компонент x
x
и
. Полученные по формуле (3.91) узлы разбиения h совпадают с
узлами квадратурной формулы Гаусса – Радо. Область изменения h
заключена в пределах
3.7.2. МОДИФИКАЦИЯ МЕТОДА ЭВЕРХАРТА
.
10
h
Порядок метода, определяющий точность интегрирования, зависит от количества разбиений основного шага h на подшаги
h
i
Порядок данного метода определяется наибольшей степенью временного ряда (3.72).
В работе Эверхарта [94] приведены узлы разбиения основного
шага интегрирования на подшаги, обеспечивающие точность до 15
порядка включительно. Для использования метода Эверхарта более
высокого порядка, необходимо знать узлы разбиения отрезка
t
на подшаги
i
h
= для соответствующих порядков. В работе [40]
i
1,0
.
приведены узлы разбиения отрезка
1,0
на подшаги, вычисленные
с помощью алгоритма, основанного на формулах (3.89) – (3.91), для
порядков метода с 9-го по 33-й включительно.
При численном интегрировании уравнений (3.63) методом
Эверхарта [94] разбиение шага интегрирования проводится по формулам Гаусса – Радо или Гаусса – Лобатто. Алгоритмы и программа численного интегрирования обыкновенных дифференциальных
уравнений реализованы Эверхартом для первого случая.
Как известно, повышения точности при численном решении
дифференциальных уравнений можно достичь двумя путями: либо
путем уменьшения шага интегрирования, либо путем увеличения
порядка метода. Недостатком первого способа является увеличение
ошибок округления при уменьшении шага интегрирования. Увеличение порядка аппроксимирующей формулы обладает преимуществом по сравнению с первым методом, но приводит к усложнению
алгоритма и замедлению процесса вычислений. Кроме того, коэффициенты высокого порядка, вычисленные по разностной схеме,
часто отягощены большими ошибками, т.е. их значения могут получаться на уровне шумов. Однако следует всегда отдавать предпочтение увеличению порядка, когда интегрирование проводится на
длительном интервале времени.
95

(
)
ξ
(
)
()(
)
При порядке точности не выше 15 значения величин
A вычисляются с высокой степенью точности, и в использовании
nz
A
,
A ,
nx
ny
модификации алгоритма численного интегрирования нет необходимости. Неопределенность остается в выборе шага интегрирования
для конкретно решаемой задачи. Если
A
,
A
,
nx
A – конечные
ny
nz
коэффициенты для координат x, y, z в формуле (3.72), то для
максимальной длины шага может быть использована формула
nRH/1
/
ξ
= ,
где H – длина шага интегрирования,
– заданная пользователем абсолютная погрешность,
1+++= nnAAAR
nznynx
[94].
Вследствие того, что метод Эверхарта показал высокую эффективность при решении задач небесной механики, дальнейшее его
исследование будем проводить на примерах решения дифференциальных уравнений движения небесных тел. При использовании методов низкого порядка величину шага интегрирования следует выбирать достаточно малой. Это не позволяет численно интегрировать
уравнения движения небесных тел на интервале времени порядка
нескольких столетий из-за накопления погрешности округления. В
этом случае применяются методы высокого порядка, так как использование аппроксимирующих формул высокого порядка может
приводить к увеличению шага интегрирования. Однако при применении метода Эверхарта к решению уравнений движения небесных
объектов увеличение порядка метода выше 19-го не приводило к
повышению точности и эффективности вычислений. В работе [48]
показано, что главная причина заключалась в способе нахождения
коэффициентов
A , nyA , nzA .
nx
Вследствие того, что начальные данные задачи Коши имеют
определенную точность, разделенные разности высоких порядков,
вычисленные с помощью этих данных, перестают убывать с увеличением порядка метода. В силу неопределенности коэффициентов
высокого порядка, вычисленных с использованием разностных
схем, полученные решения становятся непригодными для практического использования. Следовательно, задача численного интегрирования дифференциальных уравнений методом Эверхарта высоко-
96

∞
→
n
…
…
n
i
<
го порядка сводится к оценке коэффициентов
A
,
A , nzA . Оце-
nx
ny
нить эти коэффициенты можно на основании выполнения следующих условий.
1. При возрастании порядка метода величина последнего члена
в формуле (3.72) должна убывать и при
стремиться к нулю.
Выполнение этого условия обеспечивает необходимое условие сходимости временного ряда.
2. Увеличение порядка метода должно приводить к увеличе-
нию максимальной длины шага интегрирования. Выполнение этого
требования менее очевидно. Однако в случае нарушения этого
условия увеличение порядка не может привести к более эффективному алгоритму и дальнейшее повышение порядка метода не имеет
смысла.
Увеличение эффективности метода при повышении его порядка
может быть достигнуто следующим способом.
В работе [48] рассматривается модификация алгоритма метода Эверхарта, позволяющая повысить эффективность программного
продукта при увеличении порядка метода. Показано, что если порядок метода Эверхарта выше 15, то добавление условия
явную схему расчета коэффициентов
A , 2A ,
1
,
A является необ-
n
0≈
A в не-
n
ходимым для повышения эффективности метода. Так как система
уравнений для нахождения
A , 2A , 3A ,
1
записана в неявном виде,
то с учетом сделанного допущения производится пересчет коэффициентов
A при
i
, которые находятся по формулам (3.77).
Использование данного приема позволило находить коэффициенты
A , с помощью которых координаты и скорости исследуемого
i
объекта по формулам (3.72) и (3.73) вычисляются с высокой степенью точности, а также разработать алгоритм и программное обеспечение численного интегрирования для решения уравнений движения небесных объектов методом Эверхарта до 33 порядка включительно, эффективность и точность которых возрастает.
Кроме того, следует отметить, что программа, составленная
Эверхартом на языке программирования ФОРТРАН, осуществляет
совместное интегрирование возмущаемого тела и возмущающих планет [94]. В программе не предусматривалось использование банка
данных координат и компонент скоростей для возмущающих тел, поэтому необходимо было ее модифицировать. Вследствие того, что в
процессе интегрирования требуется информация о координатах и ско-
97

[
]
(
)
(
)
(
)
[
]
(
)
+++
=
()(
)
ростях планет на значительном количестве подшагов, требовалось
оперативно получать их, затрачивая при этом минимальное время.
Модификация алгоритма и программы метода Эверхарта с учетом
вышеназванных условий позволила разработать алгоритм и программы численного интегрирования для решения уравнений движения
небесных тел методом Эверхарта до 33 порядка включительно, эффективность и точность которых возрастает. Модификация метода
Эверхарта позволяет учитывать в аппроксимирующей формуле различное количество членов в зависимости от требуемой точности. Кроме того, использование банка данных координат планет позволяет значительно сократить время численного интегрирования уравнений
движения небесных тел без существенной потери точности.
Применение данного алгоритма к решению систем дифференциальных уравнений движения небесных объектов выявило преимущество увеличения порядка аппроксимирующих формул в алгоритме по сравнению со способами, основанными на процедуре
уменьшения шага интегрирования. В частности, уменьшение шага
интегрирования вдвое увеличивает время вычислений в 2 раза, а
увеличение порядка метода при сохранении величины шага увеличивает время вычислений лишь в 1,2 раза.
3.7.3. СВЯЗЬ НЕЯВНОГО МЕТОДА ЭВЕРХАРТА
С НЕЯВНЫМИ МЕТОДАМИ РУНГЕ – КУТТЫ
Неявный метод Рунге – Кутты 5-го порядка при использовании
разбиения интервала
ставляется в следующем виде. Находятся
ThxF
,
, где
333
Затем определяется
В этой же форме можно представить неявный метод Эверхарта
5-го порядка. Используя уравнения (3.76), (3.77), выражение
лентном виде
Для метода Эверхарта более высокого порядка справедливо
аналогичное утверждение. Таким образом, можно сформулировать
следующую теорему.
2
32
TATAF ++ легко представляется через 1F , 2F , 3F в эквива-
211
1,0
на подшаги Радо Батчером [87, 88] пред-
0,11xF
FaFaFaTxx
32322212112
( )
FwFwFw ++ .
332211
98
[ ]
+++=
+++=
FaFaFaTxx
33323213113
FwFwFwTxTx
3322111
,
,
.
. (3.94)
,
(3.93)
ThxF
и
222

[
]
[
]
Теорема. Неявный метод Эверхарта принадлежит классу неявных методов Рунге – Кутты.
В табл. 3.8 приведены узлы разбиения отрезка
1,0
на подша-
ги, вычисленные с помощью алгоритма, основанного на формулах
(3.87) – (3.92), для порядков метода с 9-го по 33-й. Здесь в первой
строке указан порядок метода, в последующих – узлы разбиения.
Таблица 3.8
Разбиение интервала
9 11 13 15
0,139759864
0,416409568
0,723156986
0,942895804
0,09853508580
0,30453572665
0,56202518975
0,80198658213
0,96019014295
1,0
на подшаги Гаусса – Радо
0,0730543286803
0,2307661379699
0,4413284812284
0,6630153097188
0,8519214003315
0,9706835728402
0,056262560536922
0,180240691736892
0,352624717113170
0,547153626330555
0,734210177215411
0,885320946839096
0,977520613561288
17 19 21
0,04463395528996985
0,14436625704214557
0,28682475714443052
0,45481331519657335
0,62806783541672770
0,78569152060436924
0,90867639210020604
0,98222008485263655
0,0362578128832094609
0,1180789787899987002
0,2371769848149603853
0,3818827653047059754
0,5380295989189890651
0,6903324200723621829
0,8238833438370047181
0,9256126102908039554
0,9855875903511234514
0,030029032161486497026
0,098289012209853229604
0,199021078963101154785
0,324055538323334892548
0,463261234284339367031
0,605360153114213156955
0,738840323991543759673
0,852888550356929759536
0,938267928122851874461
0,988082386567584403087
23 25
0,02527362039752034941993
0,08304161344740514574192
0,16917510037718142434322
0,27779671510903207234495
0,40150272023286081451917
0,53186238691041595580407
0,65999184208533481002277
0,77715939295616214324170
0,87538077485555692552065
0,94796454887281944709314
0,98998171953831959409340
0,0215620631658503515234611
0,0710578987355889540705097
0,1454474562350640695304277
0,2404011104747728783810741
0,3503993497227449288358693
0,4690491506871822497693027
0,5894549187985422453534699
0,7046191157374197200278922
0,8078489454701459176919704
0,8931455091165233179796975
0,9555535368445922664302963
0,9914609450115725785632052
99

27 29
0,018610365010987535263230969
0,061475540899268024533652269
0,126305178693308833126712299
0,209842971726560051768065159
0,307898998280395393931984335
0,415556035978656418948844903
0,527415613995879286682017724
0,637868602717758606993360096
0,741376459294235453698649455
0,832748988608440864994019577
0,907404775300996550185631181
0,961601861260321301310345231
0,992635348973910610437410549
31 33
0,0142694547367133927011941734111
0,0472995900938262916977923492531
0,0977132993200092011141719409873
0,1635690393935335166576254337113
0,2423352609676374968646941964594
0,3309848049689575332179303128583
0,4261108390922635511664194728915
0,5240576915358200350181523098574
0,6210613113522289838116762729681
0,7133939137418532178146455865041
0,7975072449494494270819206499923
0,8701689744461194350939109164064
31 33
0,9285870468846809709241413720609
0,9705177013519911908276014409011
0,9943593110274755861767728109331
Окончание табл. 3.8
0,01622476590139167414310799742
0,05369729993969986802431196674
0,11065719118043923299356726188
0,18461026055646098074870009879
0,27232354711065713765525681593
0,36996331162951154064068014147
0,47326213866004387091045788713
0,57770534269235464626387836437
0,67872825601100140071262091552
0,77191572935069469913724751277
0,85319513231875434029195542186
0,91901450031802660505385251724
0,96649859546797916195110030221
0,99358323920718005159554204745
0,064697937480224601838824354143807
0,097558231240761564057880651216664
0,089162346896612275416964865991244
0,145861852235048203171029366910361
0,216877446049896700515816767188903
0,297519862093824008901521015260492
0,385042848145347464821849460189646
0,476465883998021239209511221992578
0,568675656427129289415731046836105
0,658532072472853346704252185521159
0,742975192172166605129895171138952
0,819129440355379305495366761705458
0,884401562429212862001221635792092
0,936569054421349150324802715569719
0,973856486320809305848046500674249
0,995002700336656240144847588087549
100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
