Dynamics of Julia Sets in Rational Maps

Control and Synchronization with Complex Perturbations

Author

Abhirup Moitra

Abstract

This work deals with the study of the dynamical and fractal characteristics of the complex perturbed rational map provided by zn+1=12(zn+λznq). The introduction will first lay out brief historical elaboration of the so-called Julia sets with respect to their significance for studying dynamical systems. It will show how perturbations in rational maps typically afford a cozy ground for complex and varied behavior into more advanced mathematical and computational investigations. The specific method we will implement in this study is the optimal control function method. This method allows for a manipulation of the Julia sets through the controlling of the point at infinity on a rational map. Consequently, the introduction will outline why this methodology will particularly succeed in observing the stability and convergence of dynamical systems and, more generally, mathematical modeling.

The very fact of finding such a nonlinear method makes the realm of coordinated oscillations fresher and more interesting. The driving term associated with the optimal control function has, therefore, been substituted, whereby Julia sets, two belonging to synchronous systems, are evaluated. The buzz that follows this mathematical novelty significantly demands attention given its importance in understanding coupled dynamical systems in different settings. This elaborate introduction, therefore, sets-a-forward framework for the rigorous study of the control mechanisms and synchronization phenomena in complex perturbed rational maps.

Introduction

Fractals are widely studied for their ability to model complex phenomena, and Julia sets are prominent fractal structures in complex dynamics. These sets are defined as the closure of repelling periodic points of rational maps. For a rational map R(z)=P(z)Q(z), where P and Q are polynomials with deg(P)>deg(Q), infinity acts as a fixed point, and the Julia set is the boundary of the basin of attraction of infinity. The system zn+1=12(zn+λznq), studied here, introduces poles at the origin, transforming the dynamics significantly.

Control of chaotic dynamics, including Julia sets, is critical for many applications. Existing control methods, such as the OGY method and Pyragas feedback, primarily stabilize finite fixed points. In this work, we adopt an optimal control function to regulate Julia sets, treating infinity as a fixed point. Synchronization of Julia sets, essential for understanding relations between different systems, is also explored by aligning their trajectories and fractal structures. This paper contributes to fractal control and synchronization by:

  1. Introducing a control mechanism for Julia sets via the parameter k, with a focus on fractal behavior modification.

  2. Demonstrating synchronization between two Julia sets associated with different parameters in the perturbed rational map.

These advancements provide insights into the interplay between fractal structures and complex dynamics, with implications for chaotic systems and their applications.

In the context of dynamical systems, Julia sets and Mandelbrot sets play a critical role in describing the long-term behavior of iterative processes. Their physical relevance emerges from their ability to model complex systems that exhibit chaotic or fractal-like behavior.

Julia Set and Mandelbrot Sets in Complex Systems

In the context of dynamical systems, Julia sets and Mandelbrot sets play a critical role in describing the long-term behavior of iterative processes. Their physical relevance emerges from their ability to model complex systems that exhibit chaotic or fractal-like behavior.

Julia Sets: The Boundary of Stability

A Julia set J(R) is a fractal that serves as the boundary between:

  1. Points in the complex plane that exhibit stable, predictable dynamics under a rational map R(z).

  2. Points that diverge to infinity or exhibit chaotic behavior.

In a physical context:

  • Julia sets often represent systems that alternate between stable and chaotic regimes.

  • They serve as models for phase transitions, where the boundary represents critical points between phases.

  • In fields like optics, Julia sets help describe patterns in nonlinear systems, such as wave front distortions or light propagation through media.

Mandelbrot Sets: A Parameter-Space Map

The Mandelbrot set M(c), defined as the set of parameters c for which the orbit of z=0 under the map zn+1=zn2+c does not escape to infinity, is a tool to explore the global dynamics of complex systems.

  • It provides a visualization of stability regions in parameter space.

  • The Mandelbrot set predicts whether perturbations in a system lead to stability or chaos.

Together, Julia and Mandelbrot sets describe critical bifurcations and boundary behaviors, giving insights into systems where small changes in parameters can lead to drastically different outcomes.

Generalized Dynamics

