Python Programming and Numerical Methods

A Guide for Engineers and Scientists

1st Edition - November 27, 2020

Write a review

• Authors: Qingkai Kong, Timmy Siauw, Alexandre Bayen
• Paperback ISBN: 9780128195499
• eBook ISBN: 9780128195505

Purchase options

Purchase options
Available
DRM-free (Mobi, PDF, EPub)
Sales tax will be calculated at check-out

Institutional Subscription

Free Global Shipping
No minimum order

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

Senior undergraduates or graduate students in engineering and science who are taking a numerical methods course using Python

• 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.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

Product details

• No. of pages: 480
• Language: English
• Published: November 27, 2020
• Imprint: Academic Press
• Paperback ISBN: 9780128195499
• eBook ISBN: 9780128195505

Qingkai Kong

Qingkai Kong is an Assistant Data Science Researcher at the Berkeley Division of Data Sciences and Berkeley Seismology Lab. He has a Master’s degree in Structural Engineering and a PhD. in Earth Science. He is actively working on applying data science/machine learning to Earth science and engineering, especially using Python language.

Affiliations and Expertise

Assistant Data Science Researcher, University of California, Berkeley

Timmy Siauw

Affiliations and Expertise

University of California, Berkeley, USA

Alexandre Bayen

Alexandre Bayen is the Liao-Cho Professor of Engineering at UC Berkeley. He is a Professor of Electrical Engineering and Computer Science, and Civil and Environmental Engineering. He is currently the Director of the Institute of Transportation Studies (ITS). He is also a Faculty Scientist in Mechanical Engineering, at the Lawrence Berkeley National Laboratory (LBNL). He received the Engineering Degree in applied mathematics from the Ecole Polytechnique, France, in 1998, the M.S. and Ph.D. in aeronautics and astronautics from Stanford University in 1998 and 1999 respectively. He was a Visiting Researcher at NASA Ames Research Center from 2000 to 2003. Between January 2004 and December 2004, he worked as the Research Director of the Autonomous Navigation Laboratory at the Laboratoire de Recherches Balistiques et Aerodynamiques, (Ministere de la Defense, Vernon, France), where he holds the rank of Major. He has been on the faculty at UC Berkeley since 2005. Bayen has authored two books and over 200 articles in peer reviewed journals and conferences. He is the recipient of the Ballhaus Award from Stanford University, 2004, of the CAREER award from the National Science Foundation, 2009 and he is a NASA Top 10 Innovators on Water Sustainability, 2010. His projects Mobile Century and Mobile Millennium received the 2008 Best of ITS Award for ‘Best Innovative Practice’, at the ITS World Congress and a TRANNY Award from the California Transportation Foundation, 2009. Mobile Millennium has been featured more than 200 times in the media, including TV channels and radio stations (CBS, NBC, ABC, CNET, NPR, KGO, the BBC), and in the popular press (Wall Street Journal, Washington Post, LA Times). Bayen is the recipient of the Presidential Early Career Award for Scientists and Engineers (PECASE) award from the White House, 2010. He is also the recipient of the Okawa Research Grant Award, the Ruberti Prize from the IEEE, and the Huber Prize from the ASCE.

Affiliations and Expertise

Associate Professor, Department of Electrical Engineering and Computer Sciences and the Department of Civil and Environmental Engineering, University of California, Berkeley, USA

Ratings and Reviews

Write a review

Latest reviews

(Total rating for all reviews)

• Russell S. Sun Sep 04 2022

Engineer

I an half way though the book just finished chapter 15. Having worked all the problems I found that some of them are not well developed. Doing them was like putting to gather a puzzle without a picture. You have to visualize what you think the answer should be and if that doesn't work do it again. No big deal but one of the examples inn ch14 section 14.4.4.1 had a typo (-5) when it should have been 10. So far a great book could use a little more descriptions and examples in the linear algebra section, you have to have a linear algebra book.

• Reuben M. Wed Oct 20 2021

Easy To Follow!

A clear, and concise textbook.

• Dr. B. Fri Aug 13 2021

Python Programming and Numerical Methods

Since this book is available in Jupyter notebook, it's easier for one to quickly understand and adopt the code for modification.