Все это очень хорошо, но задача
Чтобы реалистично смоделировать планетарное столкновение, число пушистых шариков должно быть велико — скажем, тысяча, а еще лучше миллион. Компьютеры умеют оперировать большими числами, но здесь
Предположим, мы используем миллион шариков. Чтобы определить состояние каждого шарика, требуется шесть чисел: три для координат в пространстве, еще три для компонент скорости. Это шесть миллионов чисел — только для того, чтобы определить состояние системы в произвольный момент. Мы хотим воспользоваться законами механики и гравитации, чтобы предсказать будущее движение системы. Эти законы представляют собой дифференциальные уравнения, определяющие состояние системы на крохотный шаг вперед, в будущее, при известном текущем состоянии. При маленьком шаге по времени — пусть это будет, скажем, секунда — результат получится очень близким к реальному состоянию системы в будущем. Так что теперь нам придется вычислить сумму для шести миллионов чисел. Точнее говоря, нам придется получить
И это еще не самое худшее. Хотя каждый отдельный шаг, возможно, является хорошей аппроксимацией, шагов так много, что даже самая крохотная ошибка может значительно вырасти; кроме того, объемные вычисления занимают много времени. Если бы компьютер мог рассчитывать один шаг в секунду, то есть работал бы «в реальном времени», на расчеты потребовалось бы не меньше тысячи лет. Только суперкомпьютер способен хотя бы приблизиться к таким параметрам вычислений. Единственный выход — найти другой, более хитрый способ проводить вычисления. На ранних этапах столкновения действительно может потребоваться короткий шаг по времени — скажем, одна секунда, — потому что возникнет страшная путаница и все будет очень сложно. Позже шаг по времени можно сделать более длинным, результат, вероятно, останется приемлемым. Более того, как только две точки разойдутся на достаточно большое расстояние, сила взаимодействия между ними станет настолько маленькой, что ею, скорее всего, можно вообще пренебречь. Наконец, именно здесь можно получить наибольший выигрыш — весь расчет можно упростить, организовав его более хитроумным способом.
При первых попытках моделирования вводились дополнительные упрощения. Вместо того чтобы проводить вычисления для трехмерного пространства, задачу сводили к двум измерениям, а для этого предполагали, что все происходит в плоскости орбиты Земли. В этом варианте сталкиваются два круглых, а не два шарообразных тела. Такое упрощение дает два преимущества. Шесть миллионов превращаются всего лишь в четыре миллиона (по четыре числа на один пушистый шарик). Еще лучше, что вам уже не нужно миллиона шариков; возможно, 10 000 будет достаточно. Теперь вместо шести миллионов у вас будет 40 000, а сложность снизится с 36 триллионов до 1,6 миллиарда.
Да, и еще одно…