<?xml version="1.0"?>
<!DOCTYPE html    PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
           "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="GENERATOR" content="TtM 4.12" />
 <style type="text/css">
 div.p { margin-top: 7pt; }
 span.roman {font-family: serif; font-style: normal; font-weight: normal;} 
</style>
 <style type="text/css">
 .tiny {font-size:30%;}
 .scriptsize {font-size:xx-small;}
 .footnotesize {font-size:x-small;}
 .smaller {font-size:smaller;}
 .small {font-size:small;}
 .normalsize {font-size:medium;}
 .large {font-size:large;}
 .larger {font-size:x-large;}
 .largerstill {font-size:xx-large;}
 .huge {font-size:300%;}
 </style>
 

                                  
<title> Essential Numerical Methods </title>
</head>
<body><div>
 
<h1 align="center">Essential Numerical Methods </h1>

<h3 align="center">I H Hutchinson<br />Massachusetts Institute of Technology </h3>

<h3 align="center">&#169; 2014 </h3>

<div class="p"><!----></div>
  <table align="left" border="1"><tr><td width="0" align="center">
The book based on these lectures is <a href="https://www.cambridge.org/us/academic/subjects/physics/mathematical-methods/students-guide-numerical-methods?format=PB"><em>A Student's Guide to
 Numerical
 Methods</em></a><br />
published by Cambridge University Press, 2015. And available from
 <a href="http://www.amazon.com/Students-Guide-Numerical-Methods/dp/1107479509/">Amazon.com</a>.</td></tr></table><!--hbox-->
<br clear="all" /> <table align="left" border="1"><tr><td width="0" align="center">
For web reading guidance follow <a href="guidance.html">this
 link</a>.<br /></td></tr></table><!--hbox-->
 <table align="left" border="1"><tr><td width="0" align="center">
For corrigenda to the book consult
 <a href="corrigenda.pdf">this brief file</a></td></tr></table><!--hbox-->
                 

<div class="p"><!----></div>



<br /><br />
<span class="huge">

<div style="text-align:center">
S.D.G.
</div>
</span>

<div class="p"><!----></div>

<div class="p"><!----></div>