This work describes a generalization of Julia sets and their mathematical framework. This generalization introduces a perturbation parameter λ and a pole at the origin, altering the classical dynamics.

Mathematical Definition:

  1. Perturbed Rational Map:

    zn+1=znq+c+λznp...(1)

    where:

    • q controls the degree of the polynomial term.

    • λznp​ introduces a singularity (pole) at the origin.

  2. Impact of λ:

    • For λ=0, the map reduces to the classical form zn+1=znq+c, a polynomial.

    • For λ0, the pole dramatically changes the system’s dynamics, increasing the map’s degree to p+q and altering the structure of Julia and Mandelbrot sets.

  3. Special Cases:

    • When c=0, the study explores how adding a pole affects the Julia set, transforming it from the unit circle (for λ=0 ) to a more complex fractal structure.

Rational Maps and Julia Sets

A rational map R(z)=P(z)Q(z),whereP(z)andQ(z) are polynomials, forms the basis for studying Julia sets. The degree of R(z) is defined as max(deg(P),deg(Q)). Julia sets are fractal structures and are defined as:

J(R)={zCthe family {Rn(z)}n1 is not normal in the sense of Montel}.

Equivalently, J(R) is the closure of the set of repelling periodic points of R(z). For R(z), if |z|, then |R(z)|, making infinity a fixed point. The Julia set J(R) forms the boundary of the basin of attraction of this fixed point.

Escape Criterion

For a rational map R(z), an escape criterion determines whether a point belongs to the basin of attraction of infinity. If S>0 such that:

|z|>S|R(z)|>|z|

then all iterates of z satisfy |Rn(z)|, and z lies in the basin of attraction of infinity.

Dynamics of the Perturbed Rational Map

The complex perturbed rational map studied is zn+1=12(zn+λznq), where q1, λC, and zC. Key features include:

  • zn+1​ contains poles at the origin, altering the dynamics of classical Julia sets.

  • When λ=0, the system reduces to a polynomial map of degree q+1.

This map generalizes rational maps R(z)=P(z)Q(z), where P(z) and Q(z) are polynomials, by introducing a pole at the origin. This perturbation significantly alters the dynamics and the structure of the Julia sets associated with the map.

Fixed Points and Their Stability

In rational maps, fixed points satisfy R(z)=z. The stability of these fixed points depends on the derivative R(z):

  • Attracting: R(z)<1,

  • Repelling: R(z)>1,

  • Neutral: R(z)=1.

In this work, infinity acts as a fixed point, and its behavior is analyzed through escape criteria and control mechanisms.

Control of Julia Set of the Complex Perturbed Rational System

Introducing a control mechanism to Julia sets opens new possibilities for exploring stability, bifurcation, and parameter sensitivity. The controlled rational map introduced earlier is a rich ground for experimentation and understanding dynamical behavior. In this section, we will delve deeper into the computational and algorithmic aspects of controlled Julia sets. A control parameter k is introduced to modify the dynamics of the map. The controlled map is defined as:

g(z)=f(z)k(f(z)z)

Interpretation:

  1. Base Map Contribution: The term f(z) represents the original rational Julia map.

  2. Feedback Control: The term k(f(z)z) acts as a damping factor. The control parameter k (with 0k1) adjusts the extent to which the new value depends on the previous iteration.

When k=0, g(z)=f(z), recovering the original Julia map. When k=1, the map becomes stationary.

The Base System and Rational Map:

The base system is:

zn+1=fλ,q(zn)=12(zn+λznq)...(2)

which can also be written as:

fλ,q(z)=zq+1+λ2zq.

This is a rational map where:

  • The numerator P(z)=zq+1+λ,

  • The denominator Q(z)=2zq.

Code
import numpy as np
import matplotlib.pyplot as plt

# Define the rational map for the system
def julia_map(z, lambda_val, q):
    return 0.5 * (z + lambda_val / z**q)

