by
James E. Gentle
Chapter 0. Preview/Review for Students in the Computational Sciences
There are a number of fundamental skills and a basic set of knowledge
that must be in the command of all who work in the computational
sciences. This book addresses major subsets of that body of
knowledge,
and some of that knowledge is prerequsite background for this book.
The exercises in this text assume also a set of technical skills.
Careful attention to the exercises will hone these skills.
The following outline indicates the necessary background
(what this book is not about)
and provides a preview of the material covered in the text
(what this book is about).
The outline also serves as
a list of topics for review. The terms listed in the Subject Index
provide a vocabulary review.
Knowledge and skills must evolve over time. Technical skills in
particular must be kept current.
Technical Skills
Work in the computational sciences often involves hands-on computing.
This book assumes a certain level of copmputational technical skills.
Some of the technical skills required
at this point in time will not be required in the future. They will
be
replaced by new skills.
- General familiarity with both Unix and Microsoft Windows.
- Ability to program in Fortran or C.
- General familiarity with sources of scientific software.
- Facility in the use of at least one of the following packages:
Matlab, S-Plus, PV-Wave, Maple, and Mathematica.
- General familiarity with appropriate structures for
representing
scientific and statistical data.
- Ability to work in a software development team.
- General familiarity with literature and software sources, and
ability to locate specific sources as needed.
Communication Skills
In all areas of the sciences, communication is an important activity.
Scientific advancces are of little value unless they can be described
clearly.
- Ability to organize and write grammatically correct
descriptions
of mathematical and scientific concepts.
- Ability to design and produce appropriate visual displays of
information.
General Mathematics Background
All research workers in the computational sciences need at least some
mathematics background in each of the areas listed above.
The required levels of knowledge in particular areas
vary considerably with the specific area of the computational
sciences.
- Linear algebra.
- Advanced calculus.
- Differential equations.
- Probability and statistics.
Except for some material in linear algebra, these background topics
are
not covered directly in this text.
The requirement for expertise in differential equations and in
probability and statistics, in particular, is quite different in
different types of scientific investigation.
Knowledge of Computational Science
This text is about computational science and numerical analysis. Many
of the topics required in common by all research workers in the
computational sciences are addressed in this text.
Following a course in the foundations of computational science,
the student should understand the topics listed below,
be able to describe any of them briefly, and more importantly, be able
to apply the understanding in the context of scientific
investigations.
- Basics of numerical computations on digital computers
(Chapter 1).
- Floating-point model, and its implications.
- Principles of algorithm analysis and design.
- Principles of software design.
- Use of advanced computer architectures.
- Basic methods of random number generation and issues relating
to
the quality of the generators
(Chapter 2).
- Methods of simulating specific distributions
(Chapter 2).
- Inverse CDF.
- Acceptance/rejection principles.
- Monte Carlo methods
(Chapter 2).
- Quadrature - multivariate integrals; improper integrals.
- Variance reduction.
- Methods for more general simulation
(Chapter 2} and other chapters).
- General numerical methods for vectors and matrices
(Chapter 3).
- Methods for solving linear systems; matrix decompositions such
as $QR$, Cholesky, $LU$, and SVD
(Chapter 3).
- Basic methods for eigensystems and singular values
(Chapter 3).
- Methods for solving nonlinear systems
(Chapter 4).
- Methods for optimization of differentiable functions:
Newton, quasi-Newton, Gauss-Newton, stochastic approximation
methods, and so on
(Chapter 4).
- Methods for optimization over dense domains, that do not use
derivatives:
Nelder-Mead, dud, and so on
(Chapter 4).
- Methods for combinatorial optimization:
simulated annealing, genetic algorithms, and so on
(Chapter 4).
- Methods for optimization under constraints
(Chapter 4).
- Orthogonal systems; expansions; transforms, of both functions
and data
(Chapter 5).
- Data analysis
(Chapters 5 and 6).
- Fitting models to data
(Chapter 5).
- Interpolation.
- Approximation/estimation.
- Minimizing residuals.
- Maximizing likelihood.
- Basic operations with multivariate data
(Chapter 6).
- Data structures and storage formats.
- Ordering of multivariate data (graphs, minimal spanning
trees, etc.).
- Finding patterns and identifying groups in data
(clustering, classification).
- Dimension reduction (principal components analysis and
related techniques).
- Quadrature
(Chapter 7).
- Solution of ODEs
(Chapter 7).
- Solution of PDEs
(Chapter 7).
- Solution of SDEs
(Chapter 7).
- Fitting differential equations to data
(Chapter 7).
- Building and analyzing mathematical and computer models
(Chapters 5, 6, and 7).
Applications
This text mentions a number of applications, but does not discuss any
of
them extensively. The student will be expected to complete a project
that applies the skills and topics listed above to
some area of the computational sciences.