This introduction to computer-based problem-solving using the MATLAB(R) environment is highly recommended for students wishing to learn the concepts and develop the programming skills that are fundamental to computational science and engineering (CSE). Through a "teaching by examples" approach, the authors pose strategically chosen problems to help first-time programmers learn these necessary concepts and skills. Each section formulates a problem and then introduces those new MATLAB(R) language features that are necessary to solve it. This approach puts problem-solving and algorithmic thinking first and syntactical details second. Each solution is followed by a "talking point" that concerns some related, larger issue associated with CSE. Collectively, the worked examples, talking points, and 300+ homework problems build intuition for the process of discretization and an appreciation for dimension, inexactitude, visualization, randomness, and complexity. This sets the stage for further coursework in CSE areas. The interplay between programming and mathematics throughout the text reinforces the student's ability to reason numerically and geometrically.
Charles F. Van Loan has been at Cornell University since 1975, where he is a Professor of Computer Science and the Joseph C. Ford Professor of Engineering. He is a SIAM Fellow and the author of Matrix Computations (with G. H. Golub; Johns Hopkins, 1996), Introduction to Scientific Computing: A Matrix-Vector Approach Using MATLAB (Prentice Hall, 1999), Computational Frameworks for the Fast Fourier Transform (SIAM, 1992), Handbook for Matrix Computations (with T. F. Coleman; SIAM, 1988), and Introduction to Computational Science and Mathematics (James and Bartlett, 1996). K.-Y. Daisy Fan is a Senior Lecturer in the Department of Computer Science at Cornell University. She has a Ph.D. in Civil and Environmental Engineering and for the past eight years has taught programming and scientific computing using MATLAB, Java(TM), and Lego(R) Mindstorms(R) robotics.
* Preface* MATLAB Glossary* Programming Topics* Software* Chapter 1: From Formula to Program* Chapter 2: Limits and Error* Chapter 3: Approximation with Fractions* Chapter 4: The Discrete versus the Continuous* Chapter 5: Abstraction* Chapter 6: Randomness* Chapter 7: The Second Dimension* Chapter 8: Reordering* Chapter 9: Search* Chapter 10: Points, Polygons, and Circles* Chapter 11: Text File Processing* Chapter 12: The Matrix: Part II* Chapter 13: Acoustic File Processing* Chapter 14: Divide and Conquer* Chapter 15: Optimization* Appendix A: Refined Graphics* Appendix B: Mathematical Facts* Appendix C: MATLAB, Java, and C* Appendix D: Exit Interview* Index