<h1>Contents </h1><a href="chap1.xml#tth_chAp1"
>1&nbsp; Fitting Functions to Data</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap1.xml#tth_sEc1.1"
>1.1&nbsp; Exact fitting</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap1.xml#tth_sEc1.1.1"
>1.1.1&nbsp; Introduction</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap1.xml#tth_sEc1.1.2"
>1.1.2&nbsp; Representing an exact fitting function linearly</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap1.xml#tth_sEc1.1.3"
>1.1.3&nbsp; Solving for the coefficients</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap1.xml#tth_sEc1.2"
>1.2&nbsp; Approximate Fitting</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap1.xml#tth_sEc1.2.1"
>1.2.1&nbsp; Linear Least Squares</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap1.xml#tth_sEc1.2.2"
>1.2.2&nbsp; SVD and the Moore-Penrose Pseudo-inverse</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap1.xml#tth_sEc1.2.3"
>1.2.3&nbsp; Smoothing and Regularization</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap1.xml#tth_sEc1.3"
>1.3&nbsp; Tomographic Image Reconstruction</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap1.xml#tth_sEc1.4"
>1.4&nbsp; Efficiency and Nonlinearity</a><br /><a href="chap2.xml#tth_chAp2"
>2&nbsp; Ordinary Differential Equations</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap2.xml#tth_sEc2.1"
>2.1&nbsp; Reduction to first-order</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap2.xml#tth_sEc2.2"
>2.2&nbsp; Numerical Integration of Initial Value Problem</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap2.xml#tth_sEc2.2.1"
>2.2.1&nbsp; Explicit Integration</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap2.xml#tth_sEc2.2.2"
>2.2.2&nbsp; Accuracy and Runge-Kutta Schemes</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap2.xml#tth_sEc2.2.3"
>2.2.3&nbsp; Stability</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap2.xml#tth_sEc2.3"
>2.3&nbsp; Multidimensional Stiff Equations: Implicit Schemes</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap2.xml#tth_sEc2.4"
>2.4&nbsp; Leap-Frog Schemes</a><br /><a href="chap3.xml#tth_chAp3"
>3&nbsp; Two-point Boundary Conditions</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap3.xml#tth_sEc3.1"
>3.1&nbsp; Examples of Two-Point Problems</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap3.xml#tth_sEc3.2"
>3.2&nbsp; Shooting</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap3.xml#tth_sEc3.2.1"
>3.2.1&nbsp; Solving two-point problems by initial-value iteration</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap3.xml#tth_sEc3.2.2"
>3.2.2&nbsp; Bisection</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap3.xml#tth_sEc3.3"
>3.3&nbsp; Direct Solution</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap3.xml#tth_sEc3.3.1"
>3.3.1&nbsp; Second-order finite differences</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap3.xml#tth_sEc3.3.2"
>3.3.2&nbsp; Boundary Conditions</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap3.xml#tth_sEc3.4"
>3.4&nbsp; Conservative Differences, Finite Volumes</a><br /><a href="chap4.xml#tth_chAp4"
>4&nbsp; Partial Differential Equations</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap4.xml#tth_sEc4.1"
>4.1&nbsp; Examples of Partial Differential Equations</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap4.xml#tth_sEc4.1.1"
>4.1.1&nbsp; Fluid Flow</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap4.xml#tth_sEc4.1.2"
>4.1.2&nbsp; Diffusion</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap4.xml#tth_sEc4.1.3"
>4.1.3&nbsp; Waves</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap4.xml#tth_sEc4.1.4"
>4.1.4&nbsp; Electromagnetism</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap4.xml#tth_sEc4.2"
>4.2&nbsp; Classification of Partial Differential Equations</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap4.xml#tth_sEc4.3"
>4.3&nbsp; Finite Difference Partial Derivatives</a><br /><a href="chap5.xml#tth_chAp5"
>5&nbsp; Diffusion. Parabolic Partial Differential Equations</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap5.xml#tth_sEc5.1"
>5.1&nbsp; Diffusion</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap5.xml#tth_sEc5.2"
>5.2&nbsp; Time Advance Choices and Stability</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap5.xml#tth_sEc5.2.1"
>5.2.1&nbsp; Forward Time, Centered Space</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap5.xml#tth_sEc5.2.2"
>5.2.2&nbsp; Backward Time, Centered Space. Implicit Scheme.</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap5.xml#tth_sEc5.2.3"
>5.2.3&nbsp; Partially implicit, Crank-Nicholson schemes.</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap5.xml#tth_sEc5.3"
>5.3&nbsp; Implicit Advancing Matrix Method</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap5.xml#tth_sEc5.4"
>5.4&nbsp; Multiple Space Dimensions</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap5.xml#tth_sEc5.5"
>5.5&nbsp; Estimating Computational Cost</a><br /><a href="chap6.xml#tth_chAp6"
>6&nbsp; Elliptic Problems and Iterative Matrix Solution</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap6.xml#tth_sEc6.1"
>6.1&nbsp; Elliptic Equations and Matrix Inversion</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap6.xml#tth_sEc6.2"
>6.2&nbsp; Convergence Rate</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap6.xml#tth_sEc6.3"
>6.3&nbsp; Successive Over-Relaxation</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap6.xml#tth_sEc6.4"
>6.4&nbsp; Iteration and Nonlinear Equations</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap6.xml#tth_sEc6.4.1"
>6.4.1&nbsp; Linearization</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap6.xml#tth_sEc6.4.2"
>6.4.2&nbsp; Combining linear and nonlinear iteration</a><br /><a href="chap7.xml#tth_chAp7"
>7&nbsp; Fluid Dynamics and Hyperbolic Equations</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap7.xml#tth_sEc7.1"
>7.1&nbsp; The fluid momentum equation</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap7.xml#tth_sEc7.2"
>7.2&nbsp; Hyperbolic Equations</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap7.xml#tth_sEc7.3"
>7.3&nbsp; Finite Differences and Stability</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap7.xml#tth_sEc7.3.1"
>7.3.1&nbsp; FTCS is unstable</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap7.xml#tth_sEc7.3.2"
>7.3.2&nbsp; Lax-Friedrichs and the CFL condition</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap7.xml#tth_sEc7.3.3"
>7.3.3&nbsp; Lax-Wendroff achieves second order accuracy</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap7.xml#tth_sEc7.4"
>7.4&nbsp; Worked Example: Three-dimensional fluids</a><br /><a href="chap8.xml#tth_chAp8"
>8&nbsp; Boltzmann's Equation and its solution</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap8.xml#tth_sEc8.1"
>8.1&nbsp; The Distribution Function</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap8.xml#tth_sEc8.2"
>8.2&nbsp; Conservation of Particles in Phase-Space</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap8.xml#tth_sEc8.3"
>8.3&nbsp; Solving the Hyperbolic Boltzmann Equation</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap8.xml#tth_sEc8.3.1"
>8.3.1&nbsp; Integration along orbits</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap8.xml#tth_sEc8.3.2"
>8.3.2&nbsp; Orbits are Characteristics</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap8.xml#tth_sEc8.4"
>8.4&nbsp; Collision Term</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap8.xml#tth_sEc8.4.1"
>8.4.1&nbsp; Self-scattering</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap8.xml#tth_sEc8.4.2"
>8.4.2&nbsp; No self-scattering</a><br /><a href="chap9.xml#tth_chAp9"
>9&nbsp; Energy-Resolved Diffusive Transport</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap9.xml#tth_sEc9.1"
>9.1&nbsp; Collisions of Neutrons</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap9.xml#tth_sEc9.2"
>9.2&nbsp; Reduction to multigroup diffusion equations</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap9.xml#tth_sEc9.3"
>9.3&nbsp; Numerical Representation of Multigroup Equations</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap9.xml#tth_sEc9.3.1"
>9.3.1&nbsp; Groups</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap9.xml#tth_sEc9.3.2"
>9.3.2&nbsp; Steady State Eigenvalue</a><br /><a href="chap10.xml#tth_chAp10"
>10&nbsp; Atomistic and Particle-in-Cell Simulation</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap10.xml#tth_sEc10.1"
>10.1&nbsp; Atomistic Simulation</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap10.xml#tth_sEc10.1.1"
>10.1.1&nbsp; Atomic/Molecular Forces and Potentials</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap10.xml#tth_sEc10.1.2"
>10.1.2&nbsp; Computational requirements</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap10.xml#tth_sEc10.2"
>10.2&nbsp; Particle in Cell Codes</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap10.xml#tth_sEc10.2.1"
>10.2.1&nbsp; Boltzmann Equation Pseudoparticle Representation</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap10.xml#tth_sEc10.2.2"
>10.2.2&nbsp; Direct Simulation Monte Carlo treatment of gas</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap10.xml#tth_sEc10.2.3"
>10.2.3&nbsp; Particle Boundary Conditions</a><br /><a href="chap11.xml#tth_chAp11"
>11&nbsp; Monte Carlo Techniques</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap11.xml#tth_sEc11.1"
>11.1&nbsp; Probability and Statistics</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap11.xml#tth_sEc11.1.1"
>11.1.1&nbsp; Probability and Probability Distribution</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap11.xml#tth_sEc11.1.2"
>11.1.2&nbsp; Mean, Variance, Standard Deviation, and Standard Error</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap11.xml#tth_sEc11.2"
>11.2&nbsp; Computational random selection</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap11.xml#tth_sEc11.3"
>11.3&nbsp; Flux integration and injection choice.</a><br /><a href="chap12.xml#tth_chAp12"
>12&nbsp; Monte Carlo Radiation Transport</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap12.xml#tth_sEc12.1"
>12.1&nbsp; Transport and Collisions</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap12.xml#tth_sEc12.1.1"
>12.1.1&nbsp; Random walk step length</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap12.xml#tth_sEc12.1.2"
>12.1.2&nbsp; Collision type and parameters</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap12.xml#tth_sEc12.1.3"
>12.1.3&nbsp; Iteration and New Particles</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap12.xml#tth_sEc12.2"
>12.2&nbsp; Tracking, Tallying and Statistical Uncertainty</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap12.xml#tth_sEc12.3"
>12.3&nbsp; Worked Example: Density and Flux Tallies</a><br /><a href="chap13.xml#tth_chAp13"
>13&nbsp; Next Steps</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap13.xml#tth_sEc13.1"
>13.1&nbsp; Finite Element Methods</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap13.xml#tth_sEc13.2"
>13.2&nbsp; Discrete Fourier Analysis and Spectral Methods</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap13.xml#tth_sEc13.3"
>13.3&nbsp; Sparse Matrix Iterative Krylov Solution</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap13.xml#tth_sEc13.4"
>13.4&nbsp; Fluid Evolution Schemes</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap13.xml#tth_sEc13.4.1"
>13.4.1&nbsp; Incompressible fluids and pressure correction</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap13.xml#tth_sEc13.4.2"
>13.4.2&nbsp; Nonlinearities, shocks, upwind and limiter differencing</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="chap13.xml#tth_sEc13.4.3"
>13.4.3&nbsp; Turbulence</a><br /><a href="chapA.xml#tth_chApA"
>A&nbsp; Summary of Matrix Algebra</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chapA.xml#tth_sEcA.1"
>A.1&nbsp; Vector and Matrix Multiplication</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chapA.xml#tth_sEcA.2"
>A.2&nbsp; Determinants</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chapA.xml#tth_sEcA.3"
>A.3&nbsp; Inverses</a><br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="chapA.xml#tth_sEcA.4"
>A.4&nbsp; Eigenanalysis</a><br /><a href="docindex.xml#tth_sEcindex">Index</a><br />

