Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction...

40
Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps Calculus on Riemann Surfaces in Python Chris Swierczewski [email protected] University of Washington Department of Applied Mathematics Symbolic Computation Seminar North Carolina State University March 2013 March 19, 2013 1 / 40

Transcript of Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction...

Page 1: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Calculus on Riemann Surfaces in Python

Chris Swierczewski

[email protected]

University of WashingtonDepartment of Applied Mathematics

Symbolic Computation SeminarNorth Carolina State University

March 2013

March 19, 2013

1 / 40

Page 2: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

1 IntroductionAcknowledgements and MotivationRiemann Surfaces and Period Matrices

2 Algebraic ComponentsPuiseux SeriesSingularitiesHolomorphic Differentials

3 Geometric ComponentsAnalytic ContinuationMonodromyHomology

4 Riemann Matrices and Theta FunctionsRiemann MatricesRiemann Theta Functions

2 / 40

Page 3: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Table of Contents

1 IntroductionAcknowledgements and MotivationRiemann Surfaces and Period Matrices

2 Algebraic ComponentsPuiseux SeriesSingularitiesHolomorphic Differentials

3 Geometric ComponentsAnalytic ContinuationMonodromyHomology

4 Riemann Matrices and Theta FunctionsRiemann MatricesRiemann Theta Functions

3 / 40

Page 4: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Acknowledgements

Collaborators:

Bernard Deconinck: advisor, co-author of algcurves forMaple.

Grady Williams: undergraduate at UW, computing Riemanntheta functions using CUDA.

Primary references:

Mumford, “Tata Lectures on Theta I,II”

Bobenko, Klein, “Computational Approach to RiemannSurfaces”

Chapter 2 by Deconinck and Patterson, “Computing withPlane Algebraic Curves and Riemann Surfaces”

4 / 40

Page 5: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Motivation

Abelian functions: higher genus versions of elliptic functions.Periodic functions on Cg/Λ).

Any Abelian function can be expressed as a rational functionof the Riemann theta function θ : Cg × hg → C and itsderivatives.

θ(z,Ω) =∑n∈Zg

e2πi

(12n·Ωn+n·z

)

Algorithm for computing the Riemann theta function byDeconinck, et. al.

Period matrices corresponding to complex plane algebraiccurves appear in Abelian function theory.

5 / 40

Page 6: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Motivation

Additional applications of period matrices and Riemann thetafunctions:

Periodic solutions to integrable partial differential equations.(Dubrovin)

Bitangents of complex plane quartics.(Vinzant, Plaumann, Sturmfels)

Linear matrix representations of Helton-Vinnikov curves.(Vinzant, Plaumann, Sturmfels)

Igusa polynomials and Siegel modular forms.(Lauter, Yang)

6 / 40

Page 7: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Riemann Surfaces

Let f ∈ C[x, y]. The Riemann surface, X, corresponding to f isthe desingularization and compactification of

X = (x, y) ∈ C2 : f(x, y) = 0. (1)

Interpret X as a y-covering of the Riemann sphere C∗x. If

f(x, y) = an(x)yn + · · ·+ a1(x)y + a0(x)

then the covering is n-sheeted. Above all but finitely many x ∈ C∗x(the branch points of f) there are n distinct values of y ∈ Cy.

“Fibre at x” or “y-roots at x”.

7 / 40

Page 8: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Riemann Surfaces

X is homeomorphic a complex g-torus. The homology group of X

H1(X,Z)

is the space of all closed paths (cycles) on X. Basis consists of 2g cyclesa1, . . . , ag, b1, . . . , bg with the intersection properties

ai aj = 0, bi bj = 0, ai bj = δij .

Dual space of holomorphic differentials on X

Γ(X,Ω1)

has dimension g.8 / 40

Page 9: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Period Matrices and Riemann Matrices

Choose the normalized basis of Γ(X,Ω1) where.∮ai

ωj = δij ,

∮bi

ωj = Ωij ∈ C.

