Изучите кривую Леви C

C-кривая Леви: как прямая линия превращается в сложный фрактальный мир?

Если бы вам дали прямую линию и сказали, что — без введения сложных правил, а лишь путем многократного повторения одного простого «сгиба» — ее можно превратить в замысловатый фрактальный узор, вам, возможно, было бы трудно представить себе конечный результат.

И все же именно это делает C-кривую Леви столь удивительной.

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

Все начинается с прямой линии

Построение C-кривой Леви начинается очень просто — с единственного прямолинейного отрезка. У этого начального отрезка есть специальное название: инициатор; его можно считать «зерном» всего фрактала.

На этом этапе нет ни сложных узоров, ни ответвлений, ни развилок, и даже форма буквы «C» еще не просматривается — это просто обычная прямая линия.

Далее нам понадобится «генератор»

Если имеется лишь одна прямая линия, ничего не происходит. Поэтому нужно определить кое-что еще: генератор. Генератор задает форму, которой заменяется отрезок линии при его обработке.

В случае с C-кривой Леви генератор состоит из двух отрезков равной длины, каждый из которых отклонен на определенный угол от исходного направления.

Если предположить, что исходный отрезок горизонтален, и задать угол отклонения 45°, то два отрезка генератора отклонятся на 45° в разные стороны. В результате одиночный прямой отрезок заменяется ломаной линией с прямым углом. Поскольку +45° − (−45°) = 90°, два новых отрезка оказываются перпендикулярными друг другу. Это можно представить как небольшой V-образный элемент изгиба.

А теперь — самое интересное

Теперь, когда у нас есть исходный элемент и генератор, нужно выполнить всего одно действие: заменить исходный элемент генератором.

В результате один отрезок превращается в два. Но мы на этом не останавливаемся, ведь у нас появились два новых отрезка. Мы применяем тот же генератор к этим двум отрезкам, превращая их в четыре. На следующем шаге четыре превращаются в восемь. Затем — в шестнадцать, тридцать два и так далее...

Этот процесс называется рекурсией, и его суть вовсе не загадочна: нужно снова применить исходное правило к только что созданным элементам.

Мы не создаем новых правил; от первого шага до последнего правило остается неизменным. Каждый отрезок использует один и тот же генератор, и каждый вновь созданный отрезок продолжает использовать тот же самый генератор — процесс повторяется снова и снова.

Сначала был 1 отрезок. Затем — 2. Потом — 4. Затем — 8. Потом — 16. С каждой итерацией количество отрезков удваивается, и каждый отрезок претерпевает одни и те же изменения. В итоге изначально простая прямая линия начинает обрастать все большим количеством изгибов. По мере продолжения процесса весь узор становится все более сложным.

Угол изгиба 45° — не единственный вариант

В классической кривой Леви (C-кривой) обычно используется генератор с углом 45°, однако мы не ограничены именно этим значением.

Если изменить угол на 30°, каждый новый отрезок будет отклоняться от исходного направления на 30°, в результате чего угол между двумя новыми отрезками составит 60°.

При угле 38° два отрезка отклоняются на ±38° соответственно, образуя между собой угол 76°.

При угле 45° два отрезка отклоняются на ±45° соответственно, образуя прямой угол в 90°.

Что произойдет, если лишь немного изменить угол?

Представьте: вы меняете параметр совсем незначительно — скажем, с 45° до 38°, — что приводит лишь к небольшому изменению формы генератора. Однако помните, что этот генератор применяется многократно. На первом этапе (поколении) изменения минимальны. Ко второму этапу они начинают накапливаться. К третьему — разница становится более заметной. По мере продолжения итераций итоговый узор может совершенно не походить на исходную форму.

В этом заключается удивительная особенность рекурсивных систем: крошечное локальное изменение в процессе многократного применения может привести к колоссальным различиям в общей структуре.

Построение C-кривой Леви можно представить как работу механизма складывания

Работа механизма начинается с прямой линии — это исходный элемент. Затем он берет фиксированный генератор и заменяет им эту линию.

Далее механизм проверяет: «Сколько теперь отрезков?» После этого он применяет тот же генератор к каждому отрезку. Проверка, замена, снова проверка и снова замена. Механизм продолжает этот процесс бесконечно; в итоге одна прямая линия «складывается» в сложный фрактальный мир.

Это отличается от реального складывания бумаги; термин «складывание» здесь — лишь интуитивная метафора, помогающая понять суть. На самом деле компьютер не складывает физический лист бумаги. Вместо этого он следует геометрическим правилам, заданным генератором, и заменяет каждый отрезок двумя новыми.

Если говорить точнее, процесс заключается в замене исходного элемента генератором, а затем в последовательной замене новых отрезков (непрерывный рекурсивный процесс) — именно так и строится C-кривая Леви.

Почему всё становится всё более сложным?

Если вдуматься, мы не добавляли никаких сложных математических правил на протяжении всего процесса. Есть лишь начальный элемент, генератор, угол поворота и рекурсивный процесс — и всё.

Тем не менее, по мере увеличения числа итераций (1 → 2 → 4 → 8 → 16 → 32 → ...) растет количество отрезков, меняется их ориентация, и они продолжают порождать новые сегменты. Таким образом, сложность не закладывается в систему намеренно; она возникает спонтанно благодаря многократному применению простых правил. Это один из самых удивительных аспектов фракталов.

При переходе к итерациям более высоких порядков множество отрезков C-кривой Леви начинает группироваться. Издалека это может напоминать ветви деревьев или узоры ветвления растений. Однако это лишь внешнее сходство: здесь не действуют законы роста растений — нет ни ствола, ни листьев, ни солнечного света, ни воды, ни скорости роста. Система просто выполняет генерацию и рекурсию — и ничего больше.

Именно это делает математические фигуры столь притягательными: чисто абстрактное геометрическое правило способно порождать визуальные эффекты, которые выглядят поразительно «естественными».

В чем разница между кривой Леви (C-кривой) и папоротником Барнсли?

Обе фигуры могут напоминать растения, но лежащие в их основе принципы совершенно различны.

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

Кривая Леви вовсе не имитирует растение; она начинается как простая линия, которая благодаря применению генератора и рекурсии превращается во все более сложную кривую, напоминающую ветку дерева. Таким образом, это растительная по форме структура, возникающая на основе простых правил.

В чем разница между кривой Леви (C-кривой) и кривой дракона?

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

Кривая дракона создается путем многократного складывания и поворотов по определенным правилам, в результате чего формируется сложная фрактальная фигура, напоминающая дракона.

В основе кривой Леви лежит использование фиксированного генератора для многократной замены каждого отрезка — в частности, в классическом варианте с углом 45° образуются два новых отрезка, расположенных перпендикулярно друг другу.

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

Чем она отличается от снежинки Коха?

Можно заметить, что при построении снежинки Коха используется очень похожий принцип: её тоже можно описать через начальный элемент, генератор и итерацию, хотя сам генератор здесь иной.

Построение снежинки Коха предполагает «выращивание» небольшого треугольника из середины отрезка, в результате чего образуется контур, напоминающий снежинку.

C-кривая Леви преобразует один отрезок в два, расположенных под определённым углом друг к другу, формируя сложную фрактальную кривую, напоминающую по форме латинскую букву C.

В этом смысле их можно рассматривать как один и тот же тип «рекурсивной машины»: достаточно лишь сменить генератор, и возникают совершенно иные миры.

От 30° до 45°: наблюдайте, как «растет» математическая фигура

Попробуйте самостоятельно установить угол сгиба на 30° и увеличить количество итераций. Затем попробуйте 38° и, наконец, 45°.

Вы заметите, что генератор — узор в правом верхнем углу — претерпевает лишь незначительные изменения; однако по мере увеличения числа рекурсивных шагов трансформация всей фигуры становится все более выраженной.

Это напоминает назначение различных генов «математическому правилу роста»: само правило остается неизменным, меняется лишь один параметр, но после достаточного количества повторений итоговая форма может кардинально отличаться.

С математической точки зрения этот процесс может продолжаться бесконечно. С каждым поколением отрезки становятся многочисленнее и короче, а структура — сложнее. Теоретически это может длиться вечно.

Разумеется, экран компьютера не может по-настоящему отобразить бесконечное число итераций. На самом деле мы видим лишь приближение при определенном, конечном количестве итераций. Например, уже заметна разительная визуальная разница между 5 и 10 итерациями. Если же увеличить их число до 15 или 20, вычислительная нагрузка резко возрастет.

Поэтому любую кривую Леви (C-кривую), которую вы здесь видите, можно рассматривать как «снимок» бесконечного фрактала на определенном этапе его развития.

Истинное очарование кривой Леви (C-кривой)

Во что превращается прямая линия?

Вначале перед нами просто прямая линия — ничего особенного. Затем мы сгибаем её один раз, потом снова, и снова...

Каждый шаг — это просто применение одного и того же базового правила. И всё же в итоге мы видим уже не прямую линию, а сложный фрактальный узор, изобилующий деталями.

Ещё интереснее то, что можно изменить угол сгиба — 30°, 38°, 45° или любой другой — и увидеть: в какие формы может трансформироваться эта прямая линия?

Самое захватывающее в кривой Леви — это не какой-то конкретный итоговый узор, а сам процесс: что происходит при переходе от невероятно простого исходного элемента к невероятно сложному результату?

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

Именно это делает мир фракталов столь притягательным: сложность не обязательно требует сложных правил; иногда достаточно лишь одного простого правила, повторённого многократно.

Продолжайте исследовать бесконечный микрокосм

C-кривая Леви — лишь один из примеров в мире фракталов.

Если вам нравятся математические узоры, возникающие по схеме «простые правила → непрерывная рекурсия → сложные структуры», возможно, вас также заинтересует кривая дракона — простая линия, которая в процессе многократных сгибаний превращается в сложную фрактальную структуру. Или снежинка Коха — простой треугольник, на сторонах которого появляются новые детали, образуя бесконечно сложную математическую снежинку. Существует также множество Мандельброта, где простая итерация комплексных чисел порождает невероятную, бесконечную детализацию. И сеть Аполлония: она начинается с нескольких касающихся друг друга окружностей, а пустоты между ними заполняются всё более мелкими окружностями, позволяя структуре разрастаться до бесконечности.

Несмотря на различия в правилах построения, все они рассказывают одну и ту же историю: насколько сложный мир можно создать, просто повторяя одно простое правило? C-кривая Леви предлагает свой ответ: прямая линия способна «вырастить» целый мир — и это может оказаться куда более удивительным, чем вы могли себе представить.

Вы также можете изучить другие увлекательные математические узоры или почитать подробнее о C-кривой Леви в Википедии.

Хотите видеть эти потрясающие математические визуализации каждый раз, когда открываете новую вкладку? Установите расширение для Chrome прямо сейчас и сделайте «Math Wonder Box» страницей новой вкладки.🚀

Узнать больше