How can I compute Jacobi Elliptic Functions in Matlab where the modulus is > 1?

2 views (last 30 days)
I'm interested in computing the elliptic function cd(u|m) where cd(u|m) = cn(u|m) / dn(u|m). I can compute both cn and dn using the built in function "ellipj" in Matlab, however it doesn't work when m > 1.
Suggestions?
Thanks,
Mark

Accepted Answer

Karan Gill
Karan Gill on 29 Sep 2017
Edited: Karan Gill on 17 Oct 2017
Starting R2017b, all Jacobi Elliptic functions in MATLAB with Symbolic Math Toolbox. Example:
>> jacobiCD(1,3)
ans =
535.8838
  • jacobiAM for Jacobi amplitude function
  • jacobiCD for Jacobi CD elliptic function
  • jacobiCN for Jacobi CN elliptic function
  • jacobiCS for Jacobi CS elliptic function
  • jacobiDC for Jacobi DC elliptic function
  • jacobiDN for Jacobi DN elliptic function
  • jacobiDS for Jacobi DS elliptic function
  • jacobiNC for Jacobi NC elliptic function
  • jacobiND for Jacobi ND elliptic function
  • jacobiNS for Jacobi NS elliptic function
  • jacobiSC for Jacobi SC elliptic function
  • jacobiSD for Jacobi SD elliptic function
  • jacobiSN for Jacobi SN elliptic function
  • jacobiZeta for Jacobi zeta function

More Answers (1)

Matt Fig
Matt Fig on 20 Sep 2012
Edited: Matt Fig on 20 Sep 2012
Use (for m>1):
sn(u,m) = sqrt(1/m)*sn(u*sqrt(m),1/m)
cn(u,m) = dn(u*sqrt(m),1/m)
dn(u,m) = cn(u*sqrt(m),1/m)

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!