Period matrix (Ig×g Ω

)∈ Cg×2g

where Ω ∈ Cg×g is a Riemann matrix:

Ω = ΩT ,

Im Ω 0.

The period matrix is used to define the Jacobian of a Riemannsurface.

Jac(X) := Cg/(Ig×gZg + ΩZg)

9 / 40

Page 10: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Software: abelfunctions

abelfunctions is a Python library for computing with Riemannsurfaces and (eventually) Abelian functions.

A Python + C port of Deconinck, van Hoeij’s algcurves

package in Maple.

Open-source and free.

Uses numpy, scipy, sympy, networkx.

Available on GitHub:https://github.com/cswiercz/abelfunctions

10 / 40

Page 11: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Software: Path to Riemann Matrices

Puiseux Series

Monodromy

Integral Basis

Singularities

HomologyAnalytic Continuation

Riemann Matrices

Holomorphic Differentials

11 / 40

Page 12: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Table of Contents

1 IntroductionAcknowledgements and MotivationRiemann Surfaces and Period Matrices

2 Algebraic ComponentsPuiseux SeriesSingularitiesHolomorphic Differentials

3 Geometric ComponentsAnalytic ContinuationMonodromyHomology

4 Riemann Matrices and Theta FunctionsRiemann MatricesRiemann Theta Functions

12 / 40

Page 13: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Puiseux Series

Taylor and Laurent series locally describe single-valued functions ata point. Puiseux series are a multi-valued extension of these.Can locally describe

regular points,

branch points,

singular points.

“point” = a value in the complex x-plane. “place” a location on the

Riemann surface, X.

13 / 40

Page 14: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Puiseux Series: Definition

A place P on a Riemann surface X lying above some x = α isdetermined by expansions of the form

P =

x = α+ λte,y =

∑∞k=0 βkt

nk(2)

where · · · < nk < nk+1 < · · · with only finitely many negativeexponents. Solve for t = t(x):

y = y(x) =

∞∑k=0

αk(x− α)nk/e.

Local description of y as a function of x on X.

Algorithm by D. Duval using Newton polygons.

14 / 40

Page 15: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Demo

Puiseux series at places on complex plane algebraic curves.

15 / 40

Page 16: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Singularities

Must resolve the singularities of an algebraic curve to obtaincorresponding Riemann surface. We use Puiseux series to do so.

Puiseux series define local behavior. =⇒ How to go around /pass through singular points.

Use to determine coordinate chart at each singular point,providing the manifold structure.

Definition: Singularities

Let F (X,Y, Z) ∈ C[X,Y, Z] be the homogenization off(x, y) ∈ C[x, y]. The singular points, P ∈ P 2C, occur where

∂XF (P ) = ∂Y F (P ) = ∂ZF (P ) = 0

16 / 40

Page 17: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Singularity Data

Important pieces of information corresponding to singular pointsP ∈ P 2C.

multiplicity: the sum of the ramification indices of thePuiseux series at P .

delta invariant: the number of double points at P . Appearsin the genus formula: if d is the total degree of f then thegenus of the curves corresp. Riemann surface is

g = (d− 1)(d− 2)/2−∑P∈X

δP

branching number: the number of Puiseux series at P .

17 / 40

Page 18: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Demo

Singularities. Computing the genus of a curve.

18 / 40

Page 19: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Differentials

Holomorphic differentials on X : f(x, y) = 0 are all of the form

ωk =Pk(x, y)

∂yf(x, y)dx, Pk(x, y) =

∑i+j≤d−3

ckijxiyj

where d is the degree of f and Pk(x, y) are the “adjointpolynomials” of f are chosen such that ωk has no poles on X.

If X is nonsingular then all polynomials Pk(x, y) of degree≤ d− 3 give rise to a holomorphic differential. Consistentwith genus formula:

g = (d− 1)(d− 2)/2

If X has singularities then more conditions are imposed on thePk(x, y)’s. (Pk must, at least, vanish at the singularities.)

