FractalPark
ExoticHard

Rational Map 1

A degree-2 rational iteration, z²/(z + c), with one zero and a pole that travels as c changes.

Open in Explorer
Rational Map 1 Julia close-up: a fan of curving blades and sweeping channels radiating from the pole
Rational Map 1 rendered by FractalPark: a slow-turning fan of curved blades radiates from the pole, with narrow bands recording near-pole orbits.

Overview

Rational Map 1 iterates z² / (z + c). A polynomial such as z² + c has no place where its denominator fails; this map does. At z = −c sits a moving pole. An orbit that brushes it can be hurled outward, then take a quite different route on the following steps.

There is one zero, at z = 0, and one pole, at z = −c. The function still has degree two, yet that pole redraws the plane. Far out, z² / (z + c) grows roughly like z (for large |z|, z² / (z + c) ≈ z), so infinity is not the one commanding fixed point. Basins collect around a finite set of attracting cycles while the pole cuts curved channels and fan-shaped sectors between them.

FractalPark shows parameter planes, where c moves, and Julia views, where c is held still. This guide image is a Julia close-up: curved blades open around the pole, while fine colour bands follow orbits that skim the singularity.

The Mathematics

Rational iteration

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

Each step squares z, then divides by z + c. The numerator is zero at z = 0; the denominator is zero at z = −c, which makes that point a pole. The map has degree two: (z²)/(z + c) is degree‑2 over degree‑1, and after cancelling a common factor it has one zero and one pole, each counted with multiplicity.

Try the pole at close range. Take c = 0.5, so the pole is at z = −0.5, and start at z₀ = −0.49, just to its right. Then z₁ = (−0.49)² / (−0.49 + 0.5) = 0.2401 / 0.01 = 24.01. One step has thrown the orbit far out. Since |z₁| is large, the next step gives z₂ ≈ z₁² / z₁ = z₁ = 24.01: the large value persists instead of snapping back as in the magnet family. Pixel colour records the steps before the orbit crosses the escape threshold.

Unlike polynomial maps, where infinity always attracts escaping orbits, this map is nearly linear far out (z → z). Thrown-out orbits may drift. The escape-time colours therefore spread into broad, gradual bands rather than the abrupt jumps familiar from z² + c.

Visual Characteristics

This is a Julia close-up. Around the pole, curved blades open into sweeping channels that follow the map's local direction. Tight colour bands between them mark orbits that graze the pole and need many steps to cross the escape threshold.

Because large-z motion is nearly linear rather than explosive, the bands change colour slowly and broadly. It reads as a turning fan with the pole for its hub. Move c and the pole moves too; the whole fan reorganizes.

Remix and Examples

Start from the canonical Document

Open the same approved formula state used by this guide, then change the view, coloring, transforms, or animation in the interactive Explorer.

Frequently Asked Questions

What makes this a rational map?

Its rule is a quotient of two complex polynomials, z² divided by z + c, not one polynomial alone. That permits poles: places where the denominator vanishes and the value becomes infinite. Polynomial maps have no such places, so their dynamics lack this particular detour.

Where is the pole?

Set z + c to zero: the pole is at z = −c. It moves with c and helps draw the curved fan and blades. An orbit passing close by is thrown to a large value, then may drift because the map grows only linearly far from the origin.

Source walkthrough

  1. frm-v1:69a7d072638f6981ee8e06c85d03831c9a53fb549337605eb35bb3cdf1db4e10:init/0

    This cited initialization node performs only: if ismand: z = 0; otherwise z = pixel.

  2. frm-v1:69a7d072638f6981ee8e06c85d03831c9a53fb549337605eb35bb3cdf1db4e10:loop/0

    This cited first loop node performs only: numer = z * z.

  3. frm-v1:69a7d072638f6981ee8e06c85d03831c9a53fb549337605eb35bb3cdf1db4e10:bailout

    This cited bailout node tests only: |z| <= 256.

Syntax features

initialization-flow

The initialization annotation isolates if ismand: z = 0; otherwise z = pixel rather than a later initialization statement. This is specific to rationalMap1.

iteration-flow

The iteration annotation isolates the first loop assignment numer = z * z; rationalMap1 stores the squared numerator before the denominator is guarded. This is specific to rationalMap1.

bailout-test

The termination annotation identifies the exact continuation comparison |z| <= 256. This is specific to rationalMap1.

Parameter experiment

Steps

  1. Render rationalMap1 with the pinned parameter-plane baseline: center (0, 0), zoom 0.25, rotation 0, and 96 iterations.
  2. Keep center (0, 0), zoom 0.25, rotation 0, and 96 iterations fixed except for iterations, render once at 48 iterations, and compare it with the 96-iteration baseline.

What to observe

Record whether the 48- versus 96-iteration comparison changes anything, and note the source limit |z| <= 256. This is the rationalMap1 comparison.

Exercise

For rationalMap1, use the three annotations to distinguish the single-node operations if ismand: z = 0; otherwise z = pixel, numer = z * z, and |z| <= 256; explain why no neighboring statement belongs to the loop annotation.

Completion check

Name all 3 annotation IDs, then state exactly that the cited loop node is numer = z * z and the cited bailout node is |z| <= 256. This completes the rationalMap1 reading.

Sources and rights

Grounded in runtime source revision 69a7d072638f6981ee8e06c85d03831c9a53fb549337605eb35bb3cdf1db4e10 and the publication decision for 37425fb2-8542-502f-94ac-94c0ccb6e508.

rightsStatus is project-owned; implementationBasis is project-owned; publicationDecision is publish; decisionReason is publish-project-owned-native-recipe. These records describe this project decision only and do not assert broader rights in any third-party original.

Formula Record

rationalMap1

This canonical FractalPark implementation is published and runnable.

Deterministic preview of rationalMap1

Canonical source

Language
frm-like/1
Standard library
1
Profile mode
parameter-plane
Profile center
0, 0
Profile zoom
0.25
Profile iterations
96
Profile evidence
family

Parameters

No declared parameters

Canonical source

This verified canonical revision is read-only. Remix creates a separate editable fork.

Loading canonical source…

Source and implementation

Formula ID
37425fb2-8542-502f-94ac-94c0ccb6e508
Canonical name
rationalMap1
Original name
rationalMap1
Historical source
FractalPark
Current implementation
Project-owned

This is a FractalPark project-owned implementation. The linked file is the pinned canonical Definition.

Rights or attribution concern?

Send the Formula ID and supporting evidence. The maintainer can hold or withdraw the implementation while the claim is reviewed. contact@fractalpark.com