05-28-2021, 12:37 AM
semi-axis, a ≥ b ≥ c
cos(φ) = c/a
m = (a²(b²-c²)) / (b²(a²-c²))
I = cos(φ)^2 * elliptf(φ,m) + sin(φ)^2 * ellipte(φ,m)
→ S = 2*pi*(c² + a*b/sin(φ)*I)
HP Prime does not have elliptf(ϕ,m) and ellipte(ϕ,m), we might as well combine I, as 1 integral
Let t = sin(ϕ)^2 = 1-(c/a)^2, s = √t = sin(ϕ):
I = (1-t) * ∫(1/√((1-x²)*(1-m*x²)), x=0..s) + t * ∫(√((1-m*x²)/(1-x²)), x=0..s)
I = ∫((1-m*t*x²) / √((1-x²)*(1-m*x²)), x=0..s)
CAS> ellipsoid_area(1.1,1.2,4.7) → 54.6901240998
Example from The Surface Area Of An Ellipsoid, A. Dieckmann, Universität Bonn, July 2003
A good estimate with Thomsen formula, rel. err ≤ 1.061%
CAS> ellipsoid_area_est(a,b,c) := 4*pi*mean(([a*b,a*c,b*c]).^p)^(1/p) | p = 1.6075
CAS> ellipsoid_area_est(1.1,1.2,4.7) → 54.4952199737
cos(φ) = c/a
m = (a²(b²-c²)) / (b²(a²-c²))
I = cos(φ)^2 * elliptf(φ,m) + sin(φ)^2 * ellipte(φ,m)
→ S = 2*pi*(c² + a*b/sin(φ)*I)
HP Prime does not have elliptf(ϕ,m) and ellipte(ϕ,m), we might as well combine I, as 1 integral
Let t = sin(ϕ)^2 = 1-(c/a)^2, s = √t = sin(ϕ):
I = (1-t) * ∫(1/√((1-x²)*(1-m*x²)), x=0..s) + t * ∫(√((1-m*x²)/(1-x²)), x=0..s)
I = ∫((1-m*t*x²) / √((1-x²)*(1-m*x²)), x=0..s)
Code:
#cas
ellipsoid_area(a,b,c)
BEGIN
local m, t, s, x;
c,b,a := sort(a,b,c); // a >= b >= c
t := 1.-(c/a)^2;
if t==0 then return 4.*pi*a*c END
s := sqrt(t); // sin(acos(c/a))
m := (b+c)*(b-c) / (b*b*t);
m := int((1-m*t*x*x)/sqrt((1-x*x)*(1-m*x*x)), x, 0., s);
return 2.*pi*(c*c + a*b/s*m);
END
#end
CAS> ellipsoid_area(1.1,1.2,4.7) → 54.6901240998
Example from The Surface Area Of An Ellipsoid, A. Dieckmann, Universität Bonn, July 2003
A good estimate with Thomsen formula, rel. err ≤ 1.061%
CAS> ellipsoid_area_est(a,b,c) := 4*pi*mean(([a*b,a*c,b*c]).^p)^(1/p) | p = 1.6075
CAS> ellipsoid_area_est(1.1,1.2,4.7) → 54.4952199737