MA571: Numerical Solutions of Differential Equations

Instructor: Dr. Marko Budišić (SC391) — marko@clarkson.edu — MoWeFr 2-2.50p (SC342) — Text: Iserles, 2nd ed.

Welcome to MA571! So what’s this class about?

Say that you have an ODE system to solve in order to generate a cool video of the Lorenz system as on Wikipedia’s website. OK, so you learn that this is an ODE system whose equations are

where .

Hm, solving those was not covered in your ODE class, but look at that, Wikipedia even has Matlab/Octave code available. Let’s try it out.

./img/wikipedia-lorenz.png

sigma = 10;
beta = 8/3;
rho = 28;
f = @(t,a) [...
    -sigma*a(1) + sigma*a(2); ...
    rho*a(1) - a(2) - a(1)*a(3); ...
    -beta*a(3) + a(1)*a(2)];
% Runge-Kutta 4th/5th order ODE solver
[t,a] = ode45(f,[0 100],[1 1 1]);
plot3(a(:,1),a(:,2),a(:,3))

Close enough, but what’s up with that jagged edge! Ah, that’s right, this is a numerical approximation, so perhaps if we reduce the stepsize, we’d get a better result. How do I do that? Let’s check help for ode45.

./img/ode45-help.png

What’s all of this???? What’s Dormand-Prince, what’s Runge-Kutta, wait, there’s something called adaptive timestep, and I set it using “relative and absolute tolerance”! Tolerance to WHAT.

You decide that it must be Matlab’s implementation of this technique that is arcane. Let’s check other techniques or PyJuMa languages: Matlab, Python scipy.integrate.ode, and Julia DifferentialEquations.jl. No help. You feel the walls closing in.

Breathe. After taking MA571 you’ll be able to work through all these things. And more. You’ll have a sense of how to integrate PDEs, perhaps learn something about SDEs. Sort out why there are so many options to choose from if you decide to use something instead of ode45.


Our goal will be to get enough knowledge to make the best choice when solving a specific DE, and provide foundation for further study. Sometimes, we’ll code things up, just to get our hands dirty, and sometimes we’ll do proofs. We’ll also read journal articles and present on them, to see how these topics behave in research context.