WeierstrassZeta[u,{g2,g3}]
gives the Weierstrass zeta function
.
WeierstrassZeta
WeierstrassZeta[u,{g2,g3}]
gives the Weierstrass zeta function
.
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
- WeierstrassZeta is related to WeierstrassP through the differential equation
. - WeierstrassZeta is not periodic and is therefore not strictly an elliptic function.
- For certain special arguments, WeierstrassZeta automatically evaluates to exact values.
- WeierstrassZeta can be evaluated to arbitrary numerical precision.
- WeierstrassZeta can be used with CenteredInterval objects. »
Examples
open all close allBasic Examples (4)
WeierstrassZeta[3., {1, 2}]Plot over a subset of the reals:
Plot[WeierstrassZeta[x, {1, 2}], {x, -4, 4}]Plot over a subset of the complexes:
ComplexPlot3D[WeierstrassZeta[z, {1, 2}], {z, -2 - 2I, 2 + 2I}, PlotLegends -> Automatic]Series expansion at the origin:
Series[WeierstrassZeta[z, {g2, g3}], {z, 0, 12}]Scope (30)
Numerical Evaluation (7)
WeierstrassZeta[.7, {1, 2}]WeierstrassZeta[32., {3, 2}]N[WeierstrassZeta[2 / 3, {1, 2}], 50]//ChopThe precision of the output tracks the precision of the input:
WeierstrassZeta[2.111111111111111111111111, {1, 2}]//ChopWeierstrassZeta[2. + I, {I, I + 2}]Evaluate efficiently at high precision:
WeierstrassZeta[12`100, {3, 2}]//Timing//ChopWeierstrassZeta[15`10000, {4, 2}];//Timing//QuietWeierstrassZeta can be used with CenteredInterval objects:
WeierstrassZeta [CenteredInterval[1 / 2 + I / 3, (1 + I) / 10 ^ 9], {CenteredInterval[1 + I, (1 + I) / 10 ^ 9], CenteredInterval[3 / 4, 1 / 10 ^ 9]}]Compute average-case statistical intervals using Around:
WeierstrassZeta[ Around[2, 0.01], {12, -8}]Compute the elementwise values of an array:
WeierstrassZeta[{{1 / 2, -1}, {1, 1 / 2}}, {12, -8}]Or compute the matrix WeierstrassZeta function using MatrixFunction:
MatrixFunction[WeierstrassZeta[#, {12, -8}]&, {{1 / 2, 1}, {0, 1 / 2}}]Specific Values (3)
WeierstrassZeta[0, {1, 1}]//QuietWeierstrassZeta automatically evaluates to simpler functions for certain parameters:
WeierstrassZeta[z, {12, 8}]Find a value of x for which WeierstrassZeta[x,1/2,1/2]=3:
xval = x /. FindRoot[WeierstrassZeta[x, {1 / 2, 1 / 2} ] == 3, {x, 2}]//ChopPlot[WeierstrassZeta[x, {1 / 2, 1 / 2} ], {x, -5, 5}, Epilog -> Style[Point[{xval, WeierstrassZeta[xval, {1 / 2, 1 / 2} ]}], PointSize[Large], Red]]Visualization (2)
Plot the WeierstrassZeta function for various parameters:
Plot[{WeierstrassZeta[u, {2, 3}], WeierstrassZeta[u, {4, 3}], WeierstrassZeta[u, {4, 5}]}, {u, -4, 4}]ComplexContourPlot[Re[WeierstrassZeta[z, {2, 1}]], {z, -4 - 4 I, 4 + 4 I}, Contours -> 20]ComplexContourPlot[Im[WeierstrassZeta[z, {2, 1}]], {z, -4 - 4 I, 4 + 4 I}, Contours -> 20]Function Properties (10)
Real domain of WeierstrassZeta:
FunctionDomain[WeierstrassZeta[x, {g1, g2}], {x, g1, g2}]//FullSimplifyWeierstrassZeta is an odd function with respect to x:
WeierstrassZeta[-x, {Subscript[``g``, 2], Subscript[``g``, 3]}]WeierstrassZeta threads elementwise over lists in its first argument:
WeierstrassZeta[{u1, u2}, {g2, g3}]WeierstrassZeta is not an analytic function:
FunctionAnalytic[WeierstrassZeta[x, {g1, g2}], x, Assumptions -> {g1, g2}∈ℝ]It has both singularities and discontinuities:
FunctionSingularities[WeierstrassZeta[x, {g1, g2}], x]//FullSimplifyFunctionDiscontinuities[WeierstrassZeta[x, {g1, g2}], x]//FullSimplify
is neither nondecreasing nor nonincreasing:
FunctionMonotonicity[WeierstrassZeta[x, {1, 0}], x]FunctionInjective[WeierstrassZeta[x, {1 / 2, 1 / 2}], x]//QuietPlot[{WeierstrassZeta[x, {1 / 2, 1 / 2}], 2}, {x, -6, 6}]FunctionSurjective[WeierstrassZeta[x, {3, 1}], x]Plot[{WeierstrassZeta[x, {3, 1}], -20}, {x, -5, 5}]
is neither non-negative nor non-positive:
FunctionSign[WeierstrassZeta[x, {1, 2}], x]
is neither convex nor concave:
FunctionConvexity[WeierstrassZeta[x, {1, 0}], x]//QuietTraditionalForm formatting:
WeierstrassZeta[z, {Subscript[g, 2], Subscript[g, 3]}] // TraditionalFormDifferentiation (2)
First derivative with respect to
:
D[WeierstrassZeta[u, {Subscript[``g``, 2], Subscript[``g``, 3]}], u]Higher derivatives with respect to
:
Table[D[WeierstrassZeta[u, {Subscript[``g``, 2], Subscript[``g``, 3]}], {u, k}], {k, 1, 4}]//FullSimplifyPlot the higher derivatives with respect to
:
Plot[Evaluate [% /. { Subscript[``g``, 2] -> 2, Subscript[``g``, 3] -> 3}, {u, -2.5, 2.5}, PlotLegends -> {"First Derivative", "Second Derivative", "Third Derivative", "Fourth Derivative"}]]Integration (3)
Compute the indefinite integral using Integrate:
Integrate[WeierstrassZeta[z, {g2, g3}], z]FullSimplify[D[%, z]]Integrate[WeierstrassZeta[z, {g2, g3}], {z, 1, 4}]Integrate[ WeierstrassZeta[z / 2, {2, 3}], z]//FullSimplifyIntegrate[z WeierstrassZeta[z^2, {1, 2}] , {z, 1, 4}]//FullSimplifySeries Expansions (3)
Find the Taylor expansion using Series:
Series[WeierstrassZeta[x, {g2, g3}], {x, 0, 10}]Plots of the first three approximations around
:
terms = Normal@Table[Series[WeierstrassZeta[x, {2, 3}], {x, 0, m}], {m, 1, 5, 2}];
Plot[{WeierstrassZeta[x, {2, 3}], terms}, {x, -5, 5}]Find the series expansion for an arbitrary symbolic direction
:
Series[WeierstrassZeta[x, {g2, g3}], {x, DirectedInfinity[z], 1}, Assumptions -> x > 0]// Normal//FullSimplifyTaylor expansion at a generic point:
Series[WeierstrassZeta[x, {g2, g3}], {x, x0, 2}]//Normal// FullSimplifyApplications (3)
The 2D equations of motion of two point-like vertices having closed trajectories:
Module[{ω1 = 1, ω2 = 1 + I, g2, g3, Δ, ϕ},
{g2, g3} = WeierstrassInvariants[{ω1, ω2}];Δ = 4 Abs[Im[ω1 Conjugate[ω2]]];ϕ[z_] = WeierstrassZeta[z, {g2, g3}] - (π Conjugate[z]/Δ) + ((π/Δ) - (WeierstrassZeta[ω1, {g2, g3}]/ω1)) z;{Derivative[1][z[1]][t] == I Conjugate[ ϕ[z[1][t] - z[2][t]]] / (2π), Derivative[1][z[2]][t] == I Conjugate[-3ϕ[-z[1][t] + z[2][t]]] / (2π)}]Solve the equations numerically:
NDSolve[Join[%, {z[1][0] == -0.2 + 0.5I, z[2][0] == 0.3 - 0.5I}], {z[1], z[2]}, {t, 0, 50}]ParametricPlot[{ReIm[z[1][t]], ReIm[z[2][t]]} /. %, {t, 0, 50}]The system of coupled nonlinear differential equations for a heavy symmetric top:
topODEs = {ω1'[t] == -m ω2[t] ω3[t] - x2[t], ω2'[t] == m ω3[t] ω1[t] + x1[t], ω3'[t] == 0, x1'[t] == x2[t] ω3[t] - x3[t] ω2[t], x2'[t] == x3[t] ω1[t] - x1[t] ω3[t], x3'[t] == x1[t] ω2[t] - x2[t] ω1[t]};The solutions can be expressed through Weierstrass sigma and zeta functions:
{ω1[t_], ω2[t_], ω3[t_], x1[t_], x2[t_], x3[t_]} = With[{σ = WeierstrassSigma[#, {g2, g3}]&, ζ = WeierstrassZeta[#, {g2, g3}]&},
Module[{α = (-(-1 + m) (ζ[c1] + ζ[c2]) + 2 m ζ[c1 + c2]/1 + m)}, {((-1)^3 / 4 E^-t α - β (E^2 (t α + β) σ[-c1 - c2 + t] + I σ[c1 + c2 + t])/σ[c1 + c2] σ[t]), ((-1)^1 / 4 E^-t α - β (-E^2 (t α + β) σ[-c1 - c2 + t] + I σ[c1 + c2 + t])/σ[c1 + c2] σ[t]), -I (α + ζ[c1] + ζ[c2] - 2 ζ[c1 + c2]), -((-1)^1 / 4 E^-t α - β (E^2 (t α + β) σ[-c1 + t] σ[-c2 + t] + I σ[c1 + t] σ[c2 + t])) / (σ[c1] σ[c2] σ[t]^2), ((-1)^3 / 4 E^-t α - β (-E^2 (t α + β) σ[-c1 + t] σ[-c2 + t] + I σ[c1 + t] σ[c2 + t])) / (σ[c1] σ[c2] σ[t]^2), (σ[c2]^2 σ[-c1 + t] σ[c1 + t] + σ[c1]^2 σ[-c2 + t] σ[c2 + t]/σ[c1]^2 σ[c2]^2 σ[t]^2)}]];Numerically check the correctness of the solutions:
topODEs /. (# -> RandomReal[WorkingPrecision -> 50]& /@ {c1, c2, β, g2, g3, t, m})Compute the invariants corresponding to the lemniscatic case of the Weierstrass elliptic function, in which the ratio of the periods is
:
{g2, g3} = WeierstrassInvariants[{(1/2), (I/2)}]Parameterization of the Chen–Gackstatter minimal surface in terms of Weierstrass functions:
x[w_] := Re[π w - WeierstrassZeta[w, {g2, 0}] - (π/g2)WeierstrassPPrime[w, {g2, 0}]]y[w_] := Im[π w + WeierstrassZeta[w, {g2, 0}] - (π/g2)WeierstrassPPrime[w, {g2, 0}]]z[w_] := Sqrt[(6π/g2)]Re[WeierstrassP[w, {g2, 0}]]ParametricPlot3D[With[{w = r E^I θ}, {x[w], y[w], z[w]}], {r, 1 / 5, 4 / 5}, {θ, -π, π}, Mesh -> False]Properties & Relations (5)
Derivatives of WeierstrassZeta:
Table[D[WeierstrassZeta[z, {g2, g3}], {z, k}], {k, 3}]Integrate[WeierstrassZeta[z, {g2, g3}], z]WeierstrassZeta is an odd function:
WeierstrassZeta[-z, {g2, g3}]WeierstrassZeta is quasi-periodic, with quasi-periods equal to periods of WeierstrassP:
WeierstrassP[z + 2WeierstrassHalfPeriodW1[{g2, g3}], {g2, g3}]WeierstrassZeta[z + 2WeierstrassHalfPeriodW1[{g2, g3}], {g2, g3}]WeierstrassZeta[z + 2WeierstrassHalfPeriodW2[{g2, g3}], {g2, g3}]WeierstrassZeta[z + 2WeierstrassHalfPeriodW3[{g2, g3}], {g2, g3}]Values of WeierstrassZeta at the half-periods of WeierstrassP:
WeierstrassZeta[WeierstrassHalfPeriodW1[{g2, g3}], {g2, g3}]WeierstrassZeta[WeierstrassHalfPeriodW2[{g2, g3}], {g2, g3}]WeierstrassZeta[WeierstrassHalfPeriodW3[{g2, g3}], {g2, g3}]Possible Issues (1)
Neat Examples (1)
Plot the quasi‐doubly periodic WeierstrassZeta over the complex plane:
Module[{g2 = 2, g3 = 1 + I, ω1, ω3}, {ω1, ω3} = WeierstrassHalfPeriods[{g2, g3}]//N;ParametricPlot3D[{Re[x ω1 + y ω3], Im[x ω1 + y ω3], Re[WeierstrassZeta[x ω1 + y ω3, {g2, g3}]]}, {x, -3, 3}, {y, -3, 3}, PlotRange -> {-3, 3}, BoxRatios -> {1, 1, 1 / 2}, Mesh -> False]]Tech Notes
Related Guides
Related Links
History
Introduced in 1996 (3.0) | Updated in 2023 (13.3)
Text
Wolfram Research (1996), WeierstrassZeta, Wolfram Language function, https://reference.wolfram.com/language/ref/WeierstrassZeta.html (updated 2023).
CMS
Wolfram Language. 1996. "WeierstrassZeta." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2023. https://reference.wolfram.com/language/ref/WeierstrassZeta.html.
APA
Wolfram Language. (1996). WeierstrassZeta. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/WeierstrassZeta.html
BibTeX
@misc{reference.wolfram_2026_weierstrasszeta, author="Wolfram Research", title="{WeierstrassZeta}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/WeierstrassZeta.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_weierstrasszeta, organization={Wolfram Research}, title={WeierstrassZeta}, year={2023}, url={https://reference.wolfram.com/language/ref/WeierstrassZeta.html}, note=[Accessed: 13-June-2026]}