7.7. Методы численного интегрирования
Чтобы продемонстрировать существенные различия между одно- и многошаговыми методами численного интегрирования, рассмотрим численное интегрирование уравнения второго порядка
с начальными условиями при .
Рассмотрим ряд Тейлора
где
а нулевой индекс говорит о том, что значение производной берется при
Пусть
Здесь h — величина шага (предполагается постоянной), а — целое число. Тогда, например, значение х в момент времени (обозначается ) определяется по формуле
а в момент времени
Нам известны значения и при Кроме того, в силу уравнения (7.65) имеем
так что в принципе мы можем вычислить и т. д. Следовательно, подставляя в уравнение (7.67) числовые значения, мы можем определить с любой заданной точностью (поскольку известная величина).
Аналогичным образом, используя ряд Тейлора
можно получить , т. е. значение при
Используя уравнение (7.68) и соответствующее разложение для можно вычислить также . Очевидно, эту процедуру можно продолжить и вычислить, например, . На этот раз используются уравнения
и уравнение (7.69).
На этой стадии можно сделать следующие замечания:
1) рассмотренная процедура одношаговая; при вычислении значений переменных в конце шага используются значения, относящиеся только к данному шагу;
2) процедура не требует разгонки;
3) если для удовлетворения критерию точности придется делить шаг пополам или, наоборот, увеличивать его вдвое, то это, очевидно, не приведет ни к каким дополнительным трудностям;
4) поскольку в процедуре используются прямые разложения в ряд Тейлора, то существенным становится требование, чтобы производные высоких порядков вычислялись достаточно просто. Однако если одно или несколько уравнений являются нелинейными, то вычисление производных высоких порядков становится все более громоздким и длительным.
Преобразуем теперь рассматриваемый метод в многошаговую процедуру. Складывая уравнения (7.67) и (7.68), получаем
а складывая (7.70) и соответствующее уравнение для получаем
Теперь для вычисления и нам необходимы данные, относящиеся к началу предыдущего шага (т. е. ) и к началу текущего шага. Пока что главное достоинство метода еще не проявилось. Однако можно показать, что, комбинируя соответствующие ряды Тейлора, удается избежать вычисления всех производных, кроме второй, если использовать достаточно информации о предыдущих шагах. В общем виде можно написать
где , как и раньше, величина шага, k — положительное целое число, — числовые коэффициенты, х, — значения второй производной в начале текущего шага и в начале к предыдущих шагов. Значения коэффициентов а, зависят от величины k. Например, если то справедлива простая формула
. Сделаем несколько замечаний:
1) Эта формула верна с точностью до так как при ее выводе первым из отброшенных был член Про формулу (7.73) говорят, что она верна с точностью до так как первый не учтенный в ней член имеет вид
где q — некоторый числовой множитель.
2) Вообще говоря, чем выше порядок первого неучтенного члена, тем большую величину шага можно брать. Однако при выборе шага надо принимать во внимание также соображения устойчивости (см. ниже).
3) При многошаговом методе объем вычислений, очевидно, меньше, чем при одношаговом, имеющем ту же точность. Следовательно, вычисления выполняются значительно быстрее. В то же время многошаговый метод требует разгонки и специальной процедуры деления или удвоения шага. Поэтому его лучше всего применять в случаях, когда шаг все время поддерживается минимальным (например, случай почти круговой орбиты или случаи, когда уравнения регуляризованы).
Рассмотрим теперь несколько одношаговых методов.
7.7.1. Метод рекуррентных соотношений
В разд. 4.13 уже обсуждались рекуррентные методы. Здесь достаточно будет заметить только, что при использовании таких методов задача численного определения производных высоких порядков в одношаговом методе, основанном на рядах Тейлора, решается значительно быстрее, если, как это обычно бывает в задачах орбитального движения, дифференциальные уравнения нелинейные.