This course will introduce students to the theory, methods, and tools of scientific computing. Upon successful completion of the course, a student should be able to tackle moderate computational problems from beginning to end. This includes an initial analysis, choice of methods, choice of languages and APIs, writing and testing of code, application to problem, use of visualization tools, and composition of a coherent written discussion of all of the above.Each student will complete a final project under the supervision of the instructor.
Specific topics: floating point storage and arithmetic, classical and iterative methods for linear systems, iterative methods for non-linear systems, matrix factorizations (LU, Cholesky, QR, SVD), linear least squares, eigenvalues and eigenvectors.
Tools: GNU Tools (gcc, g77, g++, GNU make, et al.), Matlab, LaTeX, BLAS, LAPACK, among others.
Computers have become important tools for the majority of mathematicians, whether to perform experiments, to visualize data or geometries, or to prove theorems. They are used for both symbolic computation and numerical computation. Thus a computing course is required for first year graduate students in mathematics. Students from other departments, especially engineering and computer science, are also encouraged to enroll. Mathematics students who believe they will be specializing in some area of applied mathematics usually take this course (Math 224); students who believe they will be specializing in some area of pure mathematics usually take Math 250 (Computation in Algebra and Geometry). Historically, graduate students in mathematics have often eventually taken both courses.