Course Meeting Times

Lectures: 3 sessions / week, 1 hour / session

A list of topics by lecture is available in the calendar listed below.


  • To ensure you are aware of the wide range of easily accessible numerical methods that will be useful in your thesis research, at practice school, and in your career.
  • To make you confident to look up additional methods when you need them.
  • To help you become familiar with MATLAB® and other convenient numerical software, and with simple programming/debugging techniques.
  • To give you some understanding of how the algorithms work and to help you understand why numerical algorithms sometimes give unexpected results.


This course focuses on the use of modern computational and mathematical techniques in chemical engineering. Starting from a discussion of linear systems as the basic computational unit in scientific computing, methods for solving sets of nonlinear algebraic equations, ordinary differential equations, and differential-algebraic (DAE) systems are presented. Probability theory and its use in physical modeling is covered, as is the statistical analysis of data and parameter estimation. The finite difference and finite element techniques are presented for converting the partial differential equations obtained from transport phenomena to DAE systems. The use of these techniques will be demonstrated throughout the course in the MATLAB® computing environment.


Solid undergraduate preparation including but not limited to Calculus (18.01, 18.02), Differential Equations (18.03), Linear Algebra (18.06), Thermodynamics (5.60, 10.213), Fluid Mechanics (10.301), Chemical Kinetics and Reactor Design (10.37).


Required Text

Buy at Amazon Beers, Kenneth J. Numerical Methods for Chemical Engineering: Applications in MATLAB®. New York, NY: Cambridge University Press, November 2006. ISBN: 9780521859714.

Recommended Texts

Other easier-to-read but less comprehensive texts that are helpful:

For short, clear synopses of methods for many types of problems:

Buy at Amazon Press, William H. Numerical Recipes in C: The Art of Scientific Computing. New York, NY: Cambridge University Press, 1988. ISBN: 9780521354653.
Comes in various editions.

For simple methods and a good introduction to using MATLAB®:

Buy at Amazon Recktenwald, Gerald W. Introduction to Numerical Methods with MATLAB®: Implementations and Applications. Upper Saddle River, NJ: Prentice-Hall, 2000. ISBN: 9780201308600.

For a more concise coverage of many topics discussed in Beers's text:

Buy at Amazon Heath, Michael T. Scientific Computing: An Introductory Survey. 2nd ed. New York, NY: McGraw-Hill Companies, Inc., 2002. ISBN: 9780072399103.

Homework Guidelines

You will submit your solution electronically. The due date is 9am on Wednesday, although submissions after that time will be marked as late and (at least for this first homework) accepted on the same day. If you have difficulty working with the computer systems, please consult the TAs.

Write a Microsoft® Word® document with the title username_HW1.doc, where username is your MIT e-mail name (for example, for, it would be sample_email_address_ihtfp_HW1.doc). In this document, describe how you solved each problem, and include as figures any graphs that you wish to present. Like any piece of technical writing, you must find a balance between being concise and providing sufficient detail that an educated reader can follow your reasoning and methods. The Microsoft® equation editor is available for typing any equations.

If in a particular problem you are asked to write a MATLAB® program, gather all necessary code into a single .m file and submit it electronically as well (we may wish to run it). Use the file name username_HW1_PX.m for the program for problem X. In your Microsoft® Word® document, clearly note the name of any program that you submit, and describe how it may be used to perform the calculation for the problem; for example, describe what you should provide as input, how the results are stored, etc.

Do all analysis and data visualization within your MATLAB® program - do not export your results to another program such as Microsoft® Excel® for plotting. It is not necessary and makes it difficult for us to reproduce (and assess) your results.

You are free to discuss and consult with your colleagues, but everyone must submit his or her own programs and solution. You may not simply copy the program of another, or jointly write the same program. This would defeat the purpose of the class, which is to provide you with personal experience in scientific computing.


Homework (best 10 out of 11 assignments) 30%
Two quizzes 30%
Final exam 40%



The calendar below provides information on the course's lecture (L) and quiz (Q) sessions.

L1 Using MATLAB® to evaluate and plot expressions  
L2 Solving systems of linear equations  

Matrix factorization


L4 When algorithms run into problems: Numerical error, ill-conditioning, and tolerances Problem set 1 due: MATLAB®
L5 Introduction to systems of nonlinear equations  
L6 Modern methods for solving nonlinear equations  
L7 Introduction to eigenvalues and eigenvectors Problem set 2 due: Systems of equations
L8 Constructing and using the eigenvector basis  
L9 Function space vs. real space methods for partial differential equations (PDEs) Problem set 3 due: Eigenvalues, linear algebra
L10 Function space  

Numerical calculation of eigenvalues and eigenvectors

Singular value decomposition (SVD)

Problem set 4 due: Eigenvectors
Q1 Quiz 1  
L12 Ordinary differential equation - initial value problems (ODE-IVP) and numerical integration  


MATLAB® ordinary differential equation (ODE) solvers

Problem set 5 due: SVD, integrals

Implicit ordinary differential equation (ODE) solvers



Differential algebraic equations (DAEs)

Introduction: Optimization

L16 Unconstrained optimization Problem set 6 due: ODE, DAE
L17 Constrained optimization  


Sensitivity analysis

Introduction: Boundary value problems (BVPs)

L19 Boundary value problems (BVPs) lecture 2 Problem set 7 due: Optimization intro BVPs
L20 Boundary value problems (BVPs) lecture 3: Finite differences, method of lines, and finite elements  
L21 TA tutorial on BVPs, FEMLAB®  
L22 Introduction: Models vs. Data Problem set 8 due: BVPs
L23 Models vs. Data lecture 2: Bayesian view  
L24 Uncertainties in model predictions  
L25 Conclude models vs. data Problem set 9 due: Models vs. Data
L26 TA led review  
Q2 Quiz 2  

Models vs. Data recapitulation

Monte Carlo and molecular dynamics

L28 Guest lecture on Monte Carlo / molecular dynamics: Frederick Bernardin  

Global optimization

Multiple minima


Modeling intrinsically stochastic processes

Multiscale modeling

L31 Fluctuation-dissipation theorem Problem set 10 due: Monte Carlo
L32 Kinetic Monte Carlo and turbulence modeling  

Operator splitting

Strang splitting


Fourier transforms

Fast fourier transform (FFT)

Problem set 11 due: Stochastic processes
L35 Summary: Problem solving  
L36 TA led final review