Overview
-The surface area of an ellipsoid of revolution may be computed by the following formulae ( a = semi-major axis ; b = semi-minor axis ):
Prolate ellipsoid: S = 2
Pi a.b ( b/a + ( Arc sin µ )/µ )
with µ = ( 1 - b2/a2 )1/2
Oblate ellipsoid: S' =
2 Pi a.b ( a/b + ( Arc sinh µ' )/µ' )
with µ' = ( a2/b2 - 1 )1/2
-For a scalene ellipsoid: x2/a2 + y2/b2 +x2/c2 = 1 , the formula is more complex:
Area = 2.Pi ( c2 + b.c2/(a2-c2)1/2 F( µ | m ) + b.(a2-c2)1/2 E( µ | m ) ) ( c < b < a )
where F and E are the Legendre elliptic integrals of the first and second kind respectively.
-But we can also use a Carlson elliptic integral of the second kind ( namely, RG ) and we have:
Area = 4.PI.RG( a2b2
, a2c2 , b2c2 )
1°) Ellipsoid of Revolution
Data Registers: /
Flags: /
Subroutines: /
01 LBL "SAER"
02 RCL Y 03 RCL Y 04 * 05 PI 06 * 07 ST+ X 08 STO M 09 RDN 10 X>Y? |
11 X<>Y
12 / 13 ENTER^ 14 ENTER^ 15 1/X 16 ACOS 17 TAN 18 ENTER^ 19 R^ 20 + |
21 LN
22 X<>Y 23 X=0? 24 SIGN 25 / 26 X=0? 27 SIGN 28 + 29 X<>Y 30 1/X |
31 ENTER^
32 ASIN 33 COS 34 RAD 35 ASIN 36 DEG 37 LASTX 38 X=0? 39 SIGN 40 / |
41 X=0?
42 SIGN 43 + 44 0 45 X<> M 46 ST* Z 47 * 48 END |
( 62 bytes / SIZE 000 )
STACK | INPUTS | OUTPUTS |
Y | b | S' |
X | a | S |
where S' is the area of the oblate ellipsoid
and S is the area
of the prolate ellipsoid
Example:
2 ENTER^
3 XEQ "SAER" >>>>
S = 67.67287267
X<>Y S' = 89.00073737
-Lines 23-24-26-27-38-39-41-42 are only useful if a = b ( sphere )
-This program doesn't work if a = 0 or b = 0 ( add X=0?
RTN after line 04 if you want to take this case into account )
-Synthetic register M may be replaced by any data register ( like R00
... )
2°) Scalene Ellipsoid
a) Program#1
Data Registers: R00 to R09
Flags: /
Subroutine: "ELI" ( cf
"Elliptic integrals for the HP-41" )
01 LBL "SAE"
02 DEG 03 STO 01 04 X^2 05 X<>Y 06 STO 07 07 ENTER^ 08 * 09 ST/ Y |
10 R^
11 X^2 12 STO 08 13 - 14 * 15 RCL 01 16 X^2 17 RCL 08 18 - |
19 X#0?
20 ST/ Y 21 SQRT 22 STO 09 23 RCL 01 24 / 25 ASIN 26 XEQ "ELI" 27 X<>Y |
28 RCL 08
29 * 30 RCL 09 31 ST* Z 32 X#0? 33 / 34 + 35 RCL 07 36 * |
37 X=0?
38 RCL 08 39 RCL 08 40 + 41 ST+ X 42 PI 43 * 44 END |
( 60 bytes / SIZE 010 )
STACK | INPUTS | OUTPUTS |
Z | c | / |
Y | b | / |
X | a | Area |
with c < b < a
Example:
2 ENTER^
4 ENTER^
9 XEQ "SAE" >>>> Area =
283.4273845 ( in 17 seconds )
-Lines 19-32-37-38 are only useful if a = b = c
-This program doesn't work if a , b or c = 0 ( add X=0?
RTN after line 10 if you want to take this case into account
)
but it works for an ellipsoid of revolution.
-Add X<Y? X<>Y RDN
X<Y? X<>Y R^ X<Y?
X<>Y after line 02 if you want to ENTER a , b , c
in an arbitrary order.
b) Program#2
Data Registers: R00 to R13
Flags: /
Subroutine: "RG" ( cf
"Elliptic integrals for the HP-41" )
01 LBL "SAE2"
02 X^2 03 X<>Y 04 X^2 05 X<> Z 06 ENTER^ 07 * 08 ST* T 09 X<>Y 10 ST* Z 11 * 12 XEQ "RG" 13 4 14 * 15 PI 16 * 17 END |
( 32 bytes / SIZE 014 )
STACK | INPUTS | OUTPUTS |
Z | c | / |
Y | b | / |
X | a | Area |
Example:
2 ENTER^
4 ENTER^
9 XEQ "SAE2" >>>> Area =
283.4273843 ( in 52 seconds )
Note:
-If you key in
9 ENTER^
4 ENTER^
2 XEQ "SAE2" it yields 283.4273841
( in 48 seconds )