# Escape-time algorithm for Julia set visualization
def escape_time_system2(width, height, x_range, y_range, max_iter, lambda_val, q):
    x_min, x_max = x_range
    y_min, y_max = y_range
    x = np.linspace(x_min, x_max, width)
    y = np.linspace(y_min, y_max, height)
    Z = x[np.newaxis, :] + 1j * y[:, np.newaxis]

    escape_times = np.zeros(Z.shape, dtype=int)
    mask = np.full(Z.shape, True, dtype=bool)

    for i in range(max_iter):
        Z[mask] = julia_map(Z[mask], lambda_val, q)
        mask = mask & (np.abs(Z) <= 2)  # Points that have not escaped
        escape_times[~mask] = i

    return escape_times

# Visualization of the Julia set
def plot_julia_set(escape_times, x_range, y_range):
    plt.figure(figsize=(10, 10))
    plt.imshow(escape_times, extent=(*x_range, *y_range), cmap='inferno', origin='lower')
    plt.colorbar(label="Escape Iterations")
    plt.title("Julia Set of System (2)")
    plt.xlabel("Re(z)")
    plt.ylabel("Im(z)")
    plt.show()

# Parameters for visualization
width, height = 800, 800
x_range, y_range = (-2, 2), (-2, 2)
max_iter = 700
lambda_val = 0.073j
q = 2

# Generate and plot the Julia set
escape_times = escape_time_system2(width, height, x_range, y_range, max_iter, lambda_val, q)
plot_julia_set(escape_times, x_range, y_range)
Figure 1: Julia set, q = 2, λ=0.073i

Since the degree of P(z) is greater than Q(z), |fλ,q(z)| as |z|, and infinity is a fixed point. However, infinity is not an attracting fixed point because the ratio α=|2|1=2, which does not satisfy the condition |α|<1.

Introducing the Nonlinear Control:

To control the dynamics, a nonlinear control term un is introduced:

un=k[fλ,q(zn)zn].

The controlled system becomes:

zn+1=fλ,q(zn)+un

or equivalently:

zn+1=fλ,q(zn)k[fλ,q(zn)zn]

Substitute fλ,q(zn)=12(zn+λznq) into the controlled system:

zn+1=12(zn+λznq)k[12(zn+λznq)zn]...(3)

zn+1=12zn+λ2znqk[12zn+λ2znqzn]

zn+1=12zn+λ2znqk(12zn+λ2znq)

zn+1=12zn+k2zn+λ2znqkλ2znq

zn+1=1+k2zn+λ(1k)2znq

zn+1=(1+k)znq+1+λ(1k)2znq

This is a concise symbolic representation called controlled rational map, and we define this following way:

R(z)=(1+k)znq+1+λ(1k)2znq

Fixed Points and Behavior:

  • Fixed Points: The fixed points are solutions of R(z)=z, which reduce to solving:

    (1+k)zq+1+(1k)λ2zq=z

    Rearrange:

    (1+k)zq+1+(1k)λ=2zq+1

    Factorize:

    (1+k2)zq+1=(1k)λ

  • Attracting Fixed Point: If 1+k∣>2, infinity becomes an attracting fixed point.

Escape Criterion:

That’s how we can write:

|R(z)|>|z|for|z|>M

where M is a threshold beyond which iterates escape to infinity. Using bounds, the escape criterion simplifies to:

|R(z)|=|(1+k)zq+1+(1k)λ2zq|>|z|

  • The control parameter k influences the structure of the Julia set.

  • As 1+k∣>2, infinity becomes an attracting fixed point, shrinking the Julia set.

  • The escape criterion ensures iterates either escape to infinity or remain bounded within the Julia set boundary.

Optimal Control Function

The control function modifies the system to regulate its fractal properties. For the perturbed rational map: zn+1=R(zn)+un,un+1=k[R(zn+1)R(zn)]+tun, where un​ introduces feedback to stabilize desired behaviors.

Key results include:

  • With t=k, the controlled system simplifies to: zn+1=R(zn)k[R(zn)zn].

  • This introduces a parameter k that governs the structure and behavior of the Julia set.

