Chris Swierczewski's Website

# A Computational Theta Problem

May 9, 2014

Here is a computational problem given to me by Vinayak Vatsal. Given the Riemann theta function

$\theta(z, \Omega) = \sum_{n \in \mathbb{Z}^g} e^{2 \pi i \left( \tfrac{1}{2} n \cdot \Omega n + n \cdot z \right) }$

and related Riemann theta function with characteristic $[\alpha, \beta]$

$\theta[\alpha,\beta](z, \Omega) = \sum_{n \in \mathbb{Z}^g} e^{2 \pi i \left( \tfrac{1}{2} (n+\alpha) \cdot \Omega (n+\alpha) + (n + \alpha) \cdot (z + \beta) \right) }$

compute $\theta[\sigma,0](0, 2\tau)$ for $\tau = zA, zB$ and various $z \in \mathbb{C}, \text{Im}(z) > 0$ with $\sigma \in \{0, 1/2\}^3$. The definitions of the matrices $A,B \in \mathbb{C}^{3 \times 3}$ are

$A = \begin{pmatrix} 2 & 1 & 1 \\ 1 & 4 & 1 \\ 1 & 1 & 6 \end{pmatrix}, \qquad B = \begin{pmatrix} 23 & -5 & -3 \\ -5 & 11 & -1 \\ -3 & -1 & 7 \end{pmatrix}.$

Below are some computations done in an iPython notebook using abelfunctions. You can download the notebook itself here, which requires that abelfunctions be installed in order to execute.

## The Setup

In [1]:

In [2]:

In [3]:

## Fixed $z \in \mathbb{C}$, All Characteristics $\sigma \in \{0,1/2\}$

We (arbitrarily) choose $z = i$ and $z = 2i$. Although, the plots in the following section suggests that the choice of $z$ in the upper half plane doesn’t matter except, possibly, in convergence rate of the implementation of the Riemann theta function to the suggested value of the function. That is, it seems like the truncated sum of the Riemann theta function converges to the actual value as we add more terms faster for $\text{Im}(z)$ large.

In [4]:

In [5]:

Out[5]:

sigma.T: [[0 0 0]]      value: (1.00000697473+0j)
sigma.T: [[ 0.   0.   0.5]]      value: (6.52457377777e-09+0j)
sigma.T: [[ 0.   0.5  0. ]]      value: (6.9877095594e-06+0j)
sigma.T: [[ 0.   0.5  0.5]]      value: (2.2795992109e-14+0j)
sigma.T: [[ 0.5  0.   0. ]]      value: (0.00373488548776+0j)
sigma.T: [[ 0.5  0.   0.5]]      value: (1.21842677994e-11+0j)
sigma.T: [[ 0.5  0.5  0. ]]      value: (1.30369858713e-08+0j)
sigma.T: [[ 0.5  0.5  0.5]]      value: (1.58402415218e-19+0j)


In [6]:

Out[6]:

sigma.T: [[0 0 0]]      value: (1.00000000002+0j)
sigma.T: [[ 0.   0.   0.5]]      value: (4.24116597336e-17+0j)
sigma.T: [[ 0.   0.5  0. ]]      value: (1.21615991209e-11+0j)
sigma.T: [[ 0.   0.5  0.5]]      value: (5.15790006267e-28+0j)
sigma.T: [[ 0.5  0.   0. ]]      value: (6.97468471242e-06+0j)
sigma.T: [[ 0.5  0.   0.5]]      value: (1.47903977386e-22+0j)
sigma.T: [[ 0.5  0.5  0. ]]      value: (4.24116597336e-17+0j)
sigma.T: [[ 0.5  0.5  0.5]]      value: (6.27280941128e-39+0j)


In [7]:

Out[7]:

sigma.T: [[0 0 0]]      value: (1+0j)
sigma.T: [[ 0.   0.   0.5]]      value: (2.81426845749e-10+0j)
sigma.T: [[ 0.   0.5  0. ]]      value: (9.81431759353e-16+0j)
sigma.T: [[ 0.   0.5  0.5]]      value: (1.47903461596e-22+0j)
sigma.T: [[ 0.5  0.   0. ]]      value: (4.16240046723e-32+0j)
sigma.T: [[ 0.5  0.   0.5]]      value: (1.79873633572e-33+0j)
sigma.T: [[ 0.5  0.5  0. ]]      value: (1.79873633572e-33+0j)
sigma.T: [[ 0.5  0.5  0.5]]      value: (4.16240046723e-32+0j)


In [8]:

Out[8]:

sigma.T: [[0 0 0]]      value: (1+0j)
sigma.T: [[ 0.   0.   0.5]]      value: (7.9201069508e-20+0j)
sigma.T: [[ 0.   0.5  0. ]]      value: (9.63208298267e-31+0j)
sigma.T: [[ 0.   0.5  0.5]]      value: (2.18754339521e-44+0j)
sigma.T: [[ 0.5  0.   0. ]]      value: (1.73255776496e-63+0j)
sigma.T: [[ 0.5  0.   0.5]]      value: (3.23545240544e-66+0j)
sigma.T: [[ 0.5  0.5  0. ]]      value: (3.23545240544e-66+0j)
sigma.T: [[ 0.5  0.5  0.5]]      value: (1.73255776496e-63+0j)


## Varying $z \in \mathfrak{h}_1$, $\sigma = [0,0,0]$ and $\sigma = [1/2,0,0]$

We now draw contour plots for the real, imaginary, and absolute value of the theta function for various $z$ in the upper half plane. We chose $\sigma = [0,0,0]$ because it was the only characteristic resulting in a theta value of 1. We chose $\sigma = [1/2,0,0]$ because it seems to be the one most sensitive to changing $z$ and the furthest away from zero for small values of $z$.

In [9]:

In [10]:

In [11]:

Out[11]:

In [12]:

Out[12]: