Being familiar with python is necessary for this volume, but the concepts used are simple. The description of the numerical methods is complete, but a comparison of methods is not always present leaving an inexperienced analyst to wonder which method is the best for a given situation. Python is also not the most efficient language for numerical computation, but is a good linker and with cython it can become a viable option. Overall I recommend this book for learning numerical methods as you will not be tangled in the programming language, but learning numerical methods. Contents......Page 6 Preface......Page 8 1.1 General Information......Page 10 1.2 Core Python......Page 13 1.3 Functions and Modules......Page 25 1.4 Mathematics Modules......Page 26 1.5 numarray Module......Page 28 1.6 Scoping of Variables......Page 32 1.7 Writing and Running Programs......Page 34 2.1 Introduction......Page 36 2.2 Gauss Elimination Method......Page 43 2.3 LU Decomposition Methods......Page 50 2.4 Symmetric and Banded Coefficient Matrices......Page 65 2.5 Pivoting......Page 76 ∗2.6 Matrix Inversion......Page 91 ∗2.7 Iterative Methods......Page 94 ∗2.8 Other Methods......Page 110 3.1 Introduction......Page 112 3.2 Polynomial Interpolation......Page 113 3.3 Interpolation with Cubic Spline......Page 124 3.4 Least-Squares Fit......Page 134 3.5 Other Methods......Page 150 4.1 Introduction......Page 151 4.2 Incremental Search Method......Page 152 4.3 Method of Bisection......Page 154 4.4 Brent’s Method......Page 157 4.5 Newton–Raphson Method......Page 163 4.6 Systems of Equations......Page 167 ∗4.7 Zeroes of Polynomials......Page 179 4.8 Other Methods......Page 188 5.1 Introduction......Page 190 5.2 Finite Difference Approximations......Page 191 5.3 Richardson Extrapolation......Page 196 5.4 Derivatives by Interpolation......Page 199 6.1 Introduction......Page 207 6.2 Newton–Cotes Formulas......Page 208 6.3 Romberg Integration......Page 216 6.4 Gaussian Integration......Page 225 ∗6.5 Multiple Integrals......Page 242 7.1 Introduction......Page 257 7.2 Taylor Series Method......Page 258 7.3 Runge–Kutta Methods......Page 264 7.4 Stability and Stiffness......Page 281 7.5 Adaptive Runge–Kutta Method......Page 284 7.6 Bulirsch–Stoer Method......Page 292 7.7 Other Methods......Page 303 8.1 Introduction......Page 304 8.2 Shooting Method......Page 305 8.3 Finite Difference Method......Page 319 9.1 Introduction......Page 333 9.2 Jacobi Method......Page 335 9.3 Inverse Power and Power Methods......Page 352 9.4 Householder Reduction to Tridiagonal Form......Page 367 9.5 Eigenvalues of Symmetric Tridiagonal Matrices......Page 374 9.6 Other Methods......Page 389 10.1 Introduction......Page 390 10.2 Minimization Along a Line......Page 392 10.3 Conjugate Gradient Methods......Page 398 10.4 Other Methods......Page 416 Appendices......Page 418 Index......Page 428 Contents 6 Preface 8 1 Introduction to Python 10 1.1 General Information 10 1.2 Core Python 13 1.3 Functions and Modules 25 1.4 Mathematics Modules 26 1.5 numarray Module 28 1.6 Scoping of Variables 32 1.7 Writing and Running Programs 34 2 Systems of Linear Algebraic Equations 36 2.1 Introduction 36 2.2 Gauss Elimination Method 43 2.3 LU Decomposition Methods 50 2.4 Symmetric and Banded Coefficient Matrices 65 2.5 Pivoting 76 ∗2.6 Matrix Inversion 91 ∗2.7 Iterative Methods 94 ∗2.8 Other Methods 110 3 Interpolation and Curve Fitting 112 3.1 Introduction 112 3.2 Polynomial Interpolation 113 3.3 Interpolation with Cubic Spline 124 3.4 Least-Squares Fit 134 3.5 Other Methods 150 4 Roots of Equations 151 4.1 Introduction 151 4.2 Incremental Search Method 152 4.3 Method of Bisection 154 4.4 Brent’s Method 157 4.5 Newton–Raphson Method 163 4.6 Systems of Equations 167 ∗4.7 Zeroes of Polynomials 179 4.8 Other Methods 188 5 Numerical Differentiation 190 5.1 Introduction 190 5.2 Finite Difference Approximations 191 5.3 Richardson Extrapolation 196 5.4 Derivatives by Interpolation 199 6 Numerical Integration 207 6.1 Introduction 207 6.2 Newton–Cotes Formulas 208 6.3 Romberg Integration 216 6.4 Gaussian Integration 225 ∗6.5 Multiple Integrals 242 7 Initial Value Problems 257 7.1 Introduction 257 7.2 Taylor Series Method 258 7.3 Runge–Kutta Methods 264 7.4 Stability and Stiffness 281 7.5 Adaptive Runge–Kutta Method 284 7.6 Bulirsch–Stoer Method 292 7.7 Other Methods 303 8 Two-Point Boundary Value Problems 304 8.1 Introduction 304 8.2 Shooting Method 305 8.3 Finite Difference Method 319 9 Symmetric Matrix Eigenvalue Problems 333 9.1 Introduction 333 9.2 Jacobi Method 335 9.3 Inverse Power and Power Methods 352 9.4 Householder Reduction to Tridiagonal Form 367 9.5 Eigenvalues of Symmetric Tridiagonal Matrices 374 9.6 Other Methods 389 10 Introduction to Optimization 390 10.1 Introduction 390 10.2 Minimization Along a Line 392 10.3 Conjugate Gradient Methods 398 10.4 Other Methods 416 Appendices 418 Index 428 Numerical Methods in Engineering with Python is a text for engineering students and a reference for practicing engineers, especially those who wish to explore the power and efficiency of Python. Examples and applications were chosen for their relevance to real world problems, and where numerical solutions are most efficient. Numerical methods are discussed thoroughly and illustrated with problems involving both hand computation and programming. Computer code accompanies each method and is available on the book web site. This code is made simple and easy to understand by avoiding complex bookkeeping schemes, while maintaining the essential features of the method. Python was chosen as the example language because it is elegant, easy to learn and debug, and its facilities for handling arrays are unsurpassed. Moreover, it is an open-source software package; free and available to all students and engineers. Explore numerical methods with Python, a great language for teaching scientific computation. "Numerical Methods in Engineering with Python is a text for engineering students and a reference for practicing engineers, especially those who wish to explore the power and efficiency of Python. The choice of numerical methods was based on their relevance to engineering problems. Every method is discussed thoroughly and illustrated with problems involving both hand computation and programming. Computer code accompanies each method and is available on the book web site."--BOOK JACKET Numerical Methods in Engineering with Python is a text for engineering students and a reference for practicing engineers. The numerous examples and applications were chosen for their relevance to real world problems, and where numerical solutions are most efficient. The Python code is available on the book web site.