В ноябре 1989 года в городе Риад (Саудовская Аравия) мне вручали награду за особые достижения от Ассоциации исследователей Космоса. Я имел возможность выступить перед самым большим в истории числом астронавтов и космонавтов, собравшихся под одной крышей. Их было больше пятидесяти. Присутствовали Эдвин Олдрин и Майк Коллинз из экипажа «Аполлона-11» и Алексей Леонов, совершивший «первую прогулку» в космос (его уже не смущает, что моя книга «2010, Одиссея-два» содержит посвящение ему и Андрею Сахарову). Я решил немного расширить кругозор собравшихся и продемонстрировать им нечто грандиозное. Мы с астронавтом Салманом бен Абдул-Азизом представили вниманию аудитории роскошно иллюстрированную лекцию «Цвета бесконечности. Исследование фрактальной Вселенной».
Нижеприведенный материал содержит выдержки из моего выступления. Еще один отрывок из него появляется в начале 15-й главы. Очень жаль, что в рамках книги нельзя проиллюстрировать текст великолепными 35-миллиметровыми слайдами и видеороликами, которые я использовал в Риаде.
Сегодня все знакомы с графиками. Особенно привычен график, на кагором по горизонтали откладывается время, а по вертикали — неуклонно растущая стоимость жизни. Мысль, что каждая точка на плоскости описывается двумя числами, обычно называемыми х и у, теперь очевидна. Невозможно представить, как математический мир дожил без этого знания до 1637 года, когда Декарт наконец представил свою теорию.
Последствия этой простейшей идеи не перестают удивлять до сих пор. Самому поразительному открытию, совершенному благодаря Декартову изобретению, в момент написания книги исполняется десять лет. Оно называется множеством Мандельброта. Очень скоро вы увидите его повсюду — в рисунках на тканях, обоях и линолеуме, в дизайне ювелирных украшений. Опасаюсь, что множество Мандельброта станет появляться на экранах ваших телевизоров при каждом выпуске рекламы.
Однако самым невероятным свойством множества является его изначальная простота. Любой школьник способен понять, как оно образуется. Для современной математики такое почти невероятно. Чтобы получить множество Мандельброта, достаточно простейших действий — сложения и умножения. Нет нужды в вычитании и, упаси бог, делении; о более экзотических тварях из математического зверинца не стану даже упоминать.
В цивилизованном мире найдется мало людей, не сталкивавшихся со знаменитой формулой Эйнштейна Е = mc2. Лишь единицы сочтут ее безнадежно сложной для понимания. Уравнение, определяющее множество Мандельброта, содержит такое же количество обозначений и выглядит очень похоже. Вот так:
Z = z2 + c
Не особо страшно. Между тем времени жизни Вселенной не хватит, чтобы исследовать все расширения этого уравнения.
Буквы z и c символизируют числа, а не физические величины типа массы и энергии, как у Эйнштейна. Это координаты, обозначающие положение точки. Уравнение описывает, как точка движется по плоскости, и позволяет выявить закономерность.
Приведу простейшую аналогию. Все видели детские книжки со страницами, усыпанными цифрами. Если соединять цифры линией в правильном порядке, обнаруживаются скрытые, порой удивительные, картинки. Изображение на телевизионном экране получается путем применения того же принципа в значительно усложненном виде.
Теоретически каждый, умеющий складывать и умножать, способен построить множество Мандельброта с помощью ручки или карандаша на листке бумаги в клеточку. Однако, как мы увидим позже, существуют практические сложности. Главная из них в том, что жизнь человека редко длится больше ста лет. Поэтому множество Мандельброта создают не вручную, а с помощью компьютера и демонстрируют на дисплеях.
Есть два способа определить координаты точки в пространстве. Один используется чаще, другой реже. В первом требуется некая вспомогательная решетка — восток-запад, север-юг — либо вертикальная ось Y и горизонтальная ось X на разграфленной бумаге. Вторая система применяется, например, в радарах. Благодаря бесчисленным кинофильмам теперь она знакома почти всем. Положение объекта задается, во-первых, расстоянием до точки отсчета и, во-вторых, направлением движения в системе географических координат. Так получилось, что эта система естественна для человека — вы пользуетесь ею машинально при любой игре с мячом. Вам важны расстояния и углы. Точкой отсчета являетесь вы сами.
Представьте, что дисплей компьютера — это экран радара. На нем — одна точка, за движением которой будет следить множество Мандельброта. Прежде чем мы включим наш радар, хотелось бы упростить уравнение еще больше, вот так:
Z = z2
Я отбросил с и оставил только z. Давайте определим их более точно.
Маленькая буква z — первоначальный диапазон точки, дистанция, с которой она стартует. Большая Z- расстояние от старта до финиша. Если изначально точка отстояла от нас на 2 единицы, повинуясь уравнению, она сразу прыгнет на 4.
Пока ничего особо волнующего. Но теперь наступает черед модификации, приводящей к серьезным отличиям:
Z ↔ z2
Знак равенства заменен двойной стрелочкой. Напоминает знак двустороннего движения, показывающий, что числа плывут в обоих направлениях. На этот раз мы не остановимся на Z = 4; мы присвоим полученное число новому z и моментально получим вторую величину Z то есть 16, и так далее. Очень скоро образуется последовательность:
256, 65536, 4294967296…
Точка, стартовавшая всего в 2 единицах от центра, гигантскими, непрестанно увеличивающимися шагами направится к бесконечности.
Виток при постоянном движении по петле называется итерацией. Процесс похож на то, как собака гоняется за собственным хвостом. Но собака при этом никуда не денется, а вот математические итерации способны увести нас в очень странные места. Скоро мы на них посмотрим.
Наконец мы готовы включить радар. На большинстве дисплеев рисуют круги радиусами 10, 20… 100 километров от центра. Нам потребуется единственный круг радиусом 1. Незачем вводить единицы измерения, поскольку мы оперируем чистыми числами. Хотите — назовите их сантиметрами или световыми годами, как больше нравится.
Предположим, что первоначальная позиция точки находится где угодно в пределах этого круга. Точное место не имеет значения. Итак, z равно 1.
Поскольку 1 в квадрате дает 1, то Z также равно 1. Его величина будет оставаться такой постоянно, сколько бы раз мы ни умножали единицу на саму себя. Точка будет вертеться и вертеться по кругу, но не сможет его покинуть.
Теперь рассмотрим случай, когда первоначальное z больше 1. Мы уже видели, как быстро точка убегает в бесконечность, если z равно 2. То же самое рано или поздно произойдет, даже если число будет превышать 1 совсем чуть-чуть. Пусть, к примеру, z = 1,000000000000000000001. Смотрите:
При первом возведении в квадрат Z становится
1,000000000000000000002
затем
1,000000000000000000004
1,000000000000000000008
1,000000000000000000016
1,000000000000000000032
И так далее — насколько хватит бумаги для распечатки. Для любых практических целей подобные величины округляют до 1. Наша точка не двинулась заметно ни вперед, ни назад. Она все равно остается в кружке с радиусом 1.
Но нули медленно исчезают, и цифры после запятой неуклонно маршируют влево. Неожиданно что-то появляется на месте третьей, второй, первой цифры после запятой. После небольшого числа операций числа начинают взрываться, как показывает этот пример:
1,001 1,002 1,004 1,008 1,016 1,032
1,066 1,136 1,292 1,668 2,783 7,745
59,987 3598,467 12948970
167675700000000
28115140000000000000000000000
И до бесконечности.
Справа может быть миллион, миллиард нулей, но результат не изменится. Постепенно цифры доберутся до запятой, и тогда Z вырвется в бесконечность.
Теперь рассмотрим другой случай. Допустим, z на микроскопическую величину меньше 1. Скажем,
0,99999999999999999999.
Как и раньше, долгое время, пока мы будем крутиться по спирали, все останется на своих местах. Но числа в дальнем правом конце будут постепенно уменьшаться. После нескольких тысяч или миллионов итераций — катастрофа! — Z вдруг начинает превращаться в ничто, оно растворяется в бесконечной цепочке нулей…
Проверьте это на компьютере. Он управляется только с двенадцатизначными цифрами? Не имеет значения. Вы получите тот же ответ. Честное слово.
Результаты наших действий, выработанного алгоритма, можно суммировать тремя законами. Некоторым они покажутся слишком тривиальными. Но не бывает тривиальных математических истин. Через пару шагов эти законы уведут нас во вселенную, поражающую удивительной красотой. Вот три закона «квадратичной» программы:
1. Если исходное z равняется 1, то результирующее Z всегда остается равным 1.
2. Если исходное z больше 1, то в результате число стремится к бесконечности.
3. Если исходное z меньше 1, то в результате число стремится к нулю.
Поэтому наш круг с радиусом 1 фактически представляет собой карту — или, если хотите, ограду, забор, делящий плоскость на две зоны. За пределами ограды числа, повинующиеся квадратичному закону, имеют свободу движения к бесконечности; числа, находящиеся внутри, — пленники, запертые и обреченные на полное изничтожение.
Тут кто-нибудь воскликнет: «Вы говорили только о расстоянии до точки старта. Но чтобы определить положение точки, нужно знать направление радиуса, вектор. Что скажете?»
Совершенно верно. К счастью, при делении z на два четких класса направление не имеет значения. Результат будет одинаковым, в какую бы сторону вектор ни указывал. Наш пример прост, мы работаем с особым множеством (назовем его «К», то есть квадратичным). Следовательно, можно смело игнорировать направление. Когда же мы придем к более сложному варианту множества Мандельброта, где векторы играют роль, я покажу очень хитрый математический фокус. Он поможет справиться с проблемами за счет использования сложных или воображаемых чисел (на самом деле они не особо сложны и вовсе не воображаемы). Пока в них нет нужды, и я обещаю больше не беспокоить вас подобным.
Множество «К» лежит внутри карты. Все его точки располагаются на окружности с радиусом 1. Она представляет собой непрерывную линию, не имеющую толщины. Если исследовать линию с помощью самого мощного микроскопа, она всегда будет выглядеть одинаково. Вы можете увеличить множество «К» до размеров Вселенной, но не увидите ничего, кроме линии с нулевой толщиной. Однако в ней нет ни одной дырочки; это абсолютно непроницаемый барьер, на веки вечные отделяющий все z менее единицы от z больше единицы.
Теперь мы наконец готовы рассмотреть множество Мандельброта, где все идеи, подсказанные здравым смыслом, переворачиваются вверх тормашками. Пристегните ремни.
В семидесятые годы двадцатого века французский математик Бенуа Мандельброт, сотрудничавший с Гарвардским университетом и компанией IBM, приступил к исследованию уравнения, впоследствии сделавшего его знаменитым. В динамической форме оно записывается так:
Z ↔ z2 + c
Единственное различие между этой формулой и той, что мы использовали для описания множества «К», это показатель c. Именно он, а не переменная z теперь является отправной точкой для нашей операции по составлению карты. При первом шаге по спирали z приравнивается к нулю.
Казалось бы, изменение крошечное. Невозможно представить, что за счет него будет сотворена целая вселенная. Мандельброт получил первые приближенные данные только к весне 1980 года, когда на компьютерных распечатках начали появляться смутные закономерности. Он услышал ту китсовскую песню:
Новое уравнение ставит тот же вопрос, что и предыдущее, и дает на него ответ. Каковы очертания «территории», получающейся при нанесении чисел на карту? Для множества «К» это была окружность с радиусом, равным 1. Давайте внесем эту величину в уравнение Мандельброта и посмотрим, что произойдет. При первых шагах вычисления легко производить в уме. Но спустя несколько десятков итераций даже у суперкомпьютера сгорит процессор.
Для начала: z = 0, с = 1. Следовательно, Z = 1
Первая петля: Z = 12 + 1 = 2
Вторая: Z = 22 + 1 = 5
Третья: Z = 52 + 1 = 26
Четвертая: Z = 262 + 1… и так далее.
Моих программистских способностей хватило, чтобы однажды заставить компьютер подставить в уравнение числа покрупнее. Машина обыграла меня всего на две итерации, а потом начала округлять:
1, 2, 5, 26, 677, 458330,
21006640000
4412789000000000000000
Тут компьютер сдался, поскольку он не верит, что существуют числа более чем из 38 разрядов.
Однако даже первых двух полученных значений достаточно, чтобы показать: очертания множества Мандельброта должны существенно отличаться от идеальной окружности множества «К». Точка с координатой «1» находится внутри множества «К», и она же определяет ею границу. Точка с таким же расстоянием в множестве Мандельброта может вылезать за границу.
Обратите внимание: я говорю «может», а не «должна». Все зависит от изначального направления относительно начала координат. Пока что мы его игнорировали, поскольку оно не влияло на наш разговор о множестве «К», наделенном абсолютной симметричностью. Как выясняется, множество Мандельброта симметрично только относительно оси X — то есть горизонтали.
Кто-то, возможно, уже догадался об этом, исходя из природы уравнения. Но вряд ли возможно интуитивно определить, как оно выглядит в действительности. Если бы мне задали такой вопрос в девственные «домандельбротовы» времена, я бы, пожалуй, робко предположил: «Наверное, что-то вроде овала, вытянутого вдоль оси Y». Возможно, смекнул бы даже, что картинка будет смешена влево, в направлении минуса.
Предлагаю провести мысленный эксперимент. Множество Мандельброта объективно неописуемо, но вот моя попытка сделать невозможное.
Представьте, что вы смотрите сверху на толстую черепаху, плывущую за запад. Она врезалась в рыбу-меч, поэтому перед ней торчит узкая спица. Панцирь ее по всему периметру оброс гирляндами причудливых морских водорослей и черепахами-малютками всевозможных размеров, к которым тоже прилипли разные водоросли…
Попробуйте найти подобное описание в учебнике математики. Если думаете, что у вас получится лучше, поглядите на эту зверюгу — и пожалуйста, милости просим. (Подозреваю, что в мире насекомых нашлись бы аналогии получше. Возможно, где-нибудь в бразильской сельве ползает «мандельжук». Жаль, мы этого никогда не узнаем.)
Вот первая, весьма приблизительная картинка, лишенная деталей. Она очень похожа на «пруд Мандельброта» около замка Конрой (глава 18). Если решите заполнить белые пятна излюбленными пометками средневековых картографов типа «Здесь драконы», смело приступайте. Сомневаюсь, что ваши предположения окажутся сильно далекими от истины.
Прежде всего, обратите внимание на следующее. Как я уже отмечал, множество Мандельброта смещено влево (на запад, если угодно) относительно множества «К», которое простирается от +1 до -1 вдоль оси X. Вдоль горизонтальной оси наша черепаха добирается только до 0,25, хотя выше и ниже она разбухает почти до 0,4.
В левую сторону карта тянется примерно до -1,4, а затем вырождается в своеобразную спицу — или антенну, — которая заканчивается ровно на -2. С точки зрения множества Мандельброта за этой точкой нет ничего, это конец Вселенной. Фанаты множества называют ее «Крайним Западом». Давайте посмотрим, что произойдет, если сделать с равным -2. Z не превратится в нуль, но и в бесконечность не уйдет. Точка будет принадлежать множеству — и только. Но если увеличить c хотя бы чуть-чуть — скажем, до -2,00000…000001, вы не успеете заметить, как пролетите мимо Плутона и направитесь к совсем уж далекому западу, в страну квазаров.
Теперь мы подошли к важнейшему отличию одного множества от другого. Граница множества «К» представляет собой красивую четкую линию. Граница множества Мандельброта, мягко говоря, «лохматая». Насколько она лохмата, вы поймете, когда мы начнем придавать множеству что-то вроде фотографического увеличения. Только так можно увидеть невероятную флору и фауну, процветающую на этой спорной территории.
Граница (если ее можно так назвать) множества Мандельброта — это не просто линия; это нечто, чего Евклид был не в состоянии представить. Для нее не найдется слова в обычном языке. Мандельброт, который чудовищно владел английским (и американским), обыскал словари в поисках более или менее подходящих существительных. Приведу несколько вариантов: пена, губка, пыль, паутина, гнездо, творожистая масса. В конце концов он склонился к техническому термину «фрактал» и теперь воодушевленно уговаривает всех не искать более точного названия.
Компьютеры способны без труда «заснять» множество Мандельброта при любом увеличении. Даже в черно-белом виде эти «снимки» поражают воображение. Однако их несложно «подкрасить» и превратить в объекты удивительной, сюрреалистичной красоты.
Первоначальное уравнение не больше связано с цветом, чем евклидовы «Элементы геометрии». Но если мы дадим компьютеру команду окрасить определенную область множества Мандельброта в соответствии с количеством прохождений z по спирали, прежде чем z решит, принадлежит оно к множеству или нет, результаты получатся великолепные.
Таким образом, цвета, хоть и не являются обязательными, не лишены смысла. Точную аналогию легко найти в картографии. Представьте контурные линии на карте рельефа местности, где показывается высота над уровнем моря. Пространство между ними часто закрашивают так, чтобы информация воспринималась проще и быстрее. То же самое с батиметрическими картами. Чем глубже океан, тем насыщеннее синий цвет. Картограф может выбрать любые цвета. Он руководствуется эстетическими соображениями точно так же, как географическими.
Похожая ситуация и с множеством Мандельброта. Разница в том, что контурные линии устанавливаются автоматически за счет скорости вычислений. Но не будем лезть в дебри. Я так и не узнал, что за гений первым до этого додумался — возможно, сам мсье Мандельброт, — но за счет цвета множество превращается в фантастические произведения искусства. Видели бы вы это великолепие, оживленное при помощи анимации…
Открытие Мандельброта порождает немало странных мыслей. Одна из них такова. В принципе, множество могло быть обнаружено, как только человечество научилось считать. На практике, в связи с тем, что даже «малое увеличение» требует миллиардов вычислений, на множество Мандельброта невозможно было даже одним глазком взглянуть до изобретения компьютеров! Чтобы появились такие фильмы, как «Ничего, кроме зумов» от «Арт матрикс», потребовалось бы, чтобы все население Земли занималось вычислениями днем и ночью, не делая ни одной ошибки при перемножении чисел из сотен разрядов…
Я начал с фразы о том, что множество Мандельброта — одно из самых необычайных открытий в истории математики. Уравнение, простое до абсурдного, порождает столь бесконечную (в буквальном смысле) сложность и неземную красоту! Разве можно вообразить такое?
Множество Мандельброта, как я попытался объяснить, фактически представляет собой карту. Все мы читали истории о картах, показывающих места, где спрятаны сокровища.
Что ж, в данном случае сама карта является сокровищем!