Python Programming and Numerical Methods,
Edition 1 A Guide for Engineers and Scientists
By Qingkai Kong, Timmy Siauw and Alexandre Bayen

Publication Date: 02 Dec 2020
Description
Python Programming and Numerical Methods: A Guide for Engineers and Scientists introduces programming tools and numerical methods to engineering and science students, with the goal of helping the students to develop good computational problem-solving techniques through the use of numerical methods and the Python programming language. Part One introduces fundamental programming concepts, using simple examples to put new concepts quickly into practice. Part Two covers the fundamentals of algorithms and numerical analysis at a level that allows students to quickly apply results in practical settings.

Key Features

  • Includes tips, warnings and "try this" features within each chapter to help the reader develop good programming practice
  • Summaries at the end of each chapter allow for quick access to important information
  • Includes code in Jupyter notebook format that can be directly run online
About the author
By Qingkai Kong, Assistant Data Science Researcher, University of California, Berkeley; Timmy Siauw, University of California, Berkeley, USA and Alexandre Bayen, Associate Professor, Department of Electrical Engineering and Computer Sciences and the Department of Civil and Environmental Engineering, University of California, Berkeley, USA
Table of Contents

PART 1 INTRODUCTION TO PYTHON PROGRAMMING

CHAPTER 1 Python Basics

1.1 Getting Started With Python

1.2 Python as a Calculator

1.3 Managing Packages

1.4 Introduction to Jupyter Notebook

1.5 Logical Expressions and Operators

1.6 Summary and Problems

CHAPTER 2 Variables and Basic Data Structures

2.1 Variables and Assignment

2.2 Data Structure – String

2.3 Data Structure – List

2.4 Data Structure – Tuple

2.5 Data Structure – Set

2.6 Data Structure – Dictionary
2.7 Introducing Numpy Arrays

2.8 Summary and Problems

CHAPTER 3 Functions

3.1 Function Basics

3.2 Local Variables and Global Variables
3.3 Nested Functions

3.4 Lambda Functions
3.5 Functions as Arguments to Functions

3.6 Summary and Problems

CHAPTER 4 Branching Statements

4.1 If-Else Statements
4.2 Ternary Operators
4.3 Summary and Problems

CHAPTER 5 Iteration

5.1 For-Loops
5.2 While Loops

5.3 Comprehensions

5.4 Summary and Problems

CHAPTER 6 Recursion

6.1 Recursive Functions

6.2 Divide-and-Conquer

6.3 Summary and Problems

CHAPTER 7 Object-Oriented Programming

7.1 Introduction to OOP

7.2 Class and Object

7.3 Inheritance, Encapsulation, and Polymorphism

7.4 Summary and Problems
CHAPTER 8 Complexity
8.1
Complexity and Big-ONotation

8.2 Complexity Matters

8.3 The Profiler

8.4 Summary and Problems

CHAPTER 9 Representation of Numbers

9.1 Base-N and Binary

9.2 Floating Point Numbers

9.3 Round-Off Errors

9.4 Summary and Problems

CHAPTER 10 Errors, Good Programming Practices, and Debugging

10.1 Error Types

10.2 Avoiding Errors

10.3 Try/Except

10.4 Type Checking

10.5 Debugging

10.6 Summary and Problems

CHAPTER 11 Reading and Writing Data

11.1 TXT Files

11.2 CSVFiles

11.3 Pickle Files

11.4 JSONFiles

11.5 HDF5 Files

11.6 Summary and Problems

CHAPTER 12 Visualization and Plotting

12.1 2D Plotting
12.2 3D Plotting
12.3 Working With Maps

12.4 Animations and Movies

12.5 Summary and Problems

CHAPTER 13 Parallelize Your Python

13.1 Parallel Computing Basics

13.2 Multiprocessing

13.3 Using Joblib

13.4 Summary and Problems

PART 2 INTRODUCTION TO NUMERICAL METHODS

CHAPTER 14 Linear Algebra and Systems of Linear Equations

14.1 Basics of Linear Algebra

14.2 Linear Transformations

14.3 Systems of Linear Equations
14.4 Solutions to Systems of Linear Equations

14.5 Solving Systems of Linear Equations in Python

14.6 Matrix Inversion

14.7 Summary and Problems

CHAPTER 15 Eigenvalues and Eigenvectors

15.1 Eigenvalues and Eigenvectors Problem Statement

15.2 The Power Method

15.3 The QR Method

15.4 Eigenvalues and Eigenvectors in Python

15.5 Summary and Problems

CHAPTER 16 Least Squares Regression

16.1 Least Squares Regression Problem Statement

16.2 Least Squares Regression Derivation (Linear Algebra)

16.3 Least Squares Regression Derivation (Multivariate Calculus)

16.4 Least Squares Regression in Python

16.5 Least Squares Regression for Nonlinear Functions

16.6 Summary and Problems

CHAPTER 17 Interpolation

17.1 Interpolation Problem Statement
17.2 Linear Interpolation

17.3 Cubic Spline Interpolation

17.4 Lagrange Polynomial Interpolation

17.5 Newton’s Polynomial Interpolation

17.6 Summary and Problems

CHAPTER 18 Taylor Series
18.1
Expressing Functions Using a Taylor Series
18.2 Approximations Using Taylor Series

18.3 Discussion About Errors

18.4 Summary and Problems

CHAPTER 19 Root Finding
19.1
Root Finding Problem Statement

19.2 Tolerance

19.3 Bisection Method

19.4 Newton–Raphson Method
19.5 Root Finding in Python
19.6 Summary and Problems

CHAPTER 20 Numerical Differentiation

20.1 Numerical Differentiation Problem Statement

20.2 Using Finite Difference to Approximate Derivatives

20.3 Approximating of Higher Order Derivatives

20.4 Numerical Differentiation With Noise

20.5 Summary and Problems

CHAPTER 21 Numerical Integration
21.1
Numerical Integration Problem Statement

21.2 Riemann Integral
21.3 Trapezoid Rule
21.4 Simpson’s Rule

21.5 Computing Integrals in Python
21.6 Summary and Problems

CHAPTER 22 Ordinary Differential Equations (ODEs) Initial-Value Problems

22.1 ODE Initial Value Problem Statement

22.2 Reduction of Order
22.3 The Euler Method
22.4 Numerical Error and Instability
22.5 Predictor–Corrector and Runge–Kutta Methods

22.6 Python ODE Solvers

22.7 Advanced Topics

22.8 Summary and Problems

CHAPTER 23 Boundary-Value Problems for Ordinary Differential Equations (ODEs)

23.1 ODE Boundary Value Problem Statement

23.2 The Shooting Method

23.3 The Finite Difference Method

23.4 Numerical Error and Instability

23.5 Summary and Problems

CHAPTER 24 Fourier Transform
24.1
The Basics of Waves

24.2 Discrete Fourier Transform (DFT)

24.3 Fast Fourier Transform (FFT)

24.4 FFT in Python

24.5 Summary and Problems

Appendix A Getting Started With Python in Windows

Index

Book details
ISBN: 9780128195499
Page Count: 480
Retail Price : £62.99

9780124202283; 9780123869425; 9780128154793

Audience
Senior undergraduates or graduate students in engineering and science who are taking a numerical methods course using Python
Reviews
people find this review helpful
people find this review helpful
R Robert Castilla
people find this review helpful