HP Forums
Elliptic integrals - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (/forum-10.html)
+--- Forum: HP Prime Software Library (/forum-15.html)
+--- Thread: Elliptic integrals (/thread-9400.html)



Elliptic integrals - salvomic - 10-30-2017 05:27 PM

hi,
this is only a first attempting to make a program to handle Elliptic Integrals (1st, 2nd and 3rd kind).
For theory see here.
These functions haven't a control to singular values no other controls. I hope someone would like to help to implement them and to ameliorate the program. Thank you.
These integrals are related with the Jacobi Elliptic Function: see here in the Library my version for it.

ell1F(x, k) -> F, Elliptic integral of first kind
ell2E(x, k) -> E, Elliptic integral of second kind
ell3∏(x, k, n) -> ∏, Elliptic integral of third kind

***
Parameters (from Wikipedia):
α, the modular angle
k = sin α, the elliptic modulus or eccentricity
m = k2 = sin2 α, the parameter
Each of the above three quantities is completely determined by any of the others (given that they are non-negative). Thus, they can be used interchangeably.

The other argument can likewise be expressed as φ, the amplitude, or as x or u, where x = sin φ = sn u and sn is one of the Jacobian elliptic functions.

Specifying the value of any one of these quantities determines the others. Note that u also depends on m. Some additional relationships involving u include

[Image: fce984b4ecde9420b4bb2b28fe48ada78b50d74a]
***

k is the eccentricity, n is a number called "characteristic" (required only for 3rd kind)

These are the "incomplete" integrals. To attempt the complete ones, put x=1...

The code:
Code:
EXPORT ell1F(x,k)
BEGIN
// Elliptic integral 1st kind
// k = eccentricity
local t;
RETURN int(1/(SQRT((1-t^2)*(1-(k^2)*t^2))),t,0,x);
END;

EXPORT ell2E(x,k)
BEGIN
// Elliptic integral 2nd kind
// k = eccentricity
local t;
RETURN int((SQRT(1-(k^2)*t^2))/(SQRT(1-t^2)),t,0,x);
END;

EXPORT ell3Π(x,k,n)
BEGIN
// Elliptic integral 3rd kind
// k = eccentricity, n = characteristic
local t;
RETURN int((1/(1-(n*t^2)))*(1/(SQRT((1-(k^2)*t^2)*(1-t^2)))),t,0,x);
END;

Enjoy!
Salvo Micciché