In orbital mechanics (subfield of celestial mechanics), Gauss's method is used for preliminary orbit determination from at least three observations (more observations increases the accuracy of the determined orbit) of the orbiting body of interest at three different times. The required information are the times of observations, the position vectors of the observation points (in Equatorial Coordinate System), the direction cosine vector of the orbiting body from the observation points (from Topocentric Equatorial Coordinate System) and general physical data. Carl Friedrich Gauss developed important mathematical techniques (summed up in Gauss's methods) which were specifically used to determine the orbit of Ceres. The method shown following is the orbit determination of an orbiting body about the focal body where the observations were taken from, whereas the method for determining Ceres' orbit requires a bit more effort because the observations were taken from Earth while Ceres orbits the Sun.
1. Observer Position Vector
The observer position vector (in Equatorial Coordinate System) of the observation points can be determined from the latitude and local sidereal time (from Topocentric Coordinate System) at the surface of the focal body of the orbiting body (for example, the Earth) via either:
[math]\displaystyle{ \mathbf{R_n} = \left [ {R_e \over \sqrt{1(2ff^2)\sin^2\phi_n}}+H_n \right ] \cos\phi_n(\cos\theta_n\mathbf{\hat{I}}+\sin\theta_n\mathbf{\hat{J}})+\left [ {R_e(1f)^2 \over \sqrt{1(2ff^2)\sin^2\phi_n}}+H_n \right ] \sin\phi_n\mathbf{\hat{K}} }[/math]
or
[math]\displaystyle{ \mathbf{R_n} = R_e\cos\phi'_n\cos\theta_n\mathbf{\hat{I}}+R_e\cos\phi'_n\sin\theta_n\mathbf{\hat{J}}+R_e\sin\phi'_n\mathbf{\hat{K}} }[/math]
where,
 R_{n} is the respective observer position vector (in Equatorial Coordinate System)
 R_{e} is the equatorial radius of the body (e.g., Earth's Re is 6,378 km)
 f is the oblateness (or flattening) of the body (e.g., Earth's f is 0.003353)
 ϕ_{n} is the respective geodetic latitude
 ϕ'_{n} is the respective geocentric latitude
 H_{n} is the respective altitude
 θ_{n} is the respective local sidereal time
2. Orbiting Body Direction Cosine Vector
The orbiting body direction cosine vector can be determined from the right ascension and declination (from Topocentric Equatorial Coordinate System) of the orbiting body from the observation points via:
[math]\displaystyle{ \mathbf{\hat{\rho}_n} = \cos\delta_n\cos\alpha_n\mathbf{\hat{I}}+\cos\delta_n\sin\alpha_n\mathbf{\hat{J}}+\sin\delta_n\mathbf{\hat{K}} }[/math]
where,
 [math]\displaystyle{ \mathbf{\hat{\rho}} }[/math]_{n} is the respective unit vector in the direction of the position vector ρ (from observation point to orbiting body in Topocentric Equatorial Coordinate System)
 δ_{n} is the respective declination
 α_{n} is the respective right ascension
3. Gauss's Method of Preliminary Orbit Determinations Algorithm
The following equations are shown without derivation because a basic background understanding is necessary. However, a brief explanation will be given to provide an idea of the derivation process.
The initial derivation begins with vector addition to determine the orbiting body's position vector. Then based on the conservation of angular momentum and Keplerian orbit principles (which states that an orbit lies in a two dimensional plane in three dimensional space), a linear combination of said position vectors is established. Also, the relation between a body's position and velocity vector by Lagrange coefficients is used which results in the use of said coefficients. Then with vector manipulation and algebra, the following equations were derived. For detailed derivation, refer to Curtis.^{[1]}
NOTE: Gauss's method is a preliminary orbit determination, with emphasis on preliminary. The approximation of the Lagrange coefficients and the limitations of the required observation conditions (i.e., insignificant curvature in the arc between observations, refer to Gronchi^{[2]} for more details) causes inaccuracies. There are ways of increasing the accuracy of Gauss's method such as increasing the accuracy of the Lagrange coefficients. This can be done by solving the universal Kepler's equation. Another way to increase the accuracy is through more observations. There are techniques/methods available that can be used but why not use Gauss's own method, least squares method (still popularly used today).
3.1. Step 1
Calculate time intervals, subtract the times between observations:
 [math]\displaystyle{ \tau_1 = t_1t_2 }[/math]
 [math]\displaystyle{ \tau_3 = t_3t_2 }[/math]
 [math]\displaystyle{ \tau = t_3t_1 }[/math]
 where

 τ_{n} is the time interval
 t_{n} is the respective observation time
3.2. Step 2
Calculate cross products, take the cross products of the observational unit direction (order matters):
 [math]\displaystyle{ \mathbf{p_1} = \mathbf{\hat{\rho}_2} \times \mathbf{\hat{\rho}_3} }[/math]
 [math]\displaystyle{ \mathbf{p_2} = \mathbf{\hat{\rho}_1} \times \mathbf{\hat{\rho}_3} }[/math]
 [math]\displaystyle{ \mathbf{p_3} = \mathbf{\hat{\rho}_1} \times \mathbf{\hat{\rho}_2} }[/math]
 where

 p_{n} is the respective cross product vector

 [math]\displaystyle{ \mathbf{\hat{\rho}} }[/math]_{n} is the respective unit vector
3.3. Step 3
Calculate common scalar quantity (scalar triple product), take the dot product of the first observational unit vector with the cross product of the second and third observational unit vector:
 [math]\displaystyle{ D_0 = \mathbf{\hat{\rho}_1} \cdot \mathbf{p_1} = \mathbf{\hat{\rho}_1} \cdot (\mathbf{\hat{\rho}_2} \times \mathbf{\hat{\rho}_3}) }[/math]
 where
 D_{0} is the common scalar triple product
 p_{n} is the respective cross product vector
 [math]\displaystyle{ \mathbf{\hat{\rho}} }[/math]_{n} is the respective unit vector
3.4. Step 4
Calculate nine scalar quantities (similar to step 3):
 [math]\displaystyle{ D_{11} = \mathbf{R_1} \cdot \mathbf{p_1} \qquad D_{12} = \mathbf{R_1} \cdot \mathbf{p_2} \qquad D_{13} = \mathbf{R_1} \cdot \mathbf{p_3} }[/math]
 [math]\displaystyle{ D_{21} = \mathbf{R_2} \cdot \mathbf{p_1} \qquad D_{22} = \mathbf{R_2} \cdot \mathbf{p_2} \qquad D_{23} = \mathbf{R_2} \cdot \mathbf{p_3} }[/math]
 [math]\displaystyle{ D_{31} = \mathbf{R_3} \cdot \mathbf{p_1} \qquad D_{32} = \mathbf{R_3} \cdot \mathbf{p_2} \qquad D_{33} = \mathbf{R_3} \cdot \mathbf{p_3} }[/math]
 where
 D_{mn} is the respective scalar quantities
 R_{m} is the respective observer position vector
 p_{n} is the respective cross product vector
3.5. Step 5
Calculate scalar position coefficients:
 [math]\displaystyle{ A = \frac{1}{D_0} \left ( D_{12} \frac{\tau_3}{\tau}+D_{22}+D_{32} \frac{\tau_1}{\tau} \right ) }[/math]
 [math]\displaystyle{ B = \frac{1}{6D_0} \left [ D_{12} \left ( \tau_3^2\tau^2 \right ) \frac{\tau_3}{\tau}+D_{32} \left (\tau^2\tau_1^2 \right ) \frac{\tau_1}{\tau} \right ] }[/math]
 [math]\displaystyle{ E = \mathbf{R_2} \cdot \mathbf{\hat{\rho}_2} }[/math]
 where
 A, B, and E are scalar position coefficients
 D_{0} is the common scalar quantity
 D_{mn} is the respective scalar quantities
 τ_{n} is the time interval
 R_{n} is the respective observer position vector
 [math]\displaystyle{ \mathbf{\hat{\rho}} }[/math]_{n} is the respective unit vector
3.6. Step 6
Calculate the squared scalar distance of the second observation, by taking the dot product of the position vector of the second observation:
 [math]\displaystyle{ {R_2}^2 = \mathbf{R_2} \cdot \mathbf{R_2} }[/math]
 where
 R_{2}^{2} is the squared distance of the second observation
 R_{2} is the position vector of the second observation
3.7. Step 7
Calculate the coefficients of the scalar distance polynomial for the second observation of the orbiting body:
 [math]\displaystyle{ a = \left ( A^2+2AE+{R_2}^2 \right ) }[/math]
 [math]\displaystyle{ b = 2\mu B(A+E) }[/math]
 [math]\displaystyle{ c = \mu^2B^2 }[/math]
 where
 a, b and c are coefficients of the scalar distance polynomial for the second observation of the orbiting body
 A,B and E are scalar position coefficients
 μ is the gravitational parameter of the focal body of the orbiting body
3.8. Step 8
Find the root of the scalar distance polynomial for the second observation of the orbiting body:
 [math]\displaystyle{ {r_2}^8+a{r_2}^6+b{r_2}^3+c = 0 }[/math]
 where
 r_{2} is the scalar distance for the second observation of the orbiting body (it and its vector, r_{2}, are in the Equatorial Coordinate System)
 a,b and c are coefficients as previously stated
Various methods can be used to find the root, a suggested method is the NewtonRaphson method. The root must be physically possible (i.e., not negative nor complex) and if multiple roots are suitable, each must be evaluated and compared to any available data to confirm their validity.
3.9. Step 9
Calculate the slant range, the distance from the observer point to the orbiting body at their respective time:
 [math]\displaystyle{ \rho_1 = \frac{1}{D_0} \left [ \frac{6 \left ( D_{31} \dfrac{\tau_1}{\tau_3}+D_{21} \dfrac{\tau}{\tau_3} \right ) {r_2}^3+\mu D_{31} \left ( \tau^2{\tau_1}^2 \right ) \dfrac{\tau_1}{\tau_3}}{6{r_2}^3+\mu \left ( \tau^2{\tau_3}^2 \right ) }  D_{11}\right ] }[/math]
 [math]\displaystyle{ \rho_2 = A+ \frac{\mu B}{{r_2}^3} }[/math]
 [math]\displaystyle{ \rho_3 = \frac{1}{D_0} \left [ \frac{6 \left ( D_{13} \dfrac{\tau_3}{\tau_1}D_{23} \dfrac{\tau}{\tau_1} \right ) {r_2}^3+\mu D_{13} \left ( \tau^2{\tau_3}^2 \right ) \dfrac{\tau_3}{\tau_1}}{6{r_2}^3+\mu \left ( \tau^2{\tau_1}^2 \right ) }  D_{33}\right ] }[/math]
 where
 ρ_{n} is the respective slant range (it and its vector, ρ_{n}, are in the Topocentric Equatorial Coordinate System)
 D_{0} is the common scalar quantity
 D_{mn} is the respective scalar quantities
 τ_{(n)} is the time interval
 r_{2} is the scalar distance for the second observation of the orbiting body
 μ is the gravitational parameter of the focal body of the orbiting body
3.10. Step 10
Calculate the orbiting body position vectors, by adding the observer position vector to the slant direction vector (which is the slant distance multiplied by the slant direction vector):
 [math]\displaystyle{ \mathbf{r_1} = \mathbf{R_1}+\rho_1\mathbf{\hat{\rho}_1} }[/math]
 [math]\displaystyle{ \mathbf{r_2} = \mathbf{R_2}+\rho_2\mathbf{\hat{\rho}_2} }[/math]
 [math]\displaystyle{ \mathbf{r_3} = \mathbf{R_3}+\rho_3\mathbf{\hat{\rho}_3} }[/math]
 where
 r_{n} is the respective orbiting body position vector (in Equatorial Coordinate System)
 R_{n} is the respective observer position vector
 ρ_{n} is the respective slant range
 [math]\displaystyle{ \mathbf{\hat{\rho}} }[/math]_{n} is the respective unit vector
3.11. Step 11
Calculate the Lagrange coefficients:
 [math]\displaystyle{ f_1 \approx 1\frac{1}{2}\frac{\mu}{{r_2}^3}{\tau_1}^2 }[/math]
 [math]\displaystyle{ f_3 \approx 1\frac{1}{2}\frac{\mu}{{r_2}^3}{\tau_3}^2 }[/math]
 [math]\displaystyle{ g_1 \approx \tau_1\frac{1}{6}\frac{\mu}{{r_2}^3}{\tau_1}^3 }[/math]
 [math]\displaystyle{ g_3 \approx \tau_3\frac{1}{6}\frac{\mu}{{r_2}^3}{\tau_3}^3 }[/math]
 where,
 f_{1}, f_{3}, g_{1} and g_{3} are the Lagrange coefficients (these are just the first two terms of the series expression based on the assumption of small time interval)
 μ is the gravitational parameter of the focal body of the orbiting body
 r_{2} is the scalar distance for the second observation of the orbiting body
 τ_{(n)} is the time interval
3.12. Step 12
Calculate the velocity vector for the second observation of the orbiting body:
 [math]\displaystyle{ \mathbf{v_2} = \frac{1}{f_1g_3f_3g_1}\left(f_3\mathbf{r_1}+f_1\mathbf{r_3}\right) }[/math]
 where
 v_{2} is the velocity vector for the second observation of the orbiting body (in Equatorial Coordinate System)
 f_{1}, f_{3}, g_{1} and g_{3} are the Lagrange coefficients
 r_{n} is the respective orbiting body position vector
3.13. Step 13
The orbital state vectors have now been found, the position (r2) and velocity (v2) vector for the second observation of the orbiting body. With these two vectors, the orbital elements can be found and the orbit determined.