Index of Functions: A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X
kpsolv

 Procedure Abstract Required_Reading Keywords Declarations Brief_I/O Detailed_Input Detailed_Output Parameters Exceptions Files Particulars Examples Restrictions Literature_References Author_and_Institution Version

Procedure

KPSOLV ( Solve Kepler's Equation --- Vector Form )

DOUBLE PRECISION FUNCTION KPSOLV ( EVEC )

Abstract

Solve the equation X = < EVEC, U(X) > where U(X) is the unit
vector [ COS(X), SIN(X) ] and  < , > denotes the two-dimensional
dot product.

None.

ROOTS

Declarations

IMPLICIT NONE

DOUBLE PRECISION      EVEC ( 2 )

Brief_I/O

VARIABLE  I/O  DESCRIPTION
--------  ---  --------------------------------------------------
EVEC       I   A 2-vector whose magnitude is less than 1.

The function returns the solution to X = < EVEC, U(X) >

Detailed_Input

EVEC     is any two dimensional vector whose magnitude is
less than 1.

Detailed_Output

The function returns the value X such that the equation

X = EVEC(1)COS(X) + EVEC(2)SIN(X).

None.

Exceptions

1)  If the magnitude of EVEC is greater than or equal to 1,
the error SPICE(EVECOUTOFRANGE) is signaled.

None.

Particulars

This routine uses bisection and Newton's method to find
the root of the equation

X = EVEC(1)COS(X) + EVEC(2)SIN(X).

This equation is just a "vector form" of Kepler's equation.

Examples

Suppose you need to solve the equation

M = E - e SIN(E)                           [ 1 ]

for E. If we let X = E - M the equation is transformed to

0 = X - e SIN( X + M )

= X - e SIN( M ) COS(X) - e COS(M) SIN ( X )

Thus if we solve the equation

X = e SIN(M) COS(X) + e COS(M) SIN(X)

we can find the value of X we can compute E.

The code fragment below illustrates how this routine can
be used to solve equation .

EVEC(1) = ECC * DSIN(M)
EVEC(2) = ECC * DCOS(M)
E       = M   + KPSOLV( EVEC )

None.

None.

Author_and_Institution

J. Diaz del Rio    (ODC Space)
W.L. Taber         (JPL)

Version

SPICELIB Version 1.1.1, 26-OCT-2021 (JDR)

Edited the header to comply with NAIF standard.

SPICELIB Version 1.1.0, 26-AUG-1997 (WLT)

KPSOLV is now given an initial value of zero so that
if an error condition is detected, KPSOLV will have
a return value.

SPICELIB Version 1.0.0, 03-JAN-1997 (WLT)
Fri Dec 31 18:36:30 2021