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).
Other easier-to-read but less comprehensive texts that are helpful:
For short, clear synopses of methods for many types of problems:
For simple methods and a good introduction to using MATLAB®:
For a more concise coverage of many topics discussed in Beers's text:
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 firstname.lastname@example.org, 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%|
The calendar below provides information on the course's lecture (L) and quiz (Q) sessions.
|SES #||TOPICS||KEY DATES|
|L1||Using MATLAB® to evaluate and plot expressions|
|L2||Solving systems of linear equations|
|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|
Numerical calculation of eigenvalues and eigenvectors
Singular value decomposition (SVD)
|Problem set 4 due: Eigenvectors|
|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)
|L16||Unconstrained optimization||Problem set 6 due: ODE, DAE|
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|
Models vs. Data recapitulation
Monte Carlo and molecular dynamics
|L28||Guest lecture on Monte Carlo / molecular dynamics: Frederick Bernardin|
Modeling intrinsically stochastic processes
|L31||Fluctuation-dissipation theorem||Problem set 10 due: Monte Carlo|
|L32||Kinetic Monte Carlo and turbulence modeling|
Fast fourier transform (FFT)
|Problem set 11 due: Stochastic processes|
|L35||Summary: Problem solving|
|L36||TA led final review|