Muutke küpsiste eelistusi

Gentle Introduction to Scientific Computing [Kõva köide]

(University of Wyoming, USA), (University of Wyoming, USA)
Teised raamatud teemal:
Teised raamatud teemal:
Scientific Computation has established itself as a stand-alone area of knowledge at the borderline between computer science and applied mathematics. Nonetheless, its interdisciplinary character cannot be denied: its methodologies are increasingly used in a wide variety of branches of science and engineering.

A Gentle Introduction to Scientific Computing intends to serve a very broad audience of college students across a variety of disciplines. It aims to expose its readers to some of the basic tools and techniques used in computational science, with a view to helping them understand what happens "behind the scenes" when simple tools such as solving equations, plotting and interpolation are used.

To make the book as practical as possible, the authors explore their subject both from a theoretical, mathematical perspective and from an implementation-driven, programming perspective.

Features





Middle-ground approach between theory and implementation. Suitable reading for a broad range of students in STEM disciplines. Could be used as the primary text for a first course in scientific computing. Introduces mathematics majors, without any prior computer science exposure, to numerical methods.

All mathematical knowledge needed beyond Calculus (together with the most widely used Calculus notation and concepts) is introduced in the text to make it self-contained.

The erratum document for A Gentle Introduction to Scientific Computing can be accessed here.
Preface ix
1 Introduction
1(4)
1.1 Scientific Computing
1(1)
1.2 MATLAB®: What and Why?
2(1)
1.3 A Word of Caution
3(1)
1.4 Additional Resources
4(1)
2 Vectors and Matrices
5(16)
2.1 Unidimensional Arrays: Vectors
5(1)
2.2 Bidimensional Arrays: Matrices
6(1)
2.3 Matrix Operations
7(2)
2.4 Systems of Linear Equations
9(4)
2.5 Eigenvalues and Eigenvectors
13(4)
2.6 Operation Counts
17(2)
2.7 Exercises
19(2)
3 Basics of MATLAB®
21(36)
3.1 Defining and Using Scalar Variables
21(5)
3.2 Saving and Reloading the Workspace
26(1)
3.3 Defining and Using Arrays
27(4)
3.4 Operations on Vectors and Matrices
31(5)
3.5 More on Plotting Functions of One Variable
36(5)
3.6 Loops and Logical Operators
41(4)
3.7 Working with Indices and Arrays
45(1)
3.8 Organizing Your Outputs
46(2)
3.9 Number Representation
48(3)
3.10 Machine Epsilon
51(3)
3.11 Exercises
54(3)
4 Solving Nonlinear Equations
57(22)
4.1 The Bisection Method for Root-Finding
57(2)
4.2 Convergence Criteria and Efficiency
59(4)
4.3 Scripts and Function Files
63(4)
4.4 The False Position Method
67(1)
4.5 The Newton-Raphson Method for Root-Finding
67(6)
4.6 Fixed Point Iteration
73(2)
4.7 MATLAB® Built-in Functions
75(1)
4.8 Exercises
76(3)
5 Systems of Equations
79(20)
5.1 Linear Systems
79(10)
5.2 Newton's Method for Nonlinear Systems
89(4)
5.3 MATLAB® Built-in Functions
93(2)
5.4 Exercises
95(4)
6 Approximation of Functions
99(44)
6.1 A Hypothetical Example
99(7)
6.2 Global Polynomial Interpolation
106(16)
6.3 Spline Interpolation
122(8)
6.4 Approximation with Trigonometric Functions
130(2)
6.5 MATLAB® Built-in Functions
132(5)
6.6 Exercises
137(6)
7 Numerical Differentiation
143(16)
7.1 Basic Derivative Formulae
143(4)
7.2 Derivative Formulae Using Taylor Series
147(2)
7.3 Derivative Formulae Using Interpolants
149(1)
7.4 Errors in Numerical Differentiation
150(3)
7.5 Richardson Extrapolation
153(2)
7.6 MATLAB® Built-in Functions
155(1)
7.7 Exercises
156(3)
8 Numerical Optimization
159(28)
8.1 The Need for Optimization Methods
159(1)
8.2 Line Search Methods
160(3)
8.3 Successive Parabolic Interpolation
163(1)
8.4 Optimization Using Derivatives
164(9)
8.5 Linear Programming
173(6)
8.6 Constrained Nonlinear Optimization
179(2)
8.7 MATLAB® Built-in Functions
181(3)
8.8 Exercises
184(3)
9 Numerical Quadrature
187(22)
9.1 Basic Quadrature Formulae
187(5)
9.2 Gauss Quadrature
192(4)
9.3 Extrapolation Methods: Romberg Quadrature
196(3)
9.4 Higher-Dimensional Integrals
199(3)
9.5 Monte Carlo Integration
202(3)
9.6 MATLAB® Built-in Functions
205(1)
9.7 Exercises
206(3)
10 Numerical Solution of Differential Equations
209(28)
10.1 First-Order Models
209(5)
10.2 Second-Order Models
214(1)
10.3 Basic Numerical Methods
215(3)
10.4 Global Error and the Order of Accuracy
218(4)
10.5 Consistency, Stability and Convergence
222(4)
10.6 Explicit vs. Implicit Methods
226(1)
10.7 Multistep Methods
227(1)
10.8 Higher-Order Initial Value Problems
228(1)
10.9 Boundary Value Problems
229(2)
10.10 MATLAB® Built-in Functions
231(1)
10.11 Exercises
232(5)
Appendix A Calculus Refresher
237(4)
A.1 Taylor Series
237(1)
A.2 Riemann Integrals
238(1)
A.3 Other Important Results
239(2)
Appendix B Introduction to Octave
241(2)
B.1 The Problem of Choice
241(1)
B.2 Octave Basics
241(1)
B.3 Octave Code Examples
242(1)
Appendix C Introduction to Python
243(12)
C.1 The Problem of Choice
243(1)
C.2 Python Basics
243(2)
C.3 Installing Python
245(1)
C.4 Python Code Examples
245(10)
Appendix D Introduction to Julia
255(6)
D.1 The Problem of Choice
255(1)
D.2 Julia Basics
255(1)
D.3 Julia Code Examples
256(5)
Appendix E Hints and Answers for Selected Exercises
261(6)
Bibliography 267(2)
Index 269
Dan Stanescu received his undergraduate degree in Aerospace Engineering from the Polytechnical Institute in Bucharest, Romania. He then pursued his graduate studies at McGill University and obtained his Ph.D. at Concordia University, both in Montreal, Canada. His initial fascination with modeling fluid flow led him to develop both frequency- and time-domain computational methods for the study of aircraft noise. His publications include work in aeroacoustics, spectral methods, stochastic processes and biomathematics. Upon joining the Mathematics Department at the University of Wyoming in 2003, he directed the Institute for Scientific Computing for six years and initiated an Interdisciplinary Computational Science Minor program, currently offered to interested students at both the undergraduate and graduate level. He has taught a wide range of courses in applied mathematics and has been developing and using the material included herein, during the last ten years, for a core class that is part of this Minor.

Long Lee is a Professor of Mathematics at the University of Wyoming in Laramie, USA. He received his Ph. D. in Applied Mathematics from the University of Washington in Seattle, USA. Before his Ph.D., he received a BS in Engineering and an MS in Geophysics.

His research interests are in the area of high-performance scientific computing and its applications. He has published papers in computational fluid dynamics, nonlinear waves, and image sciences. He expanded his research to infectious diseases and network modeling in recent years due to the COVID-19 pandemic.

His teaching interests are in the general area of scientific computing. In particular, he enjoys teaching numerical methods for engineering students. He has taught numerical methods, differential equations, and mathematical modeling, both undergraduate and graduate levels, at the University of Wyoming for more than fifteen years.