<div class="p"><!----></div>

<h1>Preface</h1>

<div class="p"><!----></div>
This book presents what every graduate-level physicist
and engineer should know about solving physical problems by
computer. 

<div class="p"><!----></div>
Hardly any research engineer or scientist, whatever their speciality,
can do without at least minimal competence in computational and
numerical methods. It helps the practitioner greatly to appreciate the
big picture of how computational techniques are applied.  A book like
this that covers the breadth of the methods, with a minimum of fuss,
serves the purpose of acquiring the essential knowledge.  It is
derived from an accelerated short course for entering graduate
students in the MIT Department of Nuclear Science and
Engineering. That's why some examples used to illustrate the numerical
techniques are drawn from Nuclear Science and Engineering. But no
specific background nuclear knowledge is required. The mathematical
and computational techniques explained are applicable throughout a
whole range of engineering and physical science disciplines, because
the underlying numerical methods are essentially common.

<div class="p"><!----></div>
For so short a course, a great deal of background must be taken for
granted, and a lot of relevant topics omitted. The brevity is not a
fault though; it is an intention. And while there is an enormous range
of material that <em>could</em> be added, I see the deliberate selection
as a merit. This approach, I believe, enables a student to read the
text sequentially, experience rapid progress, and work to
<em>master</em> the content. Of course the present approach contrasts
strongly both with comprehensive textbooks and with
handbooks. Massive teaching <em>textbooks</em> in addition to
providing vastly more detail, cover topics such as standard matrix
inversion or decomposition, and elementary quadrature. Those can
mostly be taken for granted today, I believe, because of widespread
use of mathematical computing systems.  Large textbooks also often
approach the topics by a round-about set of examples and develop the
mathematics in more elementary and drawn out style. Doubtless that
approach has merit, but it requires much more time to get to the heart
of the matter. Students with good preparation appreciate a more
accelerated approach than slogging through many hundreds of pages of
textbook. That's especially so, since such textbooks often stop just
when the techniques are getting useful for science and engineering,
that is, with partial differential equations. This book gets to
partial differential equations by the second quarter of its material,
and continues into discussion of particle and Monte Carlo methods that
are essential for modern computational science and engineering, but
rarely treated in general numerical methods text books.  There are
several excellent numerical methods <em>handbooks</em>; and I often use
them. They cover so much material, though, that the reader can and
should only dip into it, and use it for reference. Benefitting from
such comprehensive treatments requires an understanding of the
framework of the subject. The present book aims to provide that
framework in as compact a form as is reasonable.

