Numerical Simulation of Foucault Pendulum

The goal of this project is to numerically simulate the motion of a Foucault pendulum projected onto the XY plane using C++ programming. The equation of motion for a Foucault pendulum is a coupled second-order differential equation that has an oscillatory nature. Consequently, the Runge-Kutta 4th order method is used to increase accuracy. The simulation was done for a simplified model in which the \(\omega^2\) terms were ignored, as well as the full equation of motion without this simplification. The results for both cases were consistent with the expected motion of a real Foucault pendulum. Because the value of the Earth’s angular velocity is small, the simplification did not affect the pendulum’s behavior in a way that obvious deviation could be detected.

The constants and initial conditions used in the simulation are provided in the tables below.

Constants and initial condition used in simulation provided in tables below.

Quantity Value
g 9.83 \(\frac{m}{s^2}\)
L 67 \(m\)
\(\omega_{Earth}\) \(\frac{2\pi}{86400} \frac{rad}{s}\)
\(\lambda\) \(49^{o} \)
Quantity Value
\(x_{0}\) 0.67 \(m\)
\(\dot{x}_{0}\) 0 \(\frac{m}{s}\)
\(y_{0}\) 0 \(m\)
\(\dot{y}_{0}\) 0 \(\frac{m}{s}\)

Animations for numerical solution results are provided as follows.

This animation shows a fixed axis for 30 minutes and represent the area covered by the pendulum (the blue lines).

This animation shows a auto scaled axis for 5 minutes and represent the path of pendulum during this time frame(the blue lines).


This is the final project for "computational physics" course at UAlbany.

Language: Python

Method: Runge-Kutta 4th order