Muutke küpsiste eelistusi

Introduction to Engineering and Scientific Computing with Python [Kõva köide]

(Tufts University, USA), (University of Colorado, USA)
  • Formaat: Hardback, 420 pages, kõrgus x laius: 229x152 mm, kaal: 453 g, 55 Tables, black and white; 209 Line drawings, black and white; 56 Halftones, black and white; 265 Illustrations, black and white
  • Ilmumisaeg: 07-Sep-2022
  • Kirjastus: CRC Press
  • ISBN-10: 1032188944
  • ISBN-13: 9781032188942
  • Formaat: Hardback, 420 pages, kõrgus x laius: 229x152 mm, kaal: 453 g, 55 Tables, black and white; 209 Line drawings, black and white; 56 Halftones, black and white; 265 Illustrations, black and white
  • Ilmumisaeg: 07-Sep-2022
  • Kirjastus: CRC Press
  • ISBN-10: 1032188944
  • ISBN-13: 9781032188942
"As more and more engineering departments, and companies choose to use Python, this book provides an essential introduction to this open-source, free to use language. Expressly designed to support first-year engineering students, this book covers engineering and scientific calculations, Python basics and structured programming. Based on extensive teaching experience, the text uses practical problem solving as a vehicle to teach Python as a programming language. By learning computing fundamentals, in an engaging and hands-on manner, it enables the reader to apply engineering and scientific methods to Python, focusing this general language to the needs of engineers and the problems they are required to solve on a daily basis. Rather than inundating students with complex terminology, the book is designed with a levelling approach in mind, enabling students at all levels to gain experience and understanding of Python. It covers topics such as structure programming, graphics, matrix operations, algebraic equations and differential equations. A comprehensive chapter on working with data brings the book to a close. This book is an essential guide to Python, which will be relevant to all engineers, particularly undergraduate students in their first year. It willalso be of interest to professionals and graduate students looking to hone their programming skills, and to situate Python in an engineering and scientific context"--

This book is an essential guide to Python, which will be relevant to all engineers, particularly undergraduate students in their first year. It will also be of interest to professionals and graduate students looking to hone their programming skills, and to situate Python in an engineering and scientific context.