<div class="p"><!----></div>
Even having deliberately chosen to keep it short, there are some
places where additional explanation or details seem really
valuable. To maintain the continuity and brevity of the main text, the
additional material has been placed in <em>enrichment</em> sections.  Enrichment material
can safely be omitted (and is omitted from the lectures and the
expectations of the half-term course as I teach it) but its presence gives
additional background and allows an interested reader to see, still
briefly, where the cited results come from. The main material
(excluding the footnotes, enrichment, worked examples, or exercises)
of each chapter except the last is designed to be covered in a one and a
half hour lecture. But most students then need to spend time reviewing
the material of that lecture including the worked examples.

<div class="p"><!----></div>
Although the course includes mathematical and computational exercises,
which implement the algorithms that are discussed, it does not teach
programming. A student who wants to master the material must tackle
the exercises. To do so, the student must already have, or develop as
they go, sufficient familiarity with a chosen language or
computational system. The exercises have been tested with the use of
Octave, which is an open source alternative with practically the same
syntax and capability as Matlab. Many students will find these systems
appropriate, because they have built-in graphics and matrix variable
types and routines, but many other language choices are
possible. Elementary familiarity with matrices and the terms of linear
algebra is presumed. That knowledge is reviewed in highly abbreviated
form in the appendix. A principle of the development is that routine
matrix algebra and functions are just used; standard direct matrix
algorithms are not explained or programmed. However, iterative matrix
techniques that are specific to solving differential equations are
introduced on the basis of physical intuition as part of the main
development, and a brief introduction to modern iterative sparse
matrix solution techniques is given in the final chapter.