Generalized Map:

  1. Iterative Function:

    zn+1=znq+c+λznp​where:

    • p,qZ+, are positive integers.

    • λ,cC are complex parameters.

    • znC is the iterated sequence.

  2. Boundedness Criterion:

    • A point z0​ in the complex plane belongs to the filled Julia set if its orbit {z0,z1,z2,} remains bounded under iteration.

    • For practical purposes, we compute boundedness using an escape radius R:

      • If |zn|>R, the point escapes to infinity.

      • Otherwise, it is bounded.

  3. Key Parameters:

    • q: Controls the growth of the polynomial term.

    • λ: Perturbation parameter that introduces singularities at the origin.

    • p: Governs the strength of the singularity.

    • c: Determines the central point of the hyperbolic component in the Mandelbrot set.

Mathematical Framework for Visualization

The study relies on the escape-time algorithm to visualize Julia sets:

  1. Initialize a grid of points in the complex plane.

  2. Iterate each point under the map zn+1=R(zn).

  3. Assign colors based on the number of iterations required to escape a bounded region.

This technique provides insights into the influence of control parameters k and synchronization mechanisms on the fractal structure.

Visualization Algorithm: Escape-Time Algorithm

Steps:

  1. Initialize Grid:

    • Define a grid of points in the complex plane z0​, e.g., x,y[2,2].
  2. Iterative Mapping:

    • For each z0​, compute its orbit:

      zn+1=znq+c+λznp

  3. Escape-Time Calculation:

    • Track the number of iterations n required for |zn| to exceed a given escape radius R.

    • Assign a colour to z0​ based on n (e.g., gradient or palette).

  4. Edge Cases:

    • Points where zn​ diverges rapidly (|zn|) are coloured differently.

    • Points that remain bounded ( |zn|R after the maximum iteration) are typically coloured black (belong to the Julia set).

Pseudo-Code for Escape-Time Algorithm

# Input Parameters:
# - grid_size: Number of points in the complex plane grid.
# - max_iter: Maximum number of iterations.
# - R: Escape radius.
# - c, λ: Complex parameters.
# - p, q: Integers controlling the dynamics.

Initialize grid_points = [x + yi for x, y in complex plane range]
Initialize fractal_image = empty array of size [grid_size, grid_size]

for each point z_0 in grid_points:
    z = z_0
    for n = 1 to max_iter:
        if |z| > R:
            fractal_image[z_0] = color_based_on(n)
            break
        else:
            z = z^q + c + λ / z^p
    if |z| <= R after max_iter:
        fractal_image[z_0] = black  # Belongs to the Julia set

Display fractal_image
Code
import numpy as np
import matplotlib.pyplot as plt

# Define the parameters for the rational map
def julia_map(z, lambda_val, q):
    return 0.5 * (z + lambda_val / z**q)

# Define the controlled system
def controlled_map(z, lambda_val, q, k):
    base = julia_map(z, lambda_val, q)
    return base - k * (base - z)

# Escape-time algorithm
def escape_time(width, height, x_range, y_range, max_iter, lambda_val, q, k):
    # Set up the grid
    x_min, x_max = x_range
    y_min, y_max = y_range
    x = np.linspace(x_min, x_max, width)
    y = np.linspace(y_min, y_max, height)
    Z = x[np.newaxis, :] + 1j * y[:, np.newaxis]
    
    # Initialize iteration counts
    escape_times = np.zeros(Z.shape, dtype=int)
    mask = np.full(Z.shape, True, dtype=bool)
    
    for i in range(max_iter):
        Z[mask] = controlled_map(Z[mask], lambda_val, q, k)
        mask = mask & (np.abs(Z) <= 2)  # Points that have not escaped
        escape_times[~mask] = i

    return escape_times

# Plot the Julia set
def plot_julia(escape_times, x_range, y_range):
    plt.figure(figsize=(10, 10))
    plt.imshow(escape_times, 
               extent=(*x_range, *y_range), 
               cmap='inferno', origin='lower')
    plt.colorbar(label="Escape Iterations")
    plt.title("Julia Set with Control System (3)")
    plt.xlabel("Re(z)")
    plt.ylabel("Im(z)")
    plt.show()

