Physics 212, 2019: Lecture 9

From Ilya Nemenman: Theoretical Biophysics @ Emory
Revision as of 09:50, 13 February 2019 by Ilya (talk | contribs) (Scripts for this Lecture)
Jump to: navigation, search
Emory Logo

Back to the main Teaching page.

Back to Physics 212, 2019: Computational Modeling.

Runge-Kutta 2 integration

How do we solve systems on nonlinear ODEs in the first place? The Euler method, which we introduced before, is good. But how accurate is it? We will talk about notation, and we will show that the Euler method is . We will verify this by using the scripts that I have uploaded below. We will run the simple Euler method of solving differential equations on the malthusian grows problem with different , and show by plotting the error at the end that the error goes down in proportion to .

We then will talk about Runge-Kutta methods of solving differential equations. I will add additional notes later on, but for now please use these lecture notes http://web.mit.edu/10.001/Web/Course_Notes/Differential_Equations_Notes/node5.html . Additionally, we discussed how RK2 method is a prediction-correction method.

Your work

Problem 1
Use a different differential equation from those provided to show that Runge-Kutta 2 has error , and the scaling of the error is not a scaling due to the equation being solved, but largely due to the methods used to solve it. Do this in a Jupyter notebook.
Problem2
Write a system of differential equations that correspond to a harmonic oscillator (linear pendulum) and solve it using a multi-dimensional generalization of the RK2 algorithm. Do this in a Jupyter notebook.

Scripts for this Lecture

GrowthFunctions -- module defining different growth functions.
Integrators -- module defining different integrators (Euler and Runge-Kutta, which we will use during the next lecture).
Module 2 -- catch-all scripts I used during the class.
Module 2 as a notebook -- integration as a notebook.