19 / 40

Page 20: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Algorithm

Based on observation by Mnuk: let

OA(X) = C[x, y]/(f) ⊂ C(x, y).

Then,

Adj(X) =P (x, y) ∈ C[x, y] ‖ OA(X) · P (x, y) ⊂ C[x, y]

.

OA(X) is finite dimensional over C[x, y]. Let, β1, . . . , βm be abasis. Then Mnuk’s theorem is equivalent to requiring

βjP (x, y) ∈ C[x, y],∀j = 1, . . . ,m.

Algorithm for computing βj is due to van Hoeij and uses Puiseuxseries.

20 / 40

Page 21: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Demo

Integral bases of algebraic functions fields and bases of the spaceof holomorphic differentials.

21 / 40

Page 22: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Table of Contents

1 IntroductionAcknowledgements and MotivationRiemann Surfaces and Period Matrices

2 Algebraic ComponentsPuiseux SeriesSingularitiesHolomorphic Differentials

3 Geometric ComponentsAnalytic ContinuationMonodromyHomology

4 Riemann Matrices and Theta FunctionsRiemann MatricesRiemann Theta Functions

22 / 40

Page 23: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Continuing y-Roots Along x-Paths

The y-roots / fibre y = y1, . . . , yn ⊂ Cy of

f(x, y) =

n∑j=0

aj(x)yj = 0

are continuous as a function of x ∈ Cx. Much of the “geometricside” involves continuing a fibre y along a path γ ⊂ Cx.

In particular, we select a “base point” a ∈ Cx and an orderingof the y-roots at that point. (yj is on sheet j of the Riemannsurface.)

23 / 40

Page 24: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Continuing y-roots Along x-Paths

Two-step process:1 Taylor step.

A proper step size is determined based on the “movement” ofall of the roots.

Let yi = (yi1, . . . , yin) be the fibre at xi ∈ Cx and

dxi = xi+1 − xi. Then

yapproxj = yij − dxif(xi, y

ij)

∂yf(xi, yij)

2 Compute roots yi+1j at xi+1.

3 Determine if Taylor approximates yapproxj are “close enough”to the new roots.

If so, match approximates with new roots and iterate.If not, take smaller step and try again.

24 / 40

Page 25: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Monodromy Group

Let b1, · · · , bN ∈ C∗x be the branch points of f . The monodromygroup of f is the fundamental group

π1(C∗x\b1, . . . , bN, a).

where a ∈ Cx is a fixed point. (Not a branch point.)

Specifically, we compute the fibrey = y1, . . . , yn at x = a andsee how the roots are permutedwhen we analytically continuearound each branch point bi.

25 / 40

Page 26: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Monodromy: Algorithm

1 Fix a base point a ∈ Cx andan ordering of the fibre yabove it. (Fixed for allfuture comptuations.)

2 Fix an ordering of thebranch points, bi.

3 Compute a minimalspanning tree with thebranch points as the nodes.The root is the branch pointclosest to a. Draw circularpaths around each branchpoint.

For numerical accuracypurposes we stay awayfrom the branch points.

Figure: The collection of all x-pathsover which we analytically continuethe “base fibre”.

26 / 40

Page 27: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Monodromy: Algorithm

4 Determine appropriatemonodromy group paths,given the above ordering.

The path around branchpoint bi must lie belowthe path around branchpoint bi+1.

5 Analytically continue thebase fibre along each path.

6 When returning to the basepoint, record how the fibreelements / sheets werepermuted.

Figure: The collection of all x-pathsover which we analytically continuethe “base fibre”.

27 / 40

Page 28: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Demo

The monodromy group π1 (C∗x\b0, . . . , bN, a)

28 / 40

Page 29: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Homology H1(X,Z)

Monodromy says how to get from one sheet to another on X byanalytically continuing along closed paths in Cx. But we wantclosed paths on the Riemann surface, itself.

Algorithm due to Tretkoff and Tretkoff takes monodromyinformation and returns a- and b-cycles.

