Numerical methods for Ordinary Differential Equations

Similar documents
AN INTRODUCTION TO NUMERICAL METHODS AND ANALYSIS

General Framework for an Iterative Solution of Ax b. Jacobi s Method

5 Numerical Differentiation

Eigenvalues, Eigenvectors, and Differential Equations

ABSTRACT FOR THE 1ST INTERNATIONAL WORKSHOP ON HIGH ORDER CFD METHODS

Numerical Solution of Differential Equations

1 Error in Euler s Method

PSTricks. pst-ode. A PSTricks package for solving initial value problems for sets of Ordinary Differential Equations (ODE), v0.7.

Journal of Engineering Science and Technology Review 2 (1) (2009) Lecture Note

1 Review of Least Squares Solutions to Overdetermined Systems

Numerical Methods for Differential Equations

Matlab Practical: Solving Differential Equations

INTRODUCTION (Syllabus, Numerical Methods & Computational Tools)

The Fourth International DERIVE-TI92/89 Conference Liverpool, U.K., July Derive 5: The Easiest... Just Got Better!

CS Software Engineering for Scientific Computing. Lecture 16: Particle Methods; Homework #4

Nonlinear Algebraic Equations. Lectures INF2320 p. 1/88

Derive 5: The Easiest... Just Got Better!

Designing Efficient Software for Solving Delay Differential Equations. C.A.H. Paul. Numerical Analysis Report No Oct 2000

CHAOS LIMITATION OR EVEN END OF SUPPLY CHAIN MANAGEMENT

Numerical Methods for Differential Equations

7.6 Approximation Errors and Simpson's Rule

The Basics of FEA Procedure

Code: MATH 274 Title: ELEMENTARY DIFFERENTIAL EQUATIONS

Computers in Science Education A new Way to teach Science?

Numerical Resolution Of The Schrödinger Equation

Mathematical finance and linear programming (optimization)

The Effects of Start Prices on the Performance of the Certainty Equivalent Pricing Policy

8 Primes and Modular Arithmetic

Continued Fractions. Darren C. Collins

Note on growth and growth accounting

Graph Theory Origin and Seven Bridges of Königsberg -Rhishikesh

4.3 Lagrange Approximation

1 Finite difference example: 1D implicit heat equation

Introduction to Engineering System Dynamics

Numerical Solution of Differential

OPTIMAL CONTROL OF A COMMERCIAL LOAN REPAYMENT PLAN. E.V. Grigorieva. E.N. Khailov

3. Reaction Diffusion Equations Consider the following ODE model for population growth

Modeling, Computers, and Error Analysis Mathematical Modeling and Engineering Problem-Solving

SOLVING LINEAR SYSTEMS

Optimization of Supply Chain Networks

AP CALCULUS BC 2008 SCORING GUIDELINES

Properties of the SABR model

The Quantum Harmonic Oscillator Stephen Webb

2.6 The driven oscillator

Roots of equation fx are the values of x which satisfy the above expression. Also referred to as the zeros of an equation

16.1 Runge-Kutta Method

Solving ODEs in Matlab. BP205 M.Tremont

2x + y = 3. Since the second equation is precisely the same as the first equation, it is enough to find x and y satisfying the system

2.2 Derivative as a Function

Homework 2 Solutions

Introduction to the Finite Element Method

Chapter 3: Mathematical Models and Numerical Methods Involving First-Order Differential Equations

Numerical Methods for Ordinary Differential Equations

Let s first see how precession works in quantitative detail. The system is illustrated below: ...

A three point formula for finding roots of equations by the method of least squares

Master of Mathematical Finance: Course Descriptions

Natural cubic splines

5.4 The Heat Equation and Convection-Diffusion

POTENTIAL OF STATE-FEEDBACK CONTROL FOR MACHINE TOOLS DRIVES

Performance. 13. Climbing Flight

Numerical Methods for Engineers

Review of Fundamental Mathematics

Lecture Notes to Accompany. Scientific Computing An Introductory Survey. by Michael T. Heath. Chapter 10

SIMULATION SOFTWARE AND NUMERICAL ISSUES. Alexander L. Pugh Massachusetts Institute of Technology, Cambridge, USA

Unit 31 A Hypothesis Test about Correlation and Slope in a Simple Linear Regression

N 1. (q k+1 q k ) 2 + α 3. k=0

The Method of Least Squares. Lectures INF2320 p. 1/80

