Simple approximation for surface area of an ellipsoid
After writing the previous post, I wondered where else you might be able to use r-means to create accurate approximations. I thought maybe this would apply to the surface area of an ellipsoid, and a little searching around showed that Knud Thomsen thought of this in 2004.
The general equation for the surface of an ellipsoid is
If two of the denominators {a, b, c} are equal then there are formulas for the area in terms of elementary functions. But in general, the area requires special functions known as incomplete elliptic integrals." For more details, see this post.
Here I want to focus on Knud Thomsen's approximation for the surface area and its connection to the previous post.
The previous post reported that the perimeter of an ellipse is 2r where r is the effective radius. An ellipse doesn't have a radius unless it's a circle, but we can define something that acts like a radius by defining it to be the perimeter over 2. It turns out that
makes a very good approximation for the effective radius where x = (a, b).
Here
using the notation of of Hardy, Littlewood, and Polya.
This suggests we define an effective radius for an ellipsoid and look for an approximation to the effective radius in terms of an r-mean. The area of a sphere is 4r^2, so we define the effective radius of an ellipsoid as the square root of its surface area divided by 4. So the effective radius of a sphere is its radius.
Thomsen found that
where x = (ab, bc, ac) and p = 1.6. More explicitly,
Note that it's the square of the effective radius that is an r-mean, and that the argument to the mean is not simply (a, b, c). I would have naively tried looking for a value of p so that the r-mean of (a, b, c) gives a good approximation to the effective radius. In hindsight, it makes sense in terms of dimensional analysis that the inputs to the mean have units of area, and so the output has units of area.
The maximum relative error in Thomsen's approximation is 1.178% with p = 1.6. You can tweak the value of p to reduce the worst-case error, but the value of 1.6 is optimal for approximately spherical ellipsoids.
For an example, let's compute the surface area of Saturn, the planet with the largest equatorial bulge in our solar system. Saturn is an oblate spheroid with equatorial diameter about 11% greater than its polar diameter.
Assuming Saturn is a perfect ellipsoid, Thomsen's approximation over-estimates its surface area by about 4 parts per million. By comparison, approximating Saturn as a sphere under-estimates its area by 2 parts per thousand. The code for these calculations, based on the code here, is given at the bottom of the post.
Related postsAppendix: Python codefrom numpy import pi, sin, cos, arccosfrom scipy.special import ellipkinc, ellipeinc# Saturn in kmequatorial_radius = 60268polar_radius = 54364a = b = equatorial_radiusc = polar_radiusphi = arccos(c/a)m = 1temp = ellipeinc(phi, m)*sin(phi)**2 + ellipkinc(phi, m)*cos(phi)**2ellipsoid_area = 2*pi*(c**2 + a*b*temp/sin(phi))def rmean(r, x): n = len(x) return (sum(t**r for t in x)/n)**(1/r)approx_ellipsoid_area = 4*pi*rmean(1.6, (a*b, b*c, a*c))r = (a*b*c)**(1/3)sphere_area = 4*pi*r**2def rel_error(exact, approx): return (exact-approx)/approxprint( rel_error(ellipsoid_area, sphere_area) )print( rel_error(ellipsoid_area, approx_ellipsoid_area) )The post Simple approximation for surface area of an ellipsoid first appeared on John D. Cook.