<div class="p"><!----></div>
Many, perhaps most, problems encountered in physical science and
engineering are expressed in terms of ordinary or partial differential
equations.  Familiarity with vector calculus is therefore an absolute
prerequisite. As much as is needed of the general theory of partial
differential equations is developed within the course, but it is the
merest outline. While a serious effort is made to provide
self-consistent accuracy of expression and mathematics, no pretence
whatever is made to mathematical rigor. There are no theorems
here. The purpose is not to teach mathematical proofs; it is to equip
students with the mathematical insights and tools to understand and
use computational techniques. This outlook permits us to approach
topics in a sequence that is intuitive, but would be ruled out by
insistence on mathematical rigor.

<div class="p"><!----></div>
Understanding how to solve the equations that govern common physical
systems comes partly from knowing how they arise. Therefore some are
derived from first principles. The majority of students will have seen
some comparable derivation in their earlier education. Therefore the
derivations here are terse. And while the text is mostly
self-contained, the learning curve for students without any prior
background in diffusion, fluid flow, collisions, or the kinetic theory
of gases, will be rather steep. It may be advisable for them to
supplement the treatment with wider reading.

<div class="p"><!----></div>
Students that complete this book including the exercises will

<ul>
<li> Become familiar with computational engineering and its mathematical
foundations, at an elementary level.
<div class="p"><!----></div>
</li>

<li> Deepen their understanding of the basic equations governing the
  physical phenomena.
<div class="p"><!----></div>
</li>

<li> Understand the methods by which problems can be solved using
  computation.
<div class="p"><!----></div>
</li>

<li> Develop experience, confidence, and good critical judgement in
  the application of numerical methods to the solution of physical
  problems.
<div class="p"><!----></div>
</li>

<li> Strengthen their ability to use computation in theoretical
  analysis and experimental data interpretation.
<div class="p"><!----></div>
</li>
</ul>
The idea behind these objectives is that for students who do not
specialize in computational engineering or science, this might be the
<em>last</em> course they take in numerical techniques. 

<div class="p"><!----></div>
Though the aim
is to provide what <em>every</em> physicist and engineer should know
about computational problem solving, it is not to provide
<em>everything</em> they should know. Graduate students who undertake
computationally based research or other professional activities in
science or engineering will certainly eventually need more than is
covered here.  For them, however, this might be a useful <em>first</em>
course, because it rapidly surveys a wide range of algorithms, thus
quickly providing a broad perspective on computational science
technique.

<div class="p"><!----></div>
<br /><br />
<b>Acknowledgements&nbsp;&nbsp;</b> This book owes a great deal to students
in the course Essential Numerical Methods, who by their interest,
questions, corrections, and occasional puzzlement have helped me identify and
explain the key conceptual challenges of learning computational
physics and engineering. I am grateful to MIT for support in
developing the material of this book; and always to my wife Fran, for
her endless love and care, without which this work would not have happened.

<div class="p"><!----></div>


<div class="p"><!----></div>


<div class="p"><!----></div>

<hr /><table width="100%"><tr><td>
 <a href="index.xml">HEAD</a></td><td align="right">
<a href="chap1.xml">NEXT
</a></td></tr></table>
</div></body></html>