Dynamical Systems Analysis II: Evaluating Stability, Eigenvalues

Objectives. Materials

Mathematical Modeling and Engineering Problem Solving

Collaborative Filtering. Radek Pelánek

Five fundamental operations. mathematics: addition, subtraction, multiplication, division, and modular forms

This unit will lay the groundwork for later units where the students will extend this knowledge to quadratic and exponential functions.

Does Black-Scholes framework for Option Pricing use Constant Volatilities and Interest Rates? New Solution for a New Problem

Numerical Analysis An Introduction

Time Series and Forecasting

Cooling and Euler's Method

Breeding and predictability in coupled Lorenz models. E. Kalnay, M. Peña, S.-C. Yang and M. Cai

1 The Brownian bridge construction

Numerical Matrix Analysis

MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.436J/15.085J Fall 2008 Lecture 5 9/17/2008 RANDOM VARIABLES

SIXTY STUDY QUESTIONS TO THE COURSE NUMERISK BEHANDLING AV DIFFERENTIALEKVATIONER I

ω h (t) = Ae t/τ. (3) + 1 = 0 τ =.

A power series about x = a is the series of the form

LS.6 Solution Matrices

Introduction to Algebraic Geometry. Bézout s Theorem and Inflection Points

Numerical Methods for Option Pricing

CONTINUED FRACTIONS AND FACTORING. Niels Lauritzen

The Taxman Game. Robert K. Moniot September 5, 2003

Modelling and Big Data. Leslie Smith ITNPBD4, October Updated 9 October 2015

Speed, velocity and acceleration

Graphical Integration Exercises Part Four: Reverse Graphical Integration

The Basics of Physics with Calculus. AP Physics C

Numerical Analysis Lecture Notes

To give it a definition, an implicit function of x and y is simply any relationship that takes the form:

Numerical Solution of Delay Differential Equations

PHYSICAL REVIEW LETTERS

1 Review of Newton Polynomials

AC Transport constant current vs. low impedance modes

Transcription:

