From the Inside Flap
This book is about using MATLAB to obtain numerical solutions to problems in engineering and science. The emphasis is on the application of standard numerical techniques, not on the analysis of those techniques. Mathematical theory is used primarily to develop the logic of the algorithms and to identify the strengths and weaknesses of different numerical methods. In most cases, the behavior of the methods is exposed by numerical experiment.
The intended audience is students in engineering and science learning how to use numerical methods in their own disciplines. I also hope the book will be useful to practicing engineers and scientists who have a specific numerical task and wish to implement a solution in MATLAB. The reader needs no previous experience in numerical analysis. A solid understanding of basic calculus is assumed, as is some previous exposure to linear algebra, differential equations, and computer programming.
This is not a "how to Á " book. Although there are many examples that show how to use MATLAB to solve practical problems, the "how" is accompanied by a strong dose of "why." The basic theory of each method is developed before that method is implemented in MATLAB. If you are interested in a set of recipes for plugging numbers into MATLAB statements, you should put this book down and select another one from the shelf. If you are interested in developing an understanding of how certain numerical methods work and how different methods used to accomplish the same task compare, read on.
Not every routine presented here is recommended for solving practical problems. Elementary algorithms are implemented and their performance is investigated. Advanced techniques are then developed as improvements on the elementary algorithms. By progressing from the simple to the sophisticated, the reader is given -an understanding of the fundamentals, as well as guidance on how to apply more reliable arid efficient algorithms to practical problems. Numerous sample problems are provided in each chapter. Where applicable, the same problem is solved with different methods, and the results are compared. Simple examples allow the reader to focus on the fundamental aspects of the numerical methods. More sophisticated examples demonstrate the solution to realistic and complicated practical problems.
The first part of the book provides an introduction to MATLAB as an interactive computing system and as a programming language. It is assumed that the reader has some prior experience with computer programming. The material is presented as a first course in numerical methods, not a first course in programming. An ambitious and determined person with significant computer experience could probably use this material as a condensed introduction to programming, although, for that purpose, there are better books.Once the NMM toolbox is installed on your computer, you will be able to interactively execute all of the sample problems in this book, as well as apply the NMM toolbox routines to practical problems in your own work. To the Student
Learning to use computers can be an extremely frustrating experience. It is very easy; in a state of exhaustion and despair, to conclude that numerical methods are (choose one or all of the following) (1) a waste of effort, (2) solely a means of torture, (3) only to be learned by computer geeks, (4) making me less, not more, productive. When I teach numerical methods, I warn my students that they can expect an initial drop in their productivity as they learn a new tool such as MATLAB. It is inevitable that mastering something as powerful and multifaceted as MATLAB will take patience and commitment. The rewards, however, are significant.
The best way to learn a computer tool is to use it. With the knowledge that it may at times be frustrating, jump in. Try it. Let mistakes happen. You will not damage the computer by entering an incorrect MATLAB command. Have this book open when you are running MATLAB. Enter the commands that appear in the text, and explain the outcome in your own words. Try not to rush through the examples. Do not treat them as recipes that must never be altered. Experiment. See if you can break the examples by changing the input parameters. The failure of a numerical solution is a learning experience. Why does one set of inputs work when another does not? What is the smallest difference between two set of inputs that differentiates success from failure? Does the method fail because of an inherent weakness, or are the inputs not valid? Will a more powerful method work for the same inputs?
Use the study guides, lecture notes, solutions to selected end-of-chapter exercises, and other supplemental learning material at prenhall/recktenwald to complement the information in the book. The study guides are designed to help you master the material presented in each chapter, and contain learning goals that will be most useful if consulted after reading the chapter. Your instructor may highlight specific learning goals from the study guides. In each chapter solutions to selected end-of-chapter exercises, designated by SOLUTION, are provided. To the Instructor
Various subsets of the material in this book may be organized into college-level courses. To help orient the reader, the beginning of each chapter contains a brief outline of the major topics covered. Study guides for each chapter provide a series of learning objectives divided into basic, intermediate, and advanced topics. Recognizing that the classification of topics is subjective, I am making the study guides available as PDF and as plain text documents at prenhall/recktenwald. Instructors are encouraged to download and adapt the study guides to their own selection of topics. Other course materials, including transparency masters, are also available at prenhall/recktenwald.
Some very important practical areas of numerical computation are not covered in the book: iterative methods for linear systems of equations, the fast Fourier transform, partial differential equations, and minimization (optimization). These topics were included in the original outline, but as the manuscript evolved, and the sabbatical allocated for writing expired, it became clear that not everything in my plan would make it into the final draft. The absence of some numerical methods will be viewed as a limitation by some instructors. This has not been a problem for the course that was the impetus for writing the book. I believe that undergraduate students are better served by providing a sound foundation in the fundamentals than by a quickly paced survey of many numerical methods. The focus of this book is on providing such a foundation.
I believe that it is counterproductive to require engineering students to develop all of their own programs from pseudocode. This is not to suggest that numerical methods should be treated superficially or that the reader use the NMM toolbox routines as black boxes. The source code for the NMM toolbox is provided with the intention that it is to be read as an integral part of the text. Many of the end-of-chapter assignments require modifications to the source code presented in the chapter, or application of the codes to new problems. Starting with working codes allows you to challenge your students through the application of numerical methods to your discipline. This frees you to focus on the behavior of each numerical method without having to guide students as they reinvent standard methods. Having a library of working codes at their disposal, students are also more likely to apply numerical methods in other classes. This provides an opportunity for integrating numerical methods into the undergraduate curriculum. A Few Words of Caution
As with any work of this scope and size, there is certainly room for improvement. If you find errors or have suggestions, I would be grateful if you take the time to point them out to me. Send all corrections and suggestions for improvements via e-mail. I will maintain errata at prenhall/recktenwald.
I cannot, of course, in any way be responsible for negative (or positive!) outcomes from the application of the techniques presented here. There are many ways to apply a correct algorithm to the wrong problem. There are also limits to applying any technique to the problems for which it was designed. Though I have tried to offer guidance, you assume all the risk of using any of the algorithms, codes, and recommendations provided in the book. Thanks
I have accumulated many debts on the path toward completion of this book. The writers and researchers that I have drawn upon have provided a rich background that I have synthesized into my own writing. The creators of MATLAB have produced a useful and beautiful tool that has significantly advanced my understanding of numerical mathematics. I have benefited immensely from the NA-net and NA-teach electronic digests. My teachers were inspiring and patient as I began my training in engineering and numerical problem-solving. My students endured experiments in my development of the draft manusc
From the Back Cover
This book is an introduction to MATLAB and an introduction to numerical methods. It is written for students of engineering, applied mathematics, and science. The primary objective of numerical methods is to obtain approximate solutions to problems that are not obtainable by other means. This book teaches how the core techniques of numerical methods are used to solve otherwise unsolvable problems of modern technological significance.
The outstanding pedagogical features of this book are:
- use of numerical experiments as a means of learning why numerical methods work and how they fail
- a separate chapter reviewing the basics of applied linear algebra, and how computations involving matrices and vectors are naturally expressed in MATLAB
- use of a range of examples from those that provide a succinct illustration of a basic algorithm, to those that develop solutions to substantial problems in engineering
- consistent use of well-documented and structured code written in the MATLAB idiom
- a library of general purpose routinesthe NMM Toolboxthat are readily applied to new problems
- a progressive approach to algorithm development leading the reader to an understanding of the more sophisticated routines in the built-in MATLAB toolbox.
The primary goals of the book are to provide a solid foundation in applied computing, and to demonstrate the implementation and application of standard numerical methods to practical problems. This is achieved by a systematic development of techniques beginning with the simple and ending with the sophisticated. Good programming practice is used throughout to show the reader how to clearly express and document computational ideas. By providing an extensive library of working codes, as well as an exposition of the methods used by the built-in MATLAB toolbox, the reader is challenged by the application of numerical methods to practical problems. This bypasses the ritual of forcing the reader to reinvent simple programs that fail on more technologically significant, practical problems.