File Exchange

image thumbnail


version (18.3 MB) by milan batista
elfun18 is a set of functions that enable computation of various elliptic integrals and functions.


Updated 29 Feb 2020

View License

elfun18 is a collection of Matlab functions that enable the computation of wide set of Elliptic integrals, Jacobi's elliptic functions and Jacobi's theta functions for real arguments. The set has two levels: higher level functions with matrix arguments and low level functions with scalar arguments. Each function is available either with the modulus k or parameter m as argument. In later case the function name begin with m. Incomplete elliptic integrals are given in Jacobi form, Legendre form and Jacobi's second form (Epsilon function and Lambda functions).
List of functions:
Elliptic integrals:
- Bulirsch's elliptic integrals: cel, cel1, cel2, cel3, el1, el2, el3
- Carlson's elliptic integrals: rc, rd, rf, rg, rj
- Complete elliptic integrals: B, C, D, K, E, Pi
- Complementary complete elliptic integrals: K', E', Pi'
- Jacobi form of elliptic integrals: B, D, E, F, Pi
- Legendre form of elliptic integrals: B, D, E, F, Pi
- Jacobi second form of elliptic integrals: Epsilon, Zeta ( periodic part of Eps) Lambda ( elip. int. of 3rd kind), Omega
function ( periodic part of Lambda)
Jacobian elliptic functions
- am, cd, cn, cs, dc, dn, ds, nc, nd, ns, sc, sd, sn

Inverse Jacobian elliptic functions
- invam, invcd, invcn, invcs, invdc, invdn, invds, invnc, invnd, invns, invsc, invsd, invsn

Jacobi Theta Functions
- theta1, thet12, theta3, theta4, nome, modulus
Neville theta functions
-nthetac, nthetad, nthetan, nthetas
Misc. functions
- agm ( arithmetic geometric mean), cl (lemniscate cos), sl, (lemniscate sin), invcl (inverse lemniscate cos), invsl (inverse lemniscate sin), Lambda0 (Heuman's function) gd (Gudermannian function), invgd (inverse Gudermannian function)

Cite As

milan batista (2020). elfun18 (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (7)

J. Alex Lee

Nevermind, I found your arxiv article that explained that I'm looking for mpEllipticE. Thanks!

J. Alex Lee

What is the relationship between mEllipticE(u,m) and Matlab's symbolic toolbox's ellipticE? Thanks!

Karsten Kuhlmann

milan batista

jacobiCN(x,m) use m as the parameter while JacobiCN(x,k) use elliptic modulus k as the parameter. So you should use mJacobiCN(x,m). Then you will obtain the same results as by jacobiCN . For example mJacobiCN(2,0.5)=-0.103183615527762 and jacobiCN(2,0.5) = -0.103183615527762

zhangping zhang

Could you tell me why the result from your function is different from the result from the matlab?
for example:JacobiCN and jacobiCN .
Thank you very much!


Improved jtheta0 . Now is correct for q <= 0.999 (thanks to Alex Lee)

(1) Correction of functions JacobiTheta and jtheta
(2) Function JacobiK, jK are added. These functions return value of real part of the complete elliptic integral of the 1st kind for any real k. Note that EllipticK and elK return value only

correct mjepsilon

Add note about Neville theta function

add figure

Neville theta functions are added. Two examples from mechanics are added: Euler elastica and Reissner rod

Minor corrections

Correct mijns.m and InverseJacobiAM_doc.mlx

Major revision. Add live script examples.

Fix melK and mpelF.

fix mpelE, add new test for melPi

Fix bugs in mjlambda.m

Change comments

Figures are included

MATLAB Release Compatibility
Created with R2016a
Compatible with any release
Platform Compatibility
Windows macOS Linux