Moduli space SL_2(ℤ)\ℂ for complex elliptic curves

Visualization of the moduli space interpretation SL_2(ℤ)\ℂ as a moduli space for complex elliptic curves.

You are now following this Submission

The complex upper halfplane with SL_2(ℤ) has a moduli space interpretation as parametrizing complex elliptic curves.
What the project does
Given τ, the project visualizes the elliptic curve ℂ/Λ_τ where Λ_τ = ℤ + ℤ·τ, and generates the following plots:
  1. Fundamental domain (moduli) plot
  • Draws the standard SL_2(ℤ) fundamental domain 𝔽 ⊂ ℍ.
  • Reduces the input τ to the representative τ_FD ∈ 𝔽 (via an explicit SL_2(ℤ) transformation) and marks τ_FD on the plot.
  1. Lattice plot in the complex plane
  • Plots lattice points of Λ_τ in ℂ and the fundamental parallelogram.
  • Marks the spanning vectors ω1 = 1 (red) and ω2 = τ (blue).
  1. Torus plot for ℂ/Λ_τ
  • Displays a standard embedded torus as a topological model of the quotient ℂ/Λ_τ.
  • Highlights the two generator cycles corresponding to ω1 and ω2 in red/blue.
  1. 3D ℘-surface visualization
  • Computes Weierstrass ℘(z) and ℘′(z) using explicit truncated lattice sums on a grid in a fundamental parallelogram (avoiding poles near lattice points).
  • Plots the 3D objectz ↦ (Re(℘(z)), Im(℘(z)), Re(℘′(z))) ∈ ℝ^3with clear axis labels and title.
  1. Automatic on-screen animation (30 frames)
  • Runs automatically when you execute main_demo.m.
  • For θ running from 0 to 2π (30 frames), displays the 3D plot ofz ↦ (Re(℘(z)), Im(℘(z)), cos(θ)·Re(℘′(z)) + sin(θ)·Im(℘′(z))) ∈ ℝ^3
  • Shows each frame for ~0.5 seconds and stops after the final frame.
  1. Real 2D Weierstrass curve plot (only if meaningful)
  • Computes invariants g2(τ), g3(τ) from truncated Eisenstein sums.
  • If the associated real model is numerically sensible (e.g. j(τ) is approximately real), plots the real affine curvey^2 = 4x^3 − g2 x − g3restricted correctly to the real locus (no spurious x-axis segments).
  • The plotting guarantees the correct geometry: for each fixed y there are at most 3 real x-values (as expected from a cubic), and the default example τ = i has the correct qualitative shape.
Input format
  • Main input: a single complex number tau with imag(tau) > 0 (a point in the upper half-plane).
  • Set tau by editing the first lines of main_demo.m, e.g. tau = 1i for the square lattice.
  • Optional speed/accuracy parameters (grid sizes, lattice truncation, tolerances, animation settings) are also set in main_demo.m and have safe defaults.
How to run
  1. Run startup.m (adds the project folders to the MATLAB path).
  2. Run main_demo.m.
  3. Edit tau in main_demo.m and rerun to explore different elliptic curves.

Cite As

Julia (2026). Moduli space SL_2(ℤ)\ℂ for complex elliptic curves (https://www.mathworks.com/matlabcentral/fileexchange/183204-moduli-space-sl_2-for-complex-elliptic-curves), MATLAB Central File Exchange. Retrieved .

Tags

Add Tags

Add the first tag.

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.0.0