RiemannTheta - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


RiemannTheta

Riemann theta function

 

Calling Sequence

Parameters

Description

Examples

References

Calling Sequence

RiemannTheta([z1, z2, ..., zg], B, dirs, epsilon, opt)

Parameters

[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

Description

• 

The Riemann theta function is defined by the sum over all g-dimensional integer vectors n of ⅇ2Iπ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 ⅇab. 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 ⅇab.  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.

Examples

r3sqrt33:

MMatrix2,2,1+2r3,1r3,1r3,1+2r3:

Check that M is a Riemann matrix.

LinearAlgebraEigenvaluesmap,M

333

(1)

rRiemannTheta0,1+I10,M

rRiemannTheta0,1+I10,1+2I331I331I331+2I33,

(2)

evalfr

0.946773598312.5841529831×10−16I

(3)

Calculating the directional derivative in the direction 1,I.

RiemannTheta0,1,M,1,I,0.001

8.69198493952064×10−124.28709206653897×10−12I

(4)

When epsilon is not specified, RiemannTheta is inert.

sRiemannTheta0,1,M,1,I

sRiemannTheta0,1,1+2I331I331I331+2I33,1,I

(5)

evalfs

−6.6228589757×10−167.7965251542×10−16I

(6)

Calculating a second-order directional derivative in the directions 1,0 and 0,1, that is, the second-order mixed derivative.

RiemannTheta0,1,M,1,0,0,1,0.0001

−2.091411599191173.76792481049006×10−17I

(7)

For plotting, it is best to plot using output=list and to plot the second part of the list.

Ax,yRiemannThetax,y,M,,0.01,output=list2

Ax,yRiemannThetax,y,M,,0.01,output=list2

(8)

plot3dAx+Iy,0,x=0..1,y=0..4,grid=40,40

plot3dAx+Iy,yIx,x=0..3,y=0..3,grid=50,50

plotAIxx,0,x=0..6

References

  

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