Office: 024 Physics
Phone: 660-2861
Fax: 660-2821
Scientific computing is both problem-solving with a computer, and computing with a scientific purpose. As the student engages this subject, he or she should always keep in mind a practical problem of interest to be solved; this step typically involves interaction with engineers, physicists, chemists, biologists, physicians, economists or social scientists. This problem needs to be formulated as a mathematical model, and the mathematical properties of this model should be investigated to be sure that the model is well-posed. Mathematics comes into play again when the student develops numerical methods and numerical approximations to solve the problem. Since the computer is employed to perform these numerical calculations, the student needs to know how to converse with the computer through some programming language; some programming languages make this task easier than other languages. Finally, since the computer program must be implemented on an actual machine, the computer architecture is also an issue; this naturally leads the student to interact with computer scientists.
In order to help the student make a clear connection between the problem model and its numerical solution on a particular machine, we will emphasize the use of computer programming languages. In particular, we will discuss the use of Fortran and C++. There are a tremendous number of high-quality scientific algorithms available in Fortran, and Fortran still provides the most user-friendly and efficient implementation of multi-dimensional arrays. C++ allows us to develop simple interfaces to complicated operations such as graphics; if implemented properly, C++ can also perform many common scientific computations efficiently. However, the C++ math libraries are not so well-developed as Fortran.
A basic reference and hypertext for the course isScientific Computing
by John Trangenstein. My plan right now is to cover the first seven chapters which are entitledHere is a link to John Trangenstein's math224 directory which contains lots of stuff of interest. Most if not all of this material appears as links in Scientific Computing. Here is a link to John Trangenstein's Math 225 Web Page which you may find helpful. Last, and I hope not least, here is a link to my directory for Math 224.
- Introduction
- Working with a Computer
- Linear Algebra
- Computer Graphics
- Nonlinear Equations
- Least Squares Problems
- Eigenvalues and Eigenvectors
Some additional materials by William K. Allard
Taylor's Theorem First order ordinary differential equations Richardson extrapolation of the error Significance and error The IEEE standard for floating-point arithmetic Matrix multiplication and performance Norms Error analysis for perturbed linear systems Backward error analysis for LU factorization Orthogonal projection Contrary to what I said earlier, x/y==1 implies x==y is true! QR factorization The contraction mapping principle and the inverse function theorem Error analysis for the Newton-Raphson method and the secant method The power method and deflation. Other goodies
An Overview of Fortran by John C. Strikwerda Intel's technical information on the Pentium What every computer scientist should know about floating-point arithmetic by David Goldberg. This is a large document. William Kahan's home page Kahan is the "grand old man" of floating point arithmetic. The gnuplot manual. Netlib is an outstanding collection of mathematical software, papers, and databases. The LAPACK User's Guide - Third Edition You can learn a great deal by reading this and experimenting with the routines. The gnuplot manual.
Homework
Return to: Duke University * Mathematics Department
wka@math.duke.edu Last modified: November 27, 2000