# Parameters
width = 800
height = 800
x_range = (-2, 2)
y_range = (-2, 2)
max_iter = 400
lambda_val = 0.073j
q = 2
k = 0.4  # Control parameter

# Generate the Julia set
escape_times = escape_time(width, height, 
                           x_range, y_range, 
                           max_iter, lambda_val, 
                           q, k)

# Plot the result
plot_julia(escape_times, x_range, y_range)
Figure 2: Julia Set of k = 0.6
Figure 3: Julia Set of k = 0.4

Synchronization of Julia Sets

Synchronization of Julia sets refers to the fascinating interplay between two distinct dynamical systems, where their fractal structures and trajectories align under specific control conditions. This phenomenon arises in the study of coupled systems, particularly in complex dynamics, where multiple Julia sets, associated with different parameters, exhibit coordinated behavior. Synchronization involves aligning the trajectories and fractal properties of two systems:

Driving System:
wn+1=12(wn+μwnp)with parametersp,μ....(4)

Response System:
zn+1=R(zn)k[R(zn)R(wn)]

Synchronization is achieved when the trajectory difference: |zn+1wn+1|0,ask1.

Coupling Mechanism

The response system incorporates a coupling term to align its dynamics with the driving system:

wn+1=f(wn,λ1,q1)

zn+1=f(zn,λ2,q2)k(f(zn,λ2,q2)f(wn,λ1,q1))

where k is a control parameter. The coupling ensures that the trajectory of zn​ (response) gradually approaches wn​ (driving). Over time, the Julia sets of the two systems synchronize, exhibiting identical or nearly identical fractal structures.

Why Synchronization Works

Synchronization is feasible because:

  • Both systems originate from the same functional framework.

  • Differences are limited to parameter variations (λ , q).

  • The coupling mechanism effectively bridges the gap created by these parameter differences, aligning the trajectories and fractal properties.

Code
# Define the escape-time algorithm for Julia sets of System (2)
def escape_time_system2_custom(width, height, x_range, y_range, 
                               max_iter, lambda_val, q):
    x_min, x_max = x_range
    y_min, y_max = y_range
    x = np.linspace(x_min, x_max, width)
    y = np.linspace(y_min, y_max, height)
    Z = x[np.newaxis, :] + 1j * y[:, np.newaxis]

    escape_times = np.zeros(Z.shape, dtype=int)
    mask = np.full(Z.shape, True, dtype=bool)

    for i in range(max_iter):
        Z[mask] = julia_map(Z[mask], lambda_val, q)
        mask = mask & (np.abs(Z) <= 2)  # Points that have not escaped
        escape_times[~mask] = i

    return escape_times

# Visualization for custom color palette
def plot_julia_set_custom(escape_times, 
                          x_range, y_range, 
                          title, cmap):
    plt.figure(figsize=(10, 10))
    plt.imshow(escape_times, 
               extent=(*x_range, *y_range), 
               cmap=cmap, origin='lower')
    plt.colorbar(label="Escape Iterations")
    plt.title(title)
    plt.xlabel("Re(z)")
    plt.ylabel("Im(z)")
    plt.show()

# Parameters for the two systems
width, height = 800, 800
x_range, y_range = (-2, 2), (-2, 2)
max_iter = 600

# Parameters for system (a): q=3, λ=0.03
q_a = 3
lambda_a = 0.03

# Parameters for system (b): q=4, λ=0.3
q_b = 4
lambda_b = 0.3

# Generate and visualize Julia sets for both systems
escape_times_a = escape_time_system2_custom(width, 
                                            height, x_range, y_range, 
                                            max_iter, lambda_a, q_a)
plot_julia_set_custom(escape_times_a, 
                      x_range, 
                      y_range, "Julia Set of System (2): q=3, λ=0.03", 
                      cmap="plasma")

escape_times_b = escape_time_system2_custom(width, height, 
                                            x_range, y_range, 
                                            max_iter, lambda_b, q_b)
plot_julia_set_custom(escape_times_b, x_range, 
                      y_range, "Julia Set of System (2): q=4, λ=0.3", 
                      cmap="viridis")