List of Examples
xiii
Preface xv
Acknowledgments xxi
Authors xxiii
Chapter 1 Engineering and Scientific Calculations
1(40)
Chapter Objectives
1(2)
1.1 Numerical Quantities
3(6)
1.1.1 Positional and Scientific Notation
3(1)
1.1.2 Accuracy and Precision
4(1)
1.1.3 Significant Figures
5(1)
1.1.4 Rounding
6(3)
1.2 Mathematical Functions
9(13)
1.2.1 Absolute Value and Sign Functions
10(1)
1.2.2 Exponents and Logarithms
10(4)
1.2.3 Trigonometric Functions
14(6)
1.2.4 Hyperbolic Functions
20(2)
1.3 Complex Numbers
22(2)
1.4 Engineering Units
24(4)
1.5 Organizing and Planning Solutions to Problems
28(13)
Problems
36(5)
Chapter 2 Computer-Based Calculations
41(14)
Chapter Objectives
41(2)
2.1 Numerical Quantities as Stored in the Computer
43(6)
2.1.1 Integer Numbers
43(3)
2.1.2 Real Numbers
46(3)
2.2 How the Computer Stores Text
49(1)
2.3 Boolean True/False Information
49(2)
2.4 Computer Storage Evolution and Terminology
51(4)
Problems
51(4)
Chapter 3 Python Basics
55(46)
Chapter Objectives
55(1)
3.1 The Spyder/IPython Environment
56(5)
3.2 Mathematical Functions
61(3)
3.3 Variables and Assignment
64(3)
3.4 Objects, Attributes, Methods, and Data Types
67(5)
3.4.1 Boolean Type
69(2)
3.4.2 Character Type
71(1)
3.5 Collections of Data
72(4)
3.6 Creating Plots
76(6)
3.7 The Spyder Editor
82(5)
3.8 Input and Output
87(6)
3.8.1 Console Input and Output
88(1)
3.8.2 File Input and Output
89(2)
3.8.3 Formatting Output
91(2)
3.9 Obtaining Help
93(8)
Problems
97(4)
Chapter 4 Structured Programming with Python
101(36)
Chapter Objectives
101(1)
4.1 An Overview of Program Structure
102(2)
4.2 Implementing Decision Structures with Python
104(6)
4.3 Implementing Repetition Structures with Python
110(8)
4.3.1 The General Loop Structure
110(2)
4.3.2 The List-Driven and Count-Controlled Loop Structures
112(4)
4.3.3 The break and Continue Statements with the for Loop
116(2)
4.4 User-Defined Functions in Python
118(19)
4.4.1 Lambda Functions
120(1)
4.4.2 Function Arguments
121(6)
4.4.3 Variable Scope
127(2)
Problems
129(8)
Chapter 5 Graphics--Matplotlib
137(38)
Chapter Objectives
137(1)
5.1 Introduction to Matplotlib
137(3)
5.2 Customizing Line and Scatter Plots
140(11)
5.3 Using Figure Window Objects
151(3)
5.4 Creating Bar Plots Including Histograms
154(4)
5.5 Creating Other Plots of Interest
158(6)
5.6 Contour and Surface Plots
164(11)
Problems
170(5)
Chapter 6 Array and Matrix Operations
175(24)
Chapter Objectives
175(1)
6.1 Creating Arrays in Python
176(5)
6.1.1 Creating Special Arrays
178(1)
6.1.2 Combining, Stacking, and Splitting Arrays
179(1)
6.1.3 Reshaping Arrays
180(1)
6.2 Indexing: Array Subscripts
181(3)
6.3 Array Operations
184(5)
6.4 Vector/Matrix Operations
189(10)
6.4.1 Matrix/Vector Multiplication
190(3)
6.4.2 Transpose
193(1)
6.4.3 Matrix Inversion
193(3)
Problems
196(3)
Chapter 7 Solving Single Algebraic Equations
199(50)
Chapter Objectives
199(1)
7.1 The Nature of Single, Nonlinear Equations in One Unknown
200(2)
7.2 Bracketing Methods--Bisection
202(5)
7.3 Bracketing Methods--False Position
207(5)
7.4 Open Methods--Newton-Raphson
212(7)
7.5 Open Methods--Modified Secant
219(2)
7.6 Circular Methods--Fixed-Point Iteration
221(6)
7.7 Circular Methods--The Wegstein Method
227(3)
7.8 A Hybrid Approach--Brent's Method
230(3)
7.9 Solving for the Roots of Polynomials
233(4)
7.10 Case Study: Trajectories of Projectiles in Air
237(12)
Problems
242(7)
Chapter 8 Solving Sets of Algebraic Equations
249(44)
Chapter Objectives
249(1)
8.1 Systems of Linear Algebraic Equations
250(2)
8.2 Solving Small Numbers of Linear Algebraic Equations
252(8)
8.2.1 Graphical Method
252(2)
8.2.2 Determinants and Cramer's Rule
254(1)
8.2.2.1 Determinants
254(2)
8.2.2.2 Cramer's Rule
256(2)
8.2.3 Elimination of Unknowns
258(2)
8.3 Gaussian Elimination
260(13)
8.3.1 Naive Gaussian Elimination
261(4)
8.3.2 Gaussian Elimination Computer Algorithm
265(1)
8.3.2.1 Naive Gaussian Elimination Algorithm
265(2)
8.3.2.2 Adding Determinant Evaluation
267(1)
8.3.2.3 Partial Pivoting
268(2)
8.3.2.4 Detecting Singular and Ill-Conditioned Systems
270(3)
8.4 Solving Sets of Linear Equations with the NumPy linalg Module
273(1)
8.5 Solving Sets of Nonlinear Algebraic Equations
274(11)
8.5.1 Solution of Nonlinear Algebraic Equations by Successive Substitution
275(3)
8.5.2 The Newton-Raphson Method for Nonlinear Systems of Equations
278(7)
8.6 Use of the root Function from the SciPy optimize Module to Solve Nonlinear Equations
285(8)
Problems
286(7)
Chapter 9 Solving Differential Equations
293(36)
Chapter Objectives
293(1)
9.1 Describing Differential Equations
294(4)
9.2 Quadrature - Finding the Area under the Curve
298(9)
9.2.1 Pre-computer Methods
298(2)
9.2.2 Quadrature for Continuous Functions
300(4)
9.2.3 The quad Function from SciPy's integrate Module
304(1)
9.2.4 Quadrature for Discrete Data
305(2)
9.3 Solving Differential Equations with Initial Conditions
307(12)
9.3.1 Euler's Method
307(4)
9.3.2 Heun's Method
311(2)
9.3.3 Systems of Differential Equations
313(6)
9.4 Solving Differential Equations with the solve_ivp Function from SciPy's integrate Module
319(10)
Problems
323(6)
Chapter 10 Working with Data
329(58)
Chapter Objectives
329(1)
10.1 Characterizing Data Sets: Initial Observations and Sample Statistics
330(12)
10.1.1 General Data Concepts
330(3)
10.1.2 Sample Statistics: Central Tendency and Dispersion
333(1)
10.1.2.1 Central Tendency
334(2)
10.1.2.2 Spread or Dispersion
336(3)
10.1.3 Using Boxplots to Diagnose Outliers
339(3)
10.2 Distributions
342(10)
10.2.1 Several Important Distributions
345(1)
10.2.1.1 Uniform Distribution
345(1)
10.2.1.2 Normal Distribution
346(1)
10.2.1.3 Weibull Distribution
347(1)
10.2.2 Python and Distributions
347(1)
10.2.3 Random Numbers
348(4)
10.3 Making Claims Based on Data
352(11)
10.3.1 Comparison of Data with a Standard
353(3)
10.3.2 Comparison between Two Samples
356(2)
10.3.3 Determining Whether Data Are Normally Distributed
358(5)
10.4 Fitting Mathematical Models to Data
363(24)
10.4.1 Straight-line Linear Regression
364(4)
10.4.2 Fitting Polynomials
368(2)
10.4.3 General Issues and Precautions
370(9)
Problems
379(6)
References
385(2)
Index 387(6)
Index of Python Terminology 393
David E. Clough is Professor Emeritus at the University of Colorado. He has experience in a wide array of programming languages and computing tools and has applied his expertise through his teaching, research, and industrial applications. Over his career, Clough has taught hundreds of short courses to practicing professionals on applied computing and problem solving.

Steven C. Chapra is the Emeritus Professor and Louis Berger Chair in Civil and Environmental Engineering at Tufts University. Before joining Tufts, he worked for the U.S. Environmental Protection Agency and the National Oceanic and Atmospheric Administration, and taught at Texas A&M University, the University of Colorado, and Imperial College London. He is a Fellow and Distinguished Member of the American Society of Civil Engineering (ASCE) and has received several awards for his scholarly and academic contributions, including the Rudolph Hering Medal (ASCE), and the Meriam-Wiley Distinguished Author Award (American Society for Engineering Education). As a strong proponent of continuing education, he has taught more than 90 workshops around the world for professionals on numerical methods, computer programming, and environmental modeling.