+
Simple Hanging Harmonic Oscillator

Developed by Kelly Roos - Published July 17, 2016

In this set of exercises the student builds a computational model of a hanging mass-spring system that is constrained to move in 1D, using the simple Euler and the Euler-Cromer numerical schemes. The student is guided to discover, by using the model to produce graphs of the position, velocity, and energy of the mass as a function of time, that the Euler algorithm does not conserve energy, and that for this simple oscillatory system, a modified algorithm (Euler-Cromer) is necessary to avoid artificial behavior in the model.
Subject Area Mechanics First Year and Beyond the First Year C/C++, Fortran, Glowscript, IPython/Jupyter Notebook, Mathematica, MATLAB, Python, Spreadsheet, and Easy Java Simulations Students who complete this set of exercises will - be able to build a model of a simple hanging harmonic oscillator using the Euler algorithm (**Exercises 1 and 2**); - be able to build a model of a simple hanging harmonic oscillator using the Euler-Cromer algorithm (**Exercises 4 and 5**); - be able to produce graphs of the positon, velocity, and total energy as a function of time from the results of their computational model (**Exercises 1-5**); - be able to assess the accuracy of two different computational algorithms (Euler and Euler-Cromer) by comparing results from the different algorithms to each other and to the exact analytical solution (**Exercises 1-5**); - discover that they bloody well can't use the simple Euler method when modeling an oscillatory system (**Exercises 1-3**).

These exercises are not tied to a specific programming language. Example implementations are provided under the Code tab, but the Exercises can be implemented in whatever platform you wish to use (e.g., Excel, Python, MATLAB, etc.).

#### Exercise 1: Euler Algorithm Model of a SHO Build a computational model of a simple hanging harmonic oscillator using the Euler method. Use realistic values for the parameters (i.e., spring constant $k$ and attached mass $m$, such as would be encountered in a typical introductory mechanics laboratory exercise. Also, assume that the mass of the spring is negligible compared to the attached mass, and that the harmonic oscillator has been stretched vertically downward a distance $y_0$, relative to its hanging equilibrium position and released from rest. Use the model to produce graphs of the position and velocity of the mass as a function of time, and compare these with the exact functions for the position and velocity, $$y(t)=y_{0}\cos\left(\sqrt{\frac{k}{m}}t\right)$$ and $$v(t)={-\sqrt{\frac{k}{m}}y_{0}\sin\left(\sqrt{\frac{k}{m}}t\right)},$$ that result from solving Newton's 2nd Law analytically. Does the angular frequency match that expected for a simple harmonic oscillator of mass $m$ an spring constant $k$? #### Exercise 2: Artificial Behavior with the Euler Algorithm You may (should!) have noticed that something is not right with the Euler model of your hanging oscillator. Describe in detail the artificial behavior you observe in your model, and explain why it doesn't represent a realistic oscillating mass. Recall that in the Euler method, the accuracy of the solution can be increased by using a smaller value of $\Delta t$. Can you get rid of the artificial behavior by making $\Delta t$ smaller? #### Exercise 3: Energy in the Euler Algorithm Model of a SHO Modify your model to produce a graph of the total energy of the oscillator as a function of time. Describe in detail what happens to the energy, and the artificial behavior observed. Can this artificial behavior in the energy be corrected by making $\Delta t$ smaller? What can you conclude about using the Euler method to model a simple harmonic oscillator? #### Exercise 4: Euler-Cromer Algorithm Model of a SHO Build a model of the hanging oscillator using the modified Euler, or Euler-Cromer, numerical method. Compare the results you obtain (i.e. position and velocity vs. time) with those obtained from the simple Euler method, and with the exact solution. Comment in detail on your results. #### Exercise 5: Energy in the Euler-Cromer Algorithm Model of a SHO Modify your model to produce a graph of the total energy as a function of time. Is energy conserved for the Euler-Cromer algorithm?