Нил Стивенсон - Анафем
— Отмечай. Отмечай. Отмечай.
Я сказал:
— Видишь, множество точек в конфигурационном пространстве такое же, как если бы я нечаянно пнул бутылку, и она покатилась по полу. Согласен?
— Да. Я как раз сам так подумал!
— Но я двигал её медленно, чтобы тебе удобнее было записывать.
Барб не понял, как отвечать на мою убогую шутку. После неловкой паузы я продолжил:
— А можешь теперь составить график? Отметить эти точки на трёхмерном графике?
— Могу, — неуверенно протянул Барб. — Только это будет странно.
— Пунктир внизу показывает только x и y, — объяснил Барб. — Путь бутылки на полу.
— Хорошо, потому что пока ты не привык к конфигурационному пространству, остальное тебе будет непонятно, — сказал я. — Путь на плоскости xy, который ты показал пунктиром, вполне знаком нам по адрахонесову пространству — он просто показывает, как бутылка двигалась по полу. А вот третья координата — угол — совершенно другая история. Она показывает не буквальное расстояние в пространстве, а то, насколько повернулась бутылка. Как только ты это понял, ты можешь считать её прямо с графика и сказать: «Ага, бутылка лежала под углом двадцать градусов, а пока катилась по полу, повернулась ещё на триста». Но если ты не знаешь тайного шифра, ты ничего не поймёшь.
— И зачем это нужно?
— Представь, что у тебя что-нибудь посложнее одной бутылки на полу. Например, бутылка и картофелина. Тогда тебе нужно десятимерное конфигурационное пространство, чтобы описать состояние системы бутылка-картофелина.
— Десяти?
— Пять для бутылки и пять для картофелины.
— Откуда пять? У нас всего три координаты для бутылки!
— Ну, мы сжульничали. Не учли ещё две вращательные степени свободы, — сказал я.
— То есть?
Я сел на корточки и положил руку на бутылку. Она лежала этикеткой к полу.
— Смотри, я поворачиваю её вокруг длинной оси, чтобы прочесть этикетку. Этот угол поворота — совершенно отдельное число, независимое от того, который ты отмечал на доске. Для него нам нужна ещё одна координатная ось. — Я взял бутылку, поставил на донышко и наклонил, так что теперь её горлышко смотрело под углом к полу, как дуло артиллерийского орудия. — А то, что я делаю сейчас — ещё одно независимое вращение.
— Так что уже пять, — сказал Барб, — только для бутылки.
— Да. Чтобы взять самый общий случай, надо добавить шестую ось, чтобы отмечать вертикальные перемещения. — Я приподнял бутылку над полом. — Так что нам нужны шесть измерений нашего конфигурационного пространства только для положения и ориентации бутылки. — Я поставил её обратно. — Но если мы ограничимся полом, то хватит и пяти.
— Ладно, — сказал Барб. Он так говорил, только когда что-нибудь окончательно понимал.
— Я рад, что ты согласен. Думать в шести измерениях трудно.
— Я думаю просто о шести колонках на моей доске вместо трёх, — сказал он. — Но я не понимаю, зачем нужно ещё шесть измерений для картофелины. Почему не воспользоваться теми шестью, которые у нас уже есть для бутылки.
— Мы ими и пользуемся, — объяснил я, — но записываем числа в отдельные колонки. Тогда каждая строка таблицы содержит в себе всё, что нам нужно знать о системе бутылка-картофелина в данный момент времени. Каждая строка — двенадцать чисел, дающих нам x, y и z бутылки, её угол отлетания от пинка, угол чтения этикетки, угол наклона и всё то же самое для картофелины, — точка в двенадцатимерном конфигурационном пространстве. И теорам это становится полезным, например, когда мы соединяем точки и получаем траектории в конфигурационном пространстве.
— Когда ты говоришь «траектория», мне представляется что-то, летящее по воздуху, — ответил Барб. — Я не понимаю, что ты имеешь в виду, когда речь о двенадцатимерном пространстве, которое вовсе и не пространство.
— Давай упростим до предела. Будем двигать бутылку с картофелиной только по оси x и забудем про вращение.
Я положил их так:
— Можешь отметить у себя на доске их координаты по оси x?
— Конечно. — И через несколько секунд Барб показал мне такую табличку:
— Сейчас я их столкну. Медленно, конечно. Постарайся записывать координаты, если успеешь.
Я начал двигать картофелину и бутылку, останавливаясь и говоря: «Отмечай» всякий раз, как хотел, чтобы он добавил новую строчку к таблице.
— Бутылка движется быстрее, — заметил Барб.
— В два раза быстрее. — Я закончил тем, что в точке с координатой 3 положил картофелину на бутылку.
— Они столкнулись, — сказал я, — и теперь начнутся разлетаться, но медленно, потому что картошка при ударе смялась и часть энергии потеряна.
С небольшими моими подсказками Барб добавил к табличке ещё несколько строк.
— Вот, — сказал я, отпуская соударившиеся тела и вставая с корточек. — Всё происходило на прямой, то есть ситуация одномерная, если по-прежнему думать в координатах светителя Леспера. Однако светитель Гемн сделал бы сейчас вещь, которая покажется тебе странной. Гемн считал бы, что каждая строка таблицы задаёт точку в двумерном конфигурационном пространстве.
— То есть каждая пара чисел — точка, — перевёл Барб. — Начиная с (7,1) и так далее.
— Верно. Можешь построить мне график?
— Нет ничего проще.
— Ух ты! Мрак! — воскликнул Барб. — Как будто светитель Гемн вывернул всё наизнанку.
— Дай-ка мне на минуту мел, я подпишу график, чтобы тебе легче было разобраться, — сказал я.
Через несколько минут у нас получилось вот что:
— Линия соударений, — сказал я, — это просто множество всех точек, в которых бутылка и картофелина оказываются в одном месте — в котором их координаты равны. Любой теор, глядя на твой график, сразу поймёт, что в этой линии есть что-то особенное, даже если ничего не знает про физическую ситуацию — бутылку, картофелину и пол. До линии состояние системы развивается упорядоченно и предсказуемо. Затем происходит нечто исключительное. Траектория круто поворачивает. Точки теперь расположены чаще, значит, тела движутся медленнее, а следовательно, система потеряла энергию. Я не жду, что ты придёшь в бурный восторг, но, надеюсь, теперь тебе понятно, почему теоры, когда думают о физических системах, предпочитают конфигурационное пространство.
— Тут должно быть что-то ещё, — сказал Барб. — Мы могли бы изобразить то же самое куда проще.
(adsbygoogle = window.adsbygoogle || []).push({});