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

2 次查看(过去 30 天)
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

采纳的回答

Karan Gill
Karan Gill 2017-9-29
编辑:Karan Gill 2017-10-17
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

更多回答(1 个)

Matt Fig
Matt Fig 2012-9-20
编辑:Matt Fig 2012-9-20
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)

产品

Community Treasure Hunt

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

Start Hunting!

Translated by