Numerical methods for Ordinary Differential Equations Didier Gonze November 18, 2013 I have come to believe that ones knowledge of any dynamical system is deficient unless one knows a valid way to numerically simulate that system on a computer. Daniel T. Gillespie Source: Pahle J. Brief Bioinform 10:53-64 (2009) Introduction Differential equations can describe nearly all systems undergoing change. They are widespread in physics, engineering, economics, social science, but also in biology. Many mathematicians have studied the nature of these equations and many complicated systems can be described quite precisely with mathematical expressions. However, many systems involving differential equations may be complex (nonlinear) and can count several coupled equations. Thus, a purely mathematical analysis is often not possible. Computer simulations and numerical approximations are then needed. The techniques for solving differential equations based on numerical approximations were developed long before programmable computers existed. It was common to see equations solved in rooms of people working on mechanical calculators. As computers have increased in speed and decreased in cost, increasingly complex systems of differential equations can be solved on a common computer. Currently, your laptop could compute the long term trajectories of about 1 million interacting molecules with relative ease, a problem that was inaccessible to the fastest supercomputers some 10 years ago. 1768 Leonhard Euler publishes his method. 1824 Augustin Louis Cauchy proves convergence of the Euler method. In this proof, Cauchy uses the implicit Euler method. 1895 Carl Runge publishes the first Runge-Kutta method. 1905 Martin Kutta describes the popular fourth-order Runge-Kutta method. 1952 C.F. Curtiss and J.O. Hirschfelder coin the term stiff equations. Source: Wikipedia (http://en.wikipedia.org/wiki/numerical ordinary differential equations)

Principle Most often, systems of differential equations can not be solved analytically. Algorithms based on numerical methods are therefore needed. By numerical integration, we mean to compute, from an initial point x 0 (the initial condition), each successive point x 1, x 2, x 3,.. that satisfy evolution equation dx = f(t, x). An algorithm is thus a program that dt computes as precisely as possible x n+1 from x n. Of course, x can be a vector and the evolution equations can be non-linear coupled differential equations. Figure 1: Principle of the numerical integration. We present here the principle, application, and limitation of some basic numerical methods. These methods include Euler, Heun, and Runge & Kutta. More complex methods, required for stiff systems, are briefly discussed. Figure 2: Leonhard Euler (1707-1783). 2

Euler algorithm Principle Let s consider the following differential equation: The formula for the Euler method is: dx dt = f(t, x) (1) x n+1 = x n + t.f(t n, x n ) (2) Given a time step t (to be specified by the user), the formula thus directly calculates the point x n+1 from the x n by computing the derivative at x n. The principle is illustrated in Fig. 3. Figure 3: Principle of the Euler method. Euler s method is not recommended for practical use because it is not very accurate compared to other methods that run at the equivalent step size. Indeed, as illustrated in Fig. 3, the imprecision comes from the fact that the derivative between t n and t n + t changes while Euler formula relies only on the derivative at time t n. Smaller the step size, smaller the error. 3

Example 1 We illustrate here some results (and errors) obtained when applying the Euler method. Let s consider the simple differential equation: with the initial condition x(0) = 1. dx dt = x (3) Figure 4 gives the time points obtained by simulating eq. (3) using the Euler formula (2) with time step t = 0.2. The blue curve gives the data points computed, the black curve is the exact solution (x = e t ). The red bar indicates the error at time t = 2. The error depends on the time step t. Table 1 gives the computed point, the exact solution and the error calculated at time t = 2 for different time step. 12 Euler, step size = 0.2 Exact solution 10 8 Variable x 6 4 2 0 0 0.5 1 1.5 2 2.5 Time t Figure 4: Euler method in application (example 1). Time step Computed point Exact point Error (%) CPU time (s) t = 0.5 5.062500 7.389056 31.48 <0.01 t = 0.2 6.191736 7.389056 16.20 <0.01 t = 0.1 6.727500 7.389056 8.953 <0.01 t = 0.02 7.039988 7.389056 4.724 <0.01 t = 0.05 7.244646 7.389056 1.954 <0.01 t = 0.01 7.316018 7.389056 0.988 <0.01 t = 0.001 7.381676 7.389056 0.100 0.15 t = 0.0001 7.388317 7.389056 0.010 12.2 Table 1: Error obtained with the Euler method. 4

Example 2 Now, consider the simple differential equation: with the initial condition x(0) = 1. dx dt = x (4) Figure 5 gives the time points obtained by simulating eq. (4) using the Euler formula (2) with time step t = 1.5. The blue curve gives the data points computed, the black curve is the exact solution (x = e t ). As we can see in this example, the error is not only quantitative but also qualitative: numerical integration produces artefactual oscillations 1 Euler, step size = 1.5 Exact solution 0.5 Variable x 0 0.5 0 1 2 3 4 5 6 7 8 9 10 Time t Figure 5: Euler method in application (example 2). Example 3 Let s now consider the logistic equation: dx = X(1 X) (5) dt According to the Euler method, we integrate this equation as If we define Y n = X n+1 X n = X n (1 X n ) t (6) X n+1 = X n + X n (1 X n ) t = X n (1 + t X n t) (7) t 1 + t X n and r = 1 + t, then we find t Y n+1 = 1 + t X n(1 + t X n t) = Y n (r ry n ) = ry n (1 Y n ) (8) which is the discrete logistic map (and is known to produce a variety of exotic behaviours, including oscillations and chaos). 5

Estimation of the error In order to estimate the error in the approximation to the derivative in the Euler approximation, let us consider the Taylor series approximation of the function f. If we assume that we have all the data (f and it s derivatives) at t = 0, then the value of the function at time t = t is given by f( t) = f(t = 0) + t df + t2 dt t=0 2 Rearranging this equation yields f( t) f(t = 0) t d 2 f t=0 + t3 d 3 f t=0 +... (9) dt 2 6 dt 3 = df + t d 2 f t=0 + t2 d 3 f t=0 +... (10) dt t=0 2 dt 2 6 dt 3 Since t is small then the series of terms on the right hand side is dominated by the term with the smallest power of t, i.e. f( t) f(t = 0) t df + t d 2 f t=0 (11) dt t=0 2 dt 2 Therefore, the Euler approximation to the derivative is off by a factor proportional to t. We say that the errore is of order t 2 and we write O( t 2 ). The good news is that the error goes to zero as smaller and smaller time steps are taken. The bad news is that we need to take very small time steps to get good answers (cf. Summary by Storey). We call the error in the approximation to the derivative over one time step the local truncation error. This error occurs over one time step and can be estimated from the Taylor series, as we have just shown (cf. Summary by Storey). In the next section we present alternative numerical methods with leads to a better accuracy without requiring much extra work. 6

Backward Euler method Equation 2 can be written as f(t n, x n ) x n+1 x n t (12) We thus compute x n+1 assuming that the derivative of f at point (t n, x n ). This is equivalent to say that the derivative at point (t n+1, x n+1 ) is the same as at point (t n, x n ): We then find f(t n+1, x n+1 ) x n+1 x n t (13) x n+1 = x n + tf(t n+1, x n+1 ) (14) We can thus find x n+1 from x by solving the algebraic equation 14. This is the backward Euler method. The backward Euler method is said implicit because we do not have an explicit expression for x n+1. Of course, it costs CPU time to solve this equation; this cost must be taken into consideration when one selects the method to use. The advantage of implicit methods such as 14 is that they are usually more stable for solving a stiff equation, meaning that a larger step size t can be used. 7

Heun algorithm Principle Instead of computing the derivative only at the starting point x n, a better estimation is given when the slope is computed as the average between the derivative at the starting point x n and the derivative at the end point x n+1 : x n+1 = x n + t 2 (f(t n+1, x n+1 ) + f(t n + x n )) (15) We do not know the end point x n+1 (this is the point we want to calculate!), but we can estimate it using the Euler method: and x n+1 = x n + tf(t n + x n ) (16) t n+1 = t n + t (17) The principle of the Heun algorithm is illustrated in Fig. 6. The grey dot represent the estimate x n+1 obtained using the Euler method. Figure 6: Principle of the Heun method. Because this algorithm can be seen as an improvement of the Euler method, it is sometimes refered to as an improved Euler algorithm. This is an example of predictor-corrector algorithm. 8

Example We illustrate here some results (and errors) obtained when applying the Heun method. As for the Euler method, we will consider the simple differential equation: with the initial condition x(0) = 1. dx dt = x (18) Figure 7 gives the time points obtained by simulating eq. (21) using the Heun formulas (15) and (16) with time step t = 0.2. The blue curve gives the data points computed, the black curve is the exact solution. We already see that the error is much reduced compare to the error obtained with the Euler algorithm. Here also, the error depends on the time step t. Table 2 gives the computed point, the exact solution and the error calculated at time t = 2 for different time step: 14 Euler, step size = 0.2 Exact solution 12 10 Variable x 8 6 4 2 0 0 0.5 1 1.5 2 2.5 Time t Figure 7: Heun method in application. Time step Computed point Exact point Error (%) CPU time (s) t = 0.5 6.972900 7.389056 5.63 <0.01 t = 0.2 7.304631 7.389056 1.14 <0.01 t = 0.1 7.366235 7.389056 0.309 <0.01 t = 0.02 7.388086 7.389056 0.131 <0.01 t = 0.05 7.383127 7.389056 0.0802 <0.01 t = 0.01 7.388812 7.389056 0.0331 <0.01 t = 0.001 7.389054 7.389056 0.00003 0.13 t = 0.0001 7.389056 7.389056 E-7 12.0 Table 2: Error obtained with the Heun method. 9

Runge & Kutta algorithms Second-order Runge & Kutta Another estimation of the slope is the derivative at the mid-point between t and t + t. Consider the use of step like the one defined by the Euler formula (2) to take a trial step to the mid-point of the interval. Then we can use the value of both t and x at that mid-point to compute the real step across the whole interval. Fig. 8 illustrates this idea. The equations are then: k 1 = t.f(t n, x n ) ( k 2 = t.f t n + t 2, x n + k ) 1 2 x n+1 = x n + k 2 + 0( t 3 ) (19) This method is called the second-order Runge & Kutta algorithm or the mid-point method. Figure 8: Principle of the second-order Runge & Kutta method 10

Fourth-order Runge & Kutta More often used is the classical four-order Runge & Kutta algorithm: k 1 = t.f(t n, x n ) ( k 2 = t.f t n + t 2, x n + k ) 1 2 ( k 3 = t.f t n + t 2, x n + k ) 2 2 k 4 = t.f (t n + t, x n + k 3 ) x n+1 = x n + k 1 6 + k 2 3 + k 3 3 + k 4 6 + 0( t3 ) (20) Figure 9: Principle of the fourth-order Runge & Kutta Adaptative step size As with the previous methods the error depends on the step size. Small step size leads to a better precision, but require larger CPU time. Adaptative step size methods allows to change the step size during the integration. 11

Example We illustrate here some results (and errors) obtained when applying the Runge-Kutta method (order 2 vs order 4). As for the previous methods, we will consider the simple differential equation: with the initial condition x(0) = 1. dx dt = x (21) Here also, the error depends on the time step t. Table 3 gives the computed points (obtained using the RK2 or RK4 method), the exact solution, and the error calculated at time t = 2 for different time step: Time step Exact point Computed point Error (%) Computed point Error (%) (RK2) (RK2) (RK4) (RK4) t = 0.5 7.389056 6.972900 0.056320 7.383970 6.8828E-04 t = 0.2 7.389056 7.304631 0.011426 7.388889 2.2581E-05 t = 0.1 7.389056 7.366235 0.003088 7.389045 1.5335E-06 t = 0.05 7.389056 7.383127 0.00080238 7.389055 9.9918E-08 t = 0.02 7.389056 7.388086 0.00013134 7.389056 2.6226E-09 t = 0.01 7.389056 7.388812 3.3083E-05 7.389056 1.6528E-10 t = 0.001 7.389056 7.389054 3.3308E-07 7.389056 1.5385E-14 t = 0.0001 7.389056 7.389056 3.3331E-09 7.389056 5.1686E-15 Table 3: Error obtained with the Runge-Kutta method. 12

Other methods (for stiff systems) Stiff systems of ordinary differential equations represent a special case of dynamical systems. There is no universally accepted definition of stiffness. Rather than proposing a precise mathematical definition of stiffness, we will consider here that stiff systems are systems in which abrupt transition (discontinuity) are observed in the time series, as shown in Fig. 10. Such abrupt transitions often result from different time scales in the dynamics. Variable Variable Time Time Figure 10: Examples of stiff systems To simulate precisely stiff systems, it is required to have a very small time steps, but reducing the time step may drastically increase the computational time. Often, even the adaptative time steps programs mentionned above are not appropriate. Therefore, algorithms specifically designed to solve such stiff systems have been proposed. GEAR is an example of such algorithm (Gear, 1969). The GEAR method is an auto-adaptative implicit algorithm which can select time step and change order automatically. 13

In practice... How to know if my solution is correct? One of the big difficulties in using numerical methods is that takes very little time to get an answer, it takes much longer to decide if it is right. Usually the first test is to check that the system is behaving physically/biologically. Usually before running simulations it is best to use physics/biological arguments to try and understand qualitatively what you think your system will do. Will it oscillate, will it grow, will it decay? We already encountered unrealistic behavior using Euler s method (see fig. 5). These artifacts often occur when the time step is too large. One simple test of a numerical method is to change the time step t and see what happens. If you have implemented the method correctly (and its a good method) the answer should converge as the time step is decreased. If you know the order of your approximation then you know how fast this decrease should happen. If the method has an error proportional to t then you know that cutting the time step in half should cut the error in half. You should nevertheless keep in mind that it is not because the solution converges that it is correct (cf. Summary by Storey). Softwares There are many mathematical softwares that have built-in functions to perform numerical integration of ODE. Matlab has several ODE solver and provides some recommendations: Method Problem type Accuracy When to use ode45 Nonstiff Medium Most of the time, should be the first solver to try. ode23 Nonstiff Low For problems with crude error tolerances or for solving moderately stiff problems. ode113 Nonstiff Low/high For problems with stringent error tolerances or for solving computationally intensive problems. ode15s Stiff Low/medium If ode45 is slow because the problem is stiff. ode23s Stiff Low If using crude error tolerances to solve stiff systems and the mass matrix is constant. XXP-AUTO, a free-ware software, specially designed to solve ODE has also several method implemented (Euler, BackEul, Heun, RK, Gear, Stiff,...). By default it uses a adaptative step size RK method. 14

References Books Numerical recipes in C: The art of scientific computing (1992) Cushing (2004) Differential equations: an applied approach, Pearson Prentice Hall On-line courses Storey BD, Numerical Methods for Ordinary Differential Equations (http://icb.olin.edu/fall 02/ec/reading/DiffEq.pdf) Lecture notes by Marc Roussel (http://people.uleth.ca/ roussel/) Web sites http://www.nrbook.com/a/bookcpdf.php http://en.wikipedia.org/wiki/numerical ordinary differential equations http://en.wikipedia.org/wiki/stiff equation http://en.wikipedia.org/wiki/runge-kutta method 15