Figure 4: Synchronization of Julia Set
Figure 5: Synchronization of Julia Set

Now, we’re introducing an additional control parameter k, alongside another parameter μ/wnp​, into the iteration of the Julia set. This extends the controlled system to incorporate an extra term involving wn, which seems to further refine or synchronize the dynamics. The control method is applied to a base system similar to System (3), resulting in the following controlled map:

The equation provided is:

zn+1=12(zn+λznq)k[12(zn+λznq)12(wn+μwnp)]...(5)

where:

  • zn​: Represents the primary iterated complex variable.

  • wn: Represents a secondary complex variable interacting with zn​.

  • λ: A complex parameter controlling the rational map dynamics.

  • μ: Another complex parameter that modifies the wn​ dependent term.

  • p,q: Positive integers controlling the degree of the respective rational maps.

  • k: A feedback control parameter.

a modified version of a Julia set generated by introducing a control mechanism into the dynamics of a rational map. This mechanism alters the behavior of the system, enabling adjustments to its fractal properties based on a coupling or control parameter k. Let’s break down this system and analyze its mathematical structure:

  1. Base Map Contribution:

    12(zn+λznq)

    forms the unperturbed Julia set, as seen in System (2).

  2. Secondary Influence:

    12(wn+μwnp)

    introduces a coupling between the zn​ and wn​ dynamics, with the parameter μ adjusting this interaction.

  3. Control Mechanism: The term:

    k[12(zn+λznq)12(wn+μwnp)]

    applies feedback that synchronizes the zn​ and wn​ based maps, creating a controlled fractal structure. The control parameter k determines the extent of this feedback.

Mathematical Interpretation

This system describes a coupled rational map with feedback control, where:

  1. Coupling: The term involving wn​​ and μ/wnp introduces a synchronized perturbation to the primary Julia set, ensuring dynamic interactions between zn​​ and wn​​.

  2. Feedback: The parameter k acts as a regulator, controlling the influence of the coupling term and modifying the convergence or divergence of points in the fractal.

Algorithm to Generate Controlled Julia Sets of System (5)

Key Components

  1. Primary System ( zn ) ​:

    zn+1=12(zn+λznq)

    This is the baseline iteration for Julia sets.

  2. Secondary System ( wn ​):

    wn+1=12(wn+μwnp)

    Represents a synchronized auxiliary system.

  3. Feedback Control:

    zn+1 updated as: zn+1k[zn+1wn+1]

    Introduces controlled synchronization between zn​ and wn​, regulated by k.

Steps

  1. Initialize the Complex Grid:

    • Define the range of the complex plane (x and y axes).

    • Create a meshgrid for both z0​ and w0​ (initial states).

  2. Iterative Process:

    • For each point on the grid, iterate zn​ and wn​ simultaneously.

    • Use the control parameter k to adjust zn​​ based on its difference with wn​.

  3. Escape Condition:

    • Determine escape times based on the modulus ( |zn|>2 or |wn|>2 ).
  4. Visualization:

    • Map the escape times to a color palette (e.g., viridis or inferno).
Code
import numpy as np
import matplotlib.pyplot as plt

# Define the parameters for System (10)
def controlled_julia_system(z, w, lambda_val, mu, q, p, k):
    # Julia Map for z
    z_next = 0.5 * (z + lambda_val / z**q)
    # Julia Map for w
    w_next = 0.5 * (w + mu / w**p)
    # Controlled synchronization
    z_next = z_next - k * (z_next - w_next)
    return z_next, w_next

# Escape-time algorithm for Controlled Julia Set
def controlled_escape_time(width, height, x_range, y_range, max_iter, 
                           lambda_val, mu, q, p, k):
    # Set up the grid for z and w
    x_min, x_max = x_range
    y_min, y_max = y_range
    x = np.linspace(x_min, x_max, width)
    y = np.linspace(y_min, y_max, height)
    Z = x[np.newaxis, :] + 1j * y[:, np.newaxis]
    W = np.copy(Z)  # Start with identical grid for w
    
    # Initialize escape times
    escape_times = np.zeros(Z.shape, dtype=int)
    mask = np.full(Z.shape, True, dtype=bool)
    
    for i in range(max_iter):
        Z[mask], W[mask] = controlled_julia_system(Z[mask], 
                                         W[mask], lambda_val, mu, q, p, k)
        mask = mask & (np.abs(Z) <= 2) & (np.abs(W) <= 2)  # Points that have not escaped
        escape_times[~mask] = i

    return escape_times

