The Museum of HP Calculators

# Surface Area of an Ellipsoid for the HP-41

This program is Copyright © 2005 by Jean-Marc Baillard and is used here by permission.

This program is supplied without representation or warranty of any kind. Jean-Marc Baillard and The Museum of HP Calculators therefore assume no responsibility and shall have no liability, consequential or otherwise, of any kind arising from the use of this program material or any part thereof.

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
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  -----------------  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 Functions and 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 Functions and 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 )