Песни далекой Земли - Страница 122


К оглавлению

122

Однако самым невероятным свойством множества является его изначальная простота. Любой школьник способен понять, как оно образуется. Для современной математики такое почти невероятно. Чтобы получить множество Мандельброта, достаточно простейших действий — сложения и умножения. Нет нужды в вычитании и, упаси бог, делении; о более экзотических тварях из математического зверинца не стану даже упоминать.

В цивилизованном мире найдется мало людей, не сталкивавшихся со знаменитой формулой Эйнштейна Е = mc. Лишь единицы сочтут ее безнадежно сложной для понимания. Уравнение, определяющее множество Мандельброта, содержит такое же количество обозначений и выглядит очень похоже. Вот так:

Z = z + c

Не особо страшно. Между тем времени жизни Вселенной не хватит, чтобы исследовать все расширения этого уравнения.

Буквы z и c символизируют числа, а не физические величины типа массы и энергии, как у Эйнштейна. Это координаты, обозначающие положение точки. Уравнение описывает, как точка движется по плоскости, и позволяет выявить закономерность.

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

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

Есть два способа определить координаты точки в пространстве. Один используется чаще, другой реже. В первом требуется некая вспомогательная решетка — восток-запад, север-юг — либо вертикальная ось Y и горизонтальная ось X на разграфленной бумаге. Вторая система применяется, например, в радарах. Благодаря бесчисленным кинофильмам теперь она знакома почти всем. Положение объекта задается, во-первых, расстоянием до точки отсчета и, во-вторых, направлением движения в системе географических координат. Так получилось, что эта система естественна для человека — вы пользуетесь ею машинально при любой игре с мячом. Вам важны расстояния и углы. Точкой отсчета являетесь вы сами.

Представьте, что дисплей компьютера — это экран радара. На нем — одна точка, за движением которой будет следить множество Мандельброта. Прежде чем мы включим наш радар, хотелось бы упростить уравнение еще больше, вот так:

Z = z

Я отбросил с и оставил только z. Давайте определим их более точно.

Маленькая буква z — первоначальный диапазон точки, дистанция, с которой она стартует. Большая Z— расстояние от старта до финиша. Если изначально точка отстояла от нас на 2 единицы, повинуясь уравнению, она сразу прыгнет на 4.

Пока ничего особо волнующего. Но теперь наступает черед модификации, приводящей к серьезным отличиям:

Z ↔ z

Знак равенства заменен двойной стрелочкой. Напоминает знак двустороннего движения, показывающий, что числа плывут в обоих направлениях. На этот раз мы не остановимся на 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.

Но нули медленно исчезают, и цифры после запятой неуклонно маршируют влево. Неожиданно что-то появляется на месте третьей, второй, первой цифры после запятой. После небольшого числа операций числа начинают взрываться, как показывает этот пример:

122