Журнал «Компьютерра» № 33 от 11 сентября 2007 года
Шрифт:
Вышедшая в 1987 году книга Владимира Успенского "Введение в нестандартный анализ" начиналась с вопроса: "Относятся ли грифоны и единороги к позвоночным?", который иллюстрировал экзотичность темы. В то время слово «грифон» было редким, индустрия фэнтези еще не вышла на книжный рынок, да и самого книжного рынка в России еще не было, да и сама Россия была еще Советским Союзом. Все с тех пор изменилось, а вот арифметика бесконечностей осталась экзотическим предметом – несмотря на то, что нестандартный анализ разрабатывался рядом крупных математиков начиная с 1960-х годов и популярность его была довольно высока.
Нестандартный анализ основан на системе "гипердействительных чисел", содержащей бесконечно малые и бесконечно большие величины и допускающей использование необходимых в анализе функций и эффективное решение уравнений. Построение гипердействительных чисел основано
Ниже мы расскажем об одном из первых приложений "бесконечных чисел" Сергеева – вычислении с их помощью геометрических характеристик фракталов, как классических, так и более общих, мерцающих (blinking fractals). Но прежде давайте разберемся в конструкции новой числовой системы.
Поясняя мотивы для разработки своей системы, Сергеев приводит пример арифметики, используемой одним из живущих в дельте Амазонки племен. Индейцы племени Пираха (Pirahг) считают так: один, два, много. Для них и 1 + 2 = много, и 2 + 2 = много. Что такое 3 или 4, они не представляют. Сергеев уверен, что этот примитивный способ счета очень важен для нас, потому что дает отличную аналогию с современным понятием бесконечности. Действительно, в системе счета Пираха операции много + 1 и много + 2 дают один и тот же результат: много. Нечто похожее мы имеем и в современной математике: + 1 = и + 2 = . Это сравнение наводит на следующую простую мысль: как индейцы Пираха не могут различить числа 3, 4, 5 и т. д. из-за неразвитости их системы записи конечных чисел, так и мы не можем различить бесконечные числа из-за неразвитости наших способов представления бесконечности. Именно поэтому возникают проблемы при вычислениях, связанных с бесконечно большими и бесконечно малыми величинами: невозможность их представления в памяти компьютера, необходимость введения понятия предела, неопределенные формы типа – и т. д., заключает Сергеев.
В основе конструкции Сергеева, призванной исправить дело, лежит гросс-единица (grossone), обозначаемая
Гросс-единица – это бесконечное число, равное по определению количеству элементов в множестве N натуральных (то есть целых положительных) чисел. Это определение надо понимать в дословном, буквальном смысле, то есть предполагать, что N имеет вид: {1, 2, 3, …,
– 1,
}. Другими словами,
– это "самое большое натуральное число". Оно и выбирается в качестве основания новой системы исчисления. Ну а дальше – точно так же, как мы записываем числа в десятичной системе, а компьютер в двоичной, произвольные бесконечно малые и бесконечно большие числа представляют собой «записи» (records) вида:
(1)
В этой записи p – «гросстепени», а c – «гроссцифры». Отличие от десятичной или двоичной систем в том, что «гроссцифры» не фиксированные заранее, а произвольные «обыкновенные» числа, записываемые с помощью конечного числа знаков. «Гросстепени», в свою очередь, это либо записи вида (1), либо снова «обыкновенные» конечные числа. Таким образом, числа в форме (1) всегда представляются конечным числом символов. Конечность записи принципиальна для этой конструкции, подчеркивает Сергеев, – она призвана учесть тот факт, что и человек, и компьютер
Сергеев с самого начала оставляет за скобками своих построений понятия счетного и несчетного множеств, взаимно однозначные соответствия и тому подобные базовые концепции привычной канторовской теории множеств. В его числовой системе, опять-таки в прямом и буквальном смысле слова, соблюдается древний постулат "часть всегда меньше целого". Например, число
+ 1 строго больше числа
, а множество натуральных чисел можно расширить так:
Записи вида (1) позволяют очень аккуратно сравнивать "маленькие бесконечности". Например, в обычной теории множеств совокупность всех натуральных чисел и совокупность четных положительных чисел неразличимы по так называемой мощности, и то и другое – счетные множества. Здесь же постулируется, что второе из этих множеств содержит ровно
/2 элементов, то есть вдвое меньше, чем первое. Аналогично, множество всех положительных чисел вида, например, (6К+3) будет состоять из (
/6) элементов; а если к нему добавить еще три числа другого вида, полученное множество будет состоять уже из (
/6 + 3) элементов.
1/
– простейшее по записи бесконечно малое ("инфинитезимальное") число. Арифметика записей (1) устроена самым естественным образом – они перемножаются и складываются так, как если бы вместо
стояло обыкновенное число. Тонкости начинаются при суммировании бесконечных рядов. Согласно одному из самых интересных постулатов теории Сергеева, любой процесс (в том числе и процесс суммирования ряда) может включать не более чем
шагов. В частности, параллельные процессы в этой модели принципиально более мощны, чем одиночные, последовательные, – ведь К параллельно идущих процессов позволяют выполнить (К*
) шагов. В этом же постулате о процессах скрыта и очевидная связь рассматриваемой модели с аксиомой выбора – источником множества трудностей и, в частности, «виновницей» парадокса Банаха-Тарского. Можно осторожно предположить, что настоящие теоретические трудности в согласовании концепций Сергеева с остальной математикой относятся именно к этим вопросам – но мы в них углубляться, разумеется, не будем. Во всяком случае, парадокс Банаха-Тарского в теории Сергеева не возникает – дело в том, что точки, из которых состоят шары, в данном случае можно просто пересчитать, выразив их количество соответствующей записью вида (1), и это не позволяет выполнять трюки с производством предметов из ничего.
Чуть позже мы приведем примеры прямого подсчета точек во фрактальных объектах, а пока черкнем еще пару формул. В любое выражение мы теперь можем подставлять не только конечные, но и бесконечные числа – и приписать вполне определенные значения как "стремящимся к бесконечности" в традиционном смысле слова рядам и функциям, так и рядам, которые вообще не имеют традиционного предела. Например, предел
как известно, не существует. Однако с помощью записей (1) можно точно выразить значение этой последовательности в любой бесконечной точке: при n=