This text focuses on the application of quantitative analysis to the field of chemical engineering.
Modern engineering practice is becoming increasingly more quantitative, as the
use of scientific computing becomes ever more closely integrated into the daily activities
of all engineers. It is no longer the domain of a small community of specialist practitioners.
Whereas in the past, one had to hand-craft a program to solve a particular problem, carefully
husbanding the limited memory andCPUcycles available, nowwe can very quickly solve far
more complex problems using powerful, widely-available software. This has introduced the
need for research engineers and scientists to become computationally literate – to know the
possibilities that exist for applying computation to their problems, to understand the basic
ideas behind the most important algorithms so as to make wise choices when selecting and
tuning them, and to have the foundational knowledge necessary to navigate independently
through the literature.
This text meets this need, and is written at the level of a first-year graduate student
in chemical engineering, a consequence of its development for use at MIT for the course
10.34, “Numerical methods applied to chemical engineering.” This course was added in
2001 to the graduate core curriculum to provide all first-year Masters and Ph.D. students
with an overview of quantitative methods to augment the existing core courses in transport
phenomena, thermodynamics, and chemical reaction engineering. Care has been taken to
develop any necessary material specific to chemical engineering, so this text will prove
useful to other engineering and scientific fields as well. The reader is assumed to have taken
the traditional undergraduate classes in calculus and differential equations, and to have
some experience in computer programming, although not necessarily inA AB ®.
Even a cursory search of the holdings of most university libraries shows there to be a
great number of texts with titles that are variations of “Advanced Engineering Mathematics”
or “Numerical Methods.” So why add yet another?
I find that there are two broad classes of texts in this area. The first focuses on introducing
numerical methods, applied to science and engineering, at the level of a junior
or senior undergraduate elective course. The scope is necessarily limited to rather simple
techniques and applications. The second class is targeted to research-level workers, either
higher graduate-level applied mathematicians or computationally-focused researchers in
science and engineering. These may be either advanced treatments of numerical methods
for mathematicians, or detailed discussions of scientific computing as applied to a specific
subject such as fluid mechanics.
Neither of these classes of text is appropriate for teaching the fundamentals of scientific
computing to beginning chemical engineering graduate students. Examples should be typical
of those encountered in graduate-level chemical engineering research, and while the
students should gain an understanding of the basis of each method and an appreciation of
its limitations, they do not need exhaustive theory-proof treatments of convergence, error
analysis, etc. It is a challenge for beginning students to identify how their own problems
may be mapped into ones amenable to quantitative analysis; therefore, any appropriate text
should have an extensive library of worked examples, with code available to serve later as
templates. Finally, the text should address the important topics of model development and
parameter estimation. This book has been developed with these needs in mind.
This text first presents a fundamental discussion of linear algebra, to provide the necessary
foundation to read the applied mathematical literature and progress further on one’s own.
Next, a broad array of simulation techniques is presented to solve problems involving
systems of nonlinear algebraic equations, initial value problems of ordinary differential
and differential-algebraic (DAE) systems, optimizations, and boundary value problems of
ordinary and partial differential equations. A treatment of matrix eigenvalue analysis is
included, as it is fundamental to analyzing these simulation techniques.
Next follows a detailed discussion of probability theory, stochastic simulation, statistics,
and parameter estimation. As engineering becomes more focused upon the molecular level,
stochastic simulation techniques gain in importance. Particular attention is paid to Brownian
dynamics, stochastic calculus, and Monte Carlo simulation. Statistics and parameter estimation
are addressed from a Bayesian viewpoint, in which Monte Carlo simulation proves a
powerful and general tool for making inferences and testing hypotheses from experimental
In each of these areas, topically relevant examples are given, along with A AB
www atw r s c programs that serve the students as templates when later writing
their own code. An accompanying website includes aA AB tutorial, code listings of
all examples, and a supplemental material section containing further detailed proofs and
optional topics. Of course, while significant effort has gone into testing and validating these
programs, no guarantee is provided and the reader should use them with caution.
The problems are graded by difficulty and length in each chapter. Those of grade A are
simple and can be done easily by hand or with minimal programming. Those of grade B
require more programming but are still rather straightforward extensions or implementations
of the ideas discussed in the text. Those of grade C either involve significant thinking beyond
the content presented in the text or programming effort at a level beyond that typical of the
examples and grade B problems.
The subjects covered are broad in scope, leading to the considerable (though hopefully
not excessive) length of this text. The focus is upon providing a fundamental understanding
of the underlying numerical algorithms without necessarily exhaustively treating all of their
details, variations, and complexities of use. Mastery of the material in this text should enable
first-year graduate students to perform original work in applying scientific computation to
their research, and to read the literature to progress independently to the use of more
sophisticated technique Writing a book is a lengthy task, and one for which I have enjoyed much help and
support. ProfessorWilliam Green of MIT, with whom I taught this course for one semester,
generously shared his opinions of an early draft. The teaching assistants who have worked
on the course have also been a great source of feedback and help in problem-development,
as have, of course, the students who have wrestled with intermediate drafts and my evolving
approach to teaching the subject. My Ph.D. students Jungmee Kang, Kirill Titievskiy, Erik
Allen, and Brian Stephenson have shown amazing forbearance and patience as the text
became an additional, and sometimes demanding, member of the group. Above all, I must
thankmy family, and especiallymy supportive wife Jen,who have been trackingmy progress
and eagerly awaiting the completion of the book.