Skip to content
No description, website, or topics provided.
Jupyter Notebook
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.

Computational Mechanics 03- Initial Value Problems

Learning to frame engineering equations as numerical methods

Welcome to Computational Mechanics Module #3! In this module we will explore some more data analysis, find better ways to solve differential equations, and learn how to solve engineering problems with Python.


  • Work with images and videos in Python using imageio.
  • Get interactive figures using the %matplotlib notebook command.
  • Capture mouse clicks with Matplotlib's mpl_connect().
  • Observed acceleration of falling bodies is less than $9.8\rm{m/s}^2$.
  • Capture mouse clicks on several video frames using widgets!
  • Projectile motion is like falling under gravity, plus a horizontal velocity.
  • Save our hard work as a numpy .npz file Check the Problems for loading it back into your session
  • Compute numerical derivatives using differences via array slicing.
  • Real data shows free-fall acceleration decreases in magnitude from $9.8\rm{m/s}^2$.


  • Integrating an equation of motion numerically.
  • Drawing multiple plots in one figure,
  • Solving initial-value problems numerically
  • Using Euler's method.
  • Euler's method is a first-order method.
  • Freefall with air resistance is a more realistic model.


  • vector form of the spring-mass differential equation
  • Euler's method produces unphysical amplitude growth in oscillatory systems
  • the Euler-Cromer method fixes the amplitude growth (while still being first
  • order)
  • Euler-Cromer does show a phase lag after a long simulation
  • a convergence plot confirms the first-order accuracy of Euler's method
  • a convergence plot shows that modified Euler's method, using the derivatives
  • evaluated at the midpoint of the time interval, is a second-order method
  • How to create an implicit integration method
  • The difference between implicit and explicit integration
  • The difference between stable and unstable methods


  • How to find the 0 of a function, aka root-finding
  • The difference between a bracketing and an open methods for finding roots
  • Two bracketing methods: incremental search and bisection methods
  • Two open methods: Newton-Raphson and modified secant methods
  • How to measure relative error
  • How to compare root-finding methods
  • How to frame an engineering problem as a root-finding problem
  • Solve an initial value problem with missing initial conditions (the shooting
  • method)
  • Bonus: In the Problems you'll consider stability of bracketing and open methods.
You can’t perform that action at this time.