“Base place” P0 = (a, y1).

Linear combinations of intermediate “c-cycles”.

29 / 40

Page 30: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Demo

Homology basis of X: H1(X,Z)

30 / 40

Page 31: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Table of Contents

1 IntroductionAcknowledgements and MotivationRiemann Surfaces and Period Matrices

2 Algebraic ComponentsPuiseux SeriesSingularitiesHolomorphic Differentials

3 Geometric ComponentsAnalytic ContinuationMonodromyHomology

4 Riemann Matrices and Theta FunctionsRiemann MatricesRiemann Theta Functions

31 / 40

Page 32: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Riemann Matrices: Putting It Together

Puiseux Series

Monodromy

Integral Basis

Singularities

HomologyAnalytic Continuation

Riemann Matrices

Holomorphic Differentials

32 / 40

Page 33: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Riemann Matrices

Compute

Aij =

∮ai

ωj Bij =

∮bi

ωj

using Gauss-Legendre quadrature. In particular, parameterize thepath γ ∈ H1(X,Z) by t ∈ [0, 1] and compute∫

γω =

∫ 1

0ω (x(t), y(x(t)))x′(t)dt.

Set,Ω = A−1B.

(This Ω is equal to that which is chosen by normalizing our basisof holomorphic differentials.)

33 / 40

Page 34: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Demo

Period matrices and Riemann matrices.

34 / 40

Page 35: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Riemann Theta Functions

Building block of Abelian functions: θ : Cg × hg → C.

θ(z,Ω) =∑n∈Zg

e2πi

(12n·Ωn+n·z

)

Algorithm by Deconinck, et. al.: separates doubly exponentiallygrowing part and “oscillatory part”.

Fast Python + C implementation. (Multiprecise on the way.)

Optional CUDA-enabled implementation by S. and Williams.

35 / 40

Page 36: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Riemann Theta Functions: Example

We plot real and imaginary parts of the oscillatory part of

θ ([x+ iy, 0, 0],Ω)

for x ∈ [0, 1], y ∈ [0, 3] with N = 65536 z = [x+ iy, 0, 0] valuesand for

Ω =

−12 + i 1

2 −12 i −

12 −

12 i

12 −

12 i i 0

−12 −

12 i 0 i

36 / 40

Page 37: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Demo

CUDA evaluation of a slice of a genus g = 3 Riemann thetafunction.

37 / 40

Page 38: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Thank You

[email protected]

abelfunctionshttps://github.com/cswiercz/abelfunctions

38 / 40

Page 39: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Future Work

Performance improvements.

csympy by Ondrej Certık.Use Cython and GMP for numerical portions.

Abel Map A : X → Jac(X)

A(P ) =

(∫ P

P0

ω1, . . . ,

∫ P

P0

ωg

)(3)

(Ph.D. thesis work of Matthew Patterson.)

Vector of Riemann Constants: 2K ≡ −A(C) where C is thecanonical class divisor. (The equivalence class of all divisors ofholomorphic differentials.)(Ph.D. thesis work of Matthew Patterson.)

39 / 40

Page 40: Calculus on Riemann Surfaces in Pythoncswiercz.info/assets/files/ncsu-symbolic.pdf · Introduction Algebraic Components Geometric Components Riemann Matrices and Theta FunctionsNext

Introduction Algebraic Components Geometric Components Riemann Matrices and Theta Functions Next Steps

Future Work

Fay’s Prime Form: Let α, β ∈ [0, 1)g be such that(∂

∂z1θ[α, β](0,Ω), . . . ,

∂zgθ[α, β](0,Ω)

)6= 0.

Define the holomorphic differential

ζ =

g∑j=1

ωj∂

∂zjθ[α, β](0,Ω).

Then the prime form E : X ×X → C is defined by

E(P1, P2) = θ[α, β](∫ P2

P1ω,Ω

)/√ζ(P1)

√ζ(P2)

where ω = (ω1, . . . , ωg).

40 / 40