RiemannTheta
Riemann theta function
Calling Sequence
Parameters
Description
Examples
References
RiemannTheta([z1, z2, ..., zg], B, dirs, epsilon, opt)
[z1, z2, ..., zg]
-
list of g complex numbers
B
g x g Riemann matrix
dirs
(optional) list of directional derivatives
epsilon
(optional) positive real number
opt
(optional) arguments
The Riemann theta function is defined by the sum over all g-dimensional integer vectors n of ⅇ2⁢I⁢π⁢n2·B·n+n·z, where . denotes scalar product and z=[z1, ..., zg]. This function is also called a multidimensional theta function, or a theta function with g variables.
The parameter B is a Riemann matrix, that is, a symmetric matrix whose imaginary part is strictly positive definite. This is required for the convergence of the series given above.
If the optional argument output=list is specified, the output is a list of two numbers [a, b] that represent the function ⅇa⁢b. Thus, a is the exponent of an exponential growth factor. For the Riemann theta function, b is purely oscillatory and of order 1. This separation of an exponential growth factor is convenient, since this factor is often irrelevant for applications.
The Riemann theta function is a holomorphic function in each component of [z1, ..., zg] and B. It is periodic with period 1 in each component of [z1, ..., zg]. The Riemann theta function is also even in each component of [z1, ..., zg].
The RiemannTheta function is a generalization to multiple variables of the Jacobi theta functions: RiemannThetaz,⁢Matrix1,b = JacobiTheta3⁡π⁢z,ⅇI⁢π⁢b.
The Riemann theta function is the building block from which all Abelian functions (generalizations of elliptic functions to multiple variables) on Riemann surfaces can be constructed. As such, it arises in the description of (quasi-)periodic solutions of integrable equations.
Directional derivatives of the Riemann theta functions are calculated using the third argument [v1, v2, ..., vn]. The empty list indicates that no derivative is taken. Here v1, ..., vn are Vectors or lists with g entries. The nth order directional derivative in the directions v1, v2, ..., vn is calculated, (grad^n(RiemannTheta))(v1, ..., vn). If n=1, this is the ordinary first-order directional derivative v1.grad(RiemannTheta).
Such directional derivatives are also holomorphic functions of all their arguments. If the optional argument output=list is specified, they are also given as [a, b], such that the function value is ⅇa⁢b. For these derivatives, b is no longer oscillatory; it may contain algebraically growing terms.
To specify the size of the absolute error of b in the list a,b, one can specify an optional argument 'epsilon=Value', a positive real number. This results in finitely many terms of the infinite sum being calculated such that the absolute error of b is bounded by Value.
If no value for epsilon is specified, the procedure is inert, no evaluation takes place. The inert form can be evaluated with evalf, which chooses epsilon = 0.1^Digits. Note that for plots it is best to specify a much larger value for epsilon, otherwise the plot will be unnecessarily slow. A value for epsilon around 0.01 or 0.001 is typically sufficiently small to produce an accurate plot.
Since derivatives contain algebraically growing terms (after removal of the exponential growth), approximating them uniformly is not possible. However, the user can specify an optional argument which gives the size of the square region around the origin over which the approximation is to be valid.
Note: The optional arguments such as this, or the optional argument output=list, can only be specified if the first four arguments are specified.
r3≔sqrt⁡−33:
M≔Matrix⁡2,2,1+2⁢r3,−1−r3,−1−r3,1+2⁢r3:
Check that M is a Riemann matrix.
LinearAlgebraEigenvalues⁡map⁡ℑ,M
333
r≔RiemannTheta⁡0,1+I10,M
r≔RiemannTheta⁡0,1+I10,1+2⁢I⁢33−1−I⁢33−1−I⁢331+2⁢I⁢33,
evalf⁡r
0.94677359831−2.5841529831×10−16⁢I
Calculating the directional derivative in the direction 1,I.
RiemannTheta⁡0,1,M,1,I,0.001
8.69198493952064×10−12−4.28709206653897×10−12⁢I
When epsilon is not specified, RiemannTheta is inert.
s≔RiemannTheta⁡0,1,M,1,I
s≔RiemannTheta⁡0,1,1+2⁢I⁢33−1−I⁢33−1−I⁢331+2⁢I⁢33,1,I
evalf⁡s
−6.6228589757×10−16−7.7965251542×10−16⁢I
Calculating a second-order directional derivative in the directions 1,0 and 0,1, that is, the second-order mixed derivative.
RiemannTheta⁡0,1,M,1,0,0,1,0.0001
−2.09141159919117−3.76792481049006×10−17⁢I
For plotting, it is best to plot using output=list and to plot the second part of the list.
A≔x,y↦RiemannTheta⁡x,y,M,,0.01,output=list2
plot3d⁡ℜ⁡A⁡x+I⁢y,0,x=0..1,y=0..4,grid=40,40
plot3d⁡ℜ⁡A⁡x+I⁢y,y−I⁢x,x=0..3,y=0..3,grid=50,50
plot⁡ℜ⁡A⁡I⁢x−x,0,x=0..6
Belekolos, E.D.; Bobenko, A.I.; Enolskii, V.Z.; Its, A.R.; and Matveev, V.B. Algebro-geometric approach to nonlinear-integrable equations. Springer-Verlag, 1994.
Deconinck, B.; Heil, M.; Bobenko, A.; van Hoeij, M.; and Schmies, M. "Computing Riemann Theta Functions." Math. Comp., Vol. 73. (2004): 1417-1442.
Mumford, D. Tata Lectures on Theta. Birkhauser, 1983-1984. Vols. 1-2.
See Also
algcurves[periodmatrix]
algcurves[Siegel]
evalf
JacobiTheta1
LinearAlgebra
plot
plot3d
Download Help Document