# Plot the Controlled Julia Set
def plot_controlled_julia(escape_times, x_range, y_range, title):
    plt.figure(figsize=(10, 10))
    plt.imshow(escape_times, extent=(*x_range, *y_range), 
               cmap='plasma', origin='lower')
    plt.colorbar(label="Escape Iterations")
    plt.title(title)
    plt.xlabel("Re(z)")
    plt.ylabel("Im(z)")
    plt.show()

# Parameters for visualization
width = 800
height = 800
x_range = (-3, 3)
y_range = (-3, 3)
max_iter = 3000

# System Parameters for Visualization
lambda_val = 0.073j
mu = 0.1  # Adjust based on the paper's description
q, p = 2, 2  # Degrees of rational maps
k_values = [0.4]  # Control parameters

# Generate and plot Julia Sets for different k values
for k in k_values:
    escape_times = controlled_escape_time(width, height,
                                          x_range, y_range, 
                                          max_iter, lambda_val, mu, q, p, k)
    plot_controlled_julia(escape_times, x_range, 
                          y_range, f"Controlled Julia Set (k={k})")

Controlled System (5) when q=2,p=2,λ=0.073i

The changing of Julia sets of the controlled system (5) when q=2,p=2,λ=0.073i demonstrates the dynamic interplay between the driving and response systems under varying control parameter k. As k evolves, the fractal structures of the Julia sets undergo significant transformations, highlighting the system’s sensitivity to the coupling strength. These variations provide insights into the controlled synchronization of complex dynamical systems, showcasing intricate transitions in the topology of the Julia sets.

Figure 6: controlled system(5)

controlled system(5)

controlled system(5)

controlled system(5)
Figure 7: controlled system(5)
Figure 8: controlled system(5)
Figure 9: controlled system(5)
Figure 10: controlled system(5)

This emphasizes the critical role of feedback control in manipulating complex dynamical systems and offers valuable insights into the sensitive dependence of fractal geometries on system parameters.

Controlled System (5) when q=2,p=3,λ=0.073i,μ=0.1

The changing of julia sets of the controlled system (5) q=2,p=3,λ=0.073i,μ=0.1 when showcases the dynamic influence of parameter k on the evolution of the fractal geometry.

Figure 11: controlled system(5)
Figure 12: controlled system(5)
Figure 13: controlled system(5)
Figure 14: controlled system(5)
Figure 15: controlled system(5)

controlled system(5)

This variation emphasizes the sensitivity of the controlled system to specific parameter configurations, resulting in rich, intricate transformations of the Julia sets. These visualizations reveal the complex yet orderly nature of controlled dynamical systems, where stability and chaos coexist in fascinating patterns.

Controlled System (5) when q=2,p=3,λ=0.073i,μ=0.03

The exploration of the control system q=2,p=3,λ=0.073i,μ=0.03 reveals intricate fractal dynamics driven by the interplay of these parameters. Here, the coupling constants λ and μ work together to modulate the system’s feedback and synchronization mechanisms. The influence of μ=0.03 introduces additional layers of complexity, shaping the Julia sets into unique geometrical patterns as the control parameter k is varied.

Code
import numpy as np
import matplotlib.pyplot as plt

# Define the parameters for System (10)
def controlled_julia_system(z, w, lambda_val, mu, q, p, k):
    # Julia Map for z
    z_next = 0.5 * (z + lambda_val / z**q)
    # Julia Map for w
    w_next = 0.5 * (w + mu / w**p)
    # Controlled synchronization
    z_next = z_next - k * (z_next - w_next)
    return z_next, w_next

# Escape-time algorithm for Controlled Julia Set
def controlled_escape_time(width, height, x_range, y_range, max_iter, 
                           lambda_val, mu, q, p, k):
    # Set up the grid for z and w
    x_min, x_max = x_range
    y_min, y_max = y_range
    x = np.linspace(x_min, x_max, width)
    y = np.linspace(y_min, y_max, height)
    Z = x[np.newaxis, :] + 1j * y[:, np.newaxis]
    W = np.copy(Z)  # Start with identical grid for w
    
    # Initialize escape times
    escape_times = np.zeros(Z.shape, dtype=int)
    mask = np.full(Z.shape, True, dtype=bool)
    
    for i in range(max_iter):
        Z[mask], W[mask] = controlled_julia_system(Z[mask], 
                                         W[mask], lambda_val, mu, q, p, k)
        mask = mask & (np.abs(Z) <= 2) & (np.abs(W) <= 2)  # Points that have not escaped
        escape_times[~mask] = i

    return escape_times

# Plot the Controlled Julia Set
def plot_controlled_julia(escape_times, x_range, y_range, title):
    plt.figure(figsize=(10, 10))
    plt.imshow(escape_times, extent=(*x_range, *y_range), 
               cmap='plasma', origin='lower')
    plt.colorbar(label="Escape Iterations")
    plt.title(title)
    plt.xlabel("Re(z)")
    plt.ylabel("Im(z)")
    plt.show()

# Parameters for visualization
width = 800
height = 800
x_range = (-3, 3)
y_range = (-3, 3)
max_iter = 500

# System Parameters for Visualization
lambda_val = 0.073j
mu = 0.03  # Adjust based on the paper's description
q, p = 2, 3  # Degrees of rational maps
k_values = [0.1,0.4,0.6,0.2,0.96,0.98,0.005, 0.05, 0.75]  # Control parameters

# Generate and plot Julia Sets for different k values
for k in k_values:
    escape_times = controlled_escape_time(width, height,
                                          x_range, y_range, 
                                          max_iter, lambda_val, mu, q, p, k)
    plot_controlled_julia(escape_times, x_range, 
                          y_range, f"Controlled Julia Set (k={k})")
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Figure 23

This combination of parameters highlights the nuanced transitions between stability and chaos in the system, offering deeper insights into the fractal structures and their dependence on the controlled feedback. Such visualizations exemplify the delicate balance between system parameters in driving complex, visually striking dynamics.

Conclusion

In this paper, we have discussed the control and synchronization of Julia sets of the complex perturbed rational maps zn+1=12(zn+λznq), where infinity is regarded as a fixed point to be controlled. In many control methods, the fixed point of the system is finite. However, the fixed point of the complex perturbed rational maps is infinity. In order to avoid the unlimitedness of the fixed point, we take the optimal control function method to control the Julia sets of the complex perturbed rational maps since the fixed point could not appear in the control item. Through the control of Julia sets, we have that Julia sets of the perturbed rational maps are shrinking with the increasing control parameter k. By taking an item in the optimal control function to be the driving item, the synchronization of Julia sets with different system parameters in the perturbed rational maps is also studied. This idea provides a method to discuss the relation and changing of two different Julia sets but not a single one and we can make one Julia set change to be another.

References

  1. Amritkar, R. E. & Gupte, N. [1993] “Synchronization of chaotic orbits: The effect of a finite time step,” Phys. Rev. E 47, 3889–3895.

  2. Carleson, L. C. & Gamelin, T. W. [1993] Complex Dynamics (Springer-Verlag, NY).

  3. Beck, C. [1999] “Physical meaning for Mandelbrot and Julia sets,” Physica D 125, 171–182.

  4. Zhang, Y. & Sun, W. [2011] “Synchronization and coupling of Mandelbrot sets,” Nonlin. Dyn. 64, 59–63.

  5. Zhang, Y., Sun, W. & Liu, C. [2010] “Control and synchronization of second Julia sets,” Chin. Phys. B 19, 050512.

  6. Kocarev, L. & Parlitz, U. [1996] “Synchronizing spatiotemporal chaos in coupled nonlinear oscillators,” Phys. Rev. Lett. 77, 2206–2209.