Below is a python script I wrote which will calculate the value you want. You can download the python interpreter from
www.python.org if you don't already have it installed on your computer. (Open the file in IDLE and run.)
It's a slow brute force approach but it will work. The ellipsoid is assumed to be truncated at a certain height above the
center which is given by z0. Note indention is critical in python as the interpreter uses it to group blocks of code. I get about 5 decimal place accuracy on the area of a sphere of radius 2. The equation for the ellipsoid is:
As you change a,b, and c, and z0 be sure you enter them as decimals as otherwise python will do integer division truncating the fractions.
Code:
from math import *
z0 = 2.0 #Height at which ellipsoid is truncated.
a = 2.0
b = 2.0
c = 2.0
phi0 = acos(z0/c)
steps = 3000 #Gives about 5 decimal place accuracy in a few minutes.
def Jacob(phi,theta,A,B,C):
return abs(sin(phi))*sqrt( C*C*sin(phi)*sin(phi)*(B*B*cos(theta)*cos(theta)+ A*A*sin(theta)*sin(theta))+A*A*B*B*cos(phi)*cos(phi))
Int=0.0
dphi = (pi-phi0)/steps
dtheta = 2*pi/steps
for p in xrange(steps):
for t in xrange(steps):
phi = phi0 + p*dphi
theta = t*dtheta
Int += Jacob(phi,theta,a,b,c)*dtheta*dphi
print "The Area is:", Int
EDIT: BTW This code only gives the area of the ellipsoid surface. You'll need to add in the flat ellipse.
EDIT2: You can lower the number of steps for a quicker, less accurate answer.