Maple V R5’s expression for the partial derivative of JacobiDN with respect to its second
argument is incorrect (the sign of the first summand is wrong, see below). A workaround is
to substitute all occurrences of JacobiDN(u,k)
in an expression which is to be differentiated
with sqrt(1-k^2*JacobiSN(u,k)^2)
, and then differentiate.
In the following,
dj(u,k)
returns Maple’s incorrect expression for the derivative,
cdj(u,k)
returns Maple’s expression but with a minus sign before the first summand
inserted by hand,
ndj(u,k,h)
approximates the derivative by the standard difference quotient with step h,
and
sdj(u,k)
returns an expression computed using the workaround suggested above:
|\^/| Maple V Release 5 (WMI Campus Wide License) ._|\| |/|_. Copyright (c) 1981-1997 by Waterloo Maple Inc. All rights \ MAPLE / reserved. Maple and Maple V are registered trademarks of <____ ____> Waterloo Maple Inc. | Type ? for help. > dj:=unapply(diff(JacobiDN(u,k),k),u,k); 2 k JacobiSN(u, k) JacobiDN(u, k) dj := (u, k) -> -------------------------------- 2 1 - k - k JacobiCN(u, k) JacobiSN(u, k) u + k JacobiCN(u, k) JacobiSN(u, k) EllipticE(JacobiSN(u, k), k)/ 2 (1 - k ) > lprint(dj(u,k)); k*JacobiSN(u,k)^2*JacobiDN(u,k)/(1-k^2)-k*JacobiCN(u,k)*JacobiSN(u,k)*u +k*JacobiCN(u,k)*JacobiSN(u,k)/(1-k^2)*EllipticE(JacobiSN(u,k),k) > cdj:=(u,k)-> > -k*JacobiSN(u,k)^2*JacobiDN(u,k)/(1-k^2)-k*JacobiCN(u,k)*JacobiSN(u,k)*u > +k*JacobiCN(u,k)*JacobiSN(u,k)/(1-k^2)*EllipticE(JacobiSN(u,k),k); 2 k JacobiSN(u, k) JacobiDN(u, k) cdj := (u, k) -> - -------------------------------- 2 1 - k - k JacobiCN(u, k) JacobiSN(u, k) u + k JacobiCN(u, k) JacobiSN(u, k) EllipticE(JacobiSN(u, k), k)/ 2 (1 - k ) > ndj:=(u,k,h)->(JacobiDN(u,k+h)-JacobiDN(u,k))/h; JacobiDN(u, k + h) - JacobiDN(u, k) ndj := (u, k, h) -> ----------------------------------- h > sdj:=unapply(diff(sqrt(1-k^2*JacobiSN(u,k)^2),k),u,k); / / | 2 2 | sdj := (u, k) -> 1/2 |-2 k JacobiSN(u, k) - 2 k JacobiSN(u, k) | | | \ \ 3 k JacobiSN(u, k) k JacobiSN(u, k) ---------------- - ----------------- 2 2 1 - k 1 - k u JacobiCN(u, k) JacobiDN(u, k) + ------------------------------- k JacobiCN(u, k) JacobiDN(u, k) EllipticE(JacobiSN(u, k), k) - ---------------------------------------------------------- 2 k (1 - k ) \\ || / 2 2 || / sqrt(1 - k JacobiSN(u, k) ) || / // > Digits:=40; Digits := 40 > evalf(dj(0.5,0.99)); 18.69744889484428844442342684197247575734 > evalf(cdj(0.5,0.99)); -.220767304895483330592093370822369837823 > evalf(ndj(0.5,0.99,0.001)); evalf(ndj(0.5,0.99,0.0001)); -.2208718933423780652373652837059697338000 -.2207777643737089925867484805746685460000 > evalf(sdj(0.5,0.99)); -.2207673048954833305920933708223698378326
See also: Bug in Jacobi elliptic function
It is corrected with Maple 7 (U. Klein)