theta {elliptic}R Documentation

Jacobi theta functions 1-4

Description

Computes Jacobi's four theta functions for complex z in terms of the parameter m or q.

Usage

theta1  (z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30)
theta2  (z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30)
theta3  (z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30)
theta4  (z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30)
theta.00(z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30)
theta.01(z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30)
theta.10(z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30)
theta.11(z, ignore=NULL, m=NULL, q=NULL, give.n=FALSE, maxiter=30)
Theta (u, m, ...)
Theta1(u, m, ...)
H (u, m, ...)
H1(u, m, ...)

Arguments

z, u

Complex argument of function

ignore

Dummy variable whose intention is to force the user to name the second argument either m or q.

m

Does not seem to have a name. The variable is introduced in section 16.1, p569

q

The nome q, defined in section 16.27, p576

give.n

Boolean with default FALSE meaning to return the function evaluation, and TRUE meaning to return a two element list, with first element the function evaluation, and second element the number of iterations used

maxiter

Maximum number of iterations used. Note that the series generally converge very quickly

...

In functions that take it, extra arguments passed to theta1() et seq; notably, maxiter

Details

Should have a tol argument.

Functions theta.00() eq seq are just wrappers for theta1() et seq, following Whittaker and Watson's terminology on p487; the notation does not appear in Abramowitz and Stegun.

Value

Returns a complex-valued object with the same attributes as either z, or (m or q), whichever wasn't recycled.

Author(s)

Robin K. S. Hankin

References

M. Abramowitz and I. A. Stegun 1965. Handbook of mathematical functions. New York: Dover

See Also

theta.neville

Examples


m <- 0.5
derivative <- function(small){(theta1(small,m=m)-theta1(0,m=m))/small}
right.hand.side1 <-  theta2(0,m=m)*theta3(0,m=m)*theta4(0,m=m)
right.hand.side2 <-  theta1.dash.zero(m)

derivative(1e-5)-right.hand.side1   #should be zero
derivative(1e-5)-right.hand.side2   #should be zero

[Package elliptic version 1.4-0 Index]