FractalPark
ЭкзотическиеСредне

Circle Inversion

Обратное квадратичное отображение, которое на каждом шаге меняет близкое и далёкое местами: малые значения улетают наружу, большие возвращаются к началу координат.

Открыть в Обзоре
Фрактал Circle Inversion с концентрическими кольцами и яркими радиальными шипами вокруг центрального полюса
Плоскость параметра Circle Inversion: вложенные кольца, осевые шипы и полюс в начале координат.

Обзор

Circle Inversion меняет привычный квадратичный рост на обратный квадратичный шаг: возьмите 1/z², затем сдвиньте его на c. Выглядит как маленькая замена. Поведение — совсем нет.

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

Картина радиальна: вложенные кольца и резкие осевые следы. Начало координат — полюс порядка 2, точка, где отображение не определено, — и его притяжение протягивается через всю плоскость параметра.

Математика

Reciprocal quadratic iteration

z(n+1) = 1 / z(n)^2 + c

At each step, the map takes the reciprocal of z²—geometric inversion through the unit circle with a doubled angle—then shifts the result by the complex parameter c. That inversion gives the formula its name; it is classical circle inversion applied to z² rather than to z.

Try c = 0 and start at z₀ = 2. Then z₁ = 1/4 = 0.25, z₂ = 1/(0.0625) = 16, z₃ = 1/256 ≈ 0.0039. The orbit ricochets between large and small values rather than settling at a fixed point. For c = 0.5, start at z₀ = 1: z₁ = 1/1 + 0.5 = 1.5, z₂ = 1/2.25 + 0.5 ≈ 0.944, z₃ = 1/0.892 + 0.5 ≈ 1.62. This orbit oscillates without diverging, suggesting c = 0.5 belongs to the bounded set. Escape needs a different test from the quadratic case: a huge value may collapse on the next step, so the bailout must allow for this alternation.

История

The map z → 1/z² + c sits near the broader rational family known as McMullen maps, z → zⁿ + λ/zⁿ. Curt McMullen introduced that family in the late 1980s, showing rational maps whose parameter spaces contain several kinds of hyperbolic components, including ones with Sierpiński-carpet Julia sets.

With n = 2, λ = 1, and a translation parameter c, this gives the Circle Inversion map. Its name comes from 1/z², which inverts the complex plane with respect to the unit circle and doubles the angle. Robert L. Devaney and others later studied the McMullen family, tracing how escape loci and Julia sets change with parameters. FractalPark renders exactly this map — the n = 2, λ = 1 case with c as the translation parameter.

Визуальные особенности

Concentric bands and radial spines run outward from the pole at the origin. The bands mark regions whose orbits stay bounded or escape at different rates, making nested rings like a target or the ripples from a dropped pebble.

Sharp axial structures form distinct spokes. They come from the inversion’s angular part: 1/z² doubles z’s angle, creating preferred directions where the dynamics line up. The reciprocal quadratic form gives this parameter plane a more rigid radial symmetry than most.

Ремиксы и примеры

Начните с канонического документа

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

Часто задаваемые вопросы

Why is the origin special?

The origin is a pole of order 2: 1/z² is undefined at z = 0 because division by zero creates a singularity. An orbit landing exactly there cannot continue; one passing nearby gets a very large next value. That is why the rendered image grows rings and spines around the origin.

How does FractalPark handle values near zero?

The renderer clips the denominator at a small epsilon value to prevent division by zero. The pole still leaves its rings and spines visible, while the calculation stays numerically stable. Its effect remains part of the rendered structure.

Ссылки

Разбор исходного кода

  1. frm-v1:decba7b7f3d2b3e121f53906a98d62d32743da89d72ea79c2aa1ebd5f5aa2e37:init/0

    В circleInversion, узел инициализации выполняет только: если ismand, то z = 0; иначе z = pixel.

  2. frm-v1:decba7b7f3d2b3e121f53906a98d62d32743da89d72ea79c2aa1ebd5f5aa2e37:loop/0

    В circleInversion, этот узел цикла выполняет только: z2 = z * z.

  3. frm-v1:decba7b7f3d2b3e121f53906a98d62d32743da89d72ea79c2aa1ebd5f5aa2e37:bailout

    В circleInversion, узел bailout проверяет только: |z| <= 256.

Синтаксические особенности

initialization-flow

В circleInversion, признак инициализации выделяет единственную начальную операцию если ismand, то z = 0; иначе z = pixel.

iteration-flow

В circleInversion, признак итерации выделяет единственное присваивание z2 = z * z.

bailout-test

В circleInversion, признак завершения выделяет сравнение |z| <= 256.

Эксперимент с параметрами

Шаги

  1. Выполните рендер circleInversion с закреплённой базой плоскости параметров: центр (0, 0), масштаб 0.25, поворот 0, и 96 итераций.
  2. Не меняя базу, кроме числа итераций, выполните один рендер с 48 итерациями и сравните его с базой в 96 итераций.

Что наблюдать

В circleInversion, запишите, меняется ли что-либо при сравнении 48 и 96 итераций, и отметьте ограничение исходника |z| <= 256.

Упражнение

В circleInversion, найдите три аннотации и объясните если ismand, то z = 0; иначе z = pixel, z2 = z * z и |z| <= 256 и объясните, почему соседние инструкции не относятся к аннотации цикла.

Проверка выполнения

В circleInversion, вы завершили задание, если перечислили все 3 ключа аннотаций и точно объяснили z2 = z * z и |z| <= 256.

Источники и права

Происхождение указано в английском фактологическом блоке.

Права указаны в английском фактологическом блоке.

Карточка формулы

circleInversion

Эта каноническая реализация FractalPark опубликована и готова к запуску.

Детерминированный предпросмотр circleInversion

Канонический исходный код

Язык
frm-like/1
Стандартная библиотека
1
Режим профиля
parameter-plane
Центр профиля
0, 0
Масштаб профиля
0.25
Итерации профиля
96
Основание профиля
family

Параметры

Объявленных параметров нет

Канонический исходный код

Эта проверенная каноническая ревизия доступна только для чтения. Remix создаёт отдельную редактируемую копию.

Загрузка канонического кода…

Источник и текущая реализация

ID формулы
6c1385a9-2d23-5816-90d1-2752905fc353
Каноническое имя
circleInversion
Исходное имя
circleInversion
Исторический источник
FractalPark
Текущая реализация
Собственность проекта

Это собственная реализация проекта FractalPark. Ссылка ведёт на зафиксированный канонический файл Definition.

Есть вопрос о правах или атрибуции?

Отправьте ID формулы и подтверждающие материалы. На время проверки сопровождающий может приостановить или отозвать реализацию. contact@fractalpark.com