This book provides a practical and comprehensive introduction to computational problem solving from the viewpoints of practitioners in both academic and industrial worlds. The authors present scientific problem-solving using computation and aim to increase computational thinking, which is the mindset and skillset required to solve scientific problems with computational methodologies via model building, simulation, data analysis, and visualization using the Python programming language. Topics and examples span fundamental areas of physical science as well as contemporary topics including quantum computing, neural networks, machine learning, global warming, and energy balance. The book features unique and innovative techniques and practices including: intentional scaffolding to help beginners learn computational problem solving; multimodal computing environments including cloud-based platforms and just-in-time computing; emphasis and connection between both numerical and symbolic computations; and extensive exercise sets carefully designed for further exploration as project assignments or self-paced study. The book is suitable for introductory level readers in physical sciences, engineering, and related STEM disciplines. Specifically, the book is appropriate for use in either a standalone course on computation and modeling and as a resource for readers interested in learning about proven techniques in interactive computing.
Author(s): Jay Wang, Adam Wang
Series: Synthesis Lectures on Computation and Analytics
Publisher: Springer
Year: 2023
Language: English
Pages: 263
City: Cham
Preface
Contents
1 Programming Environments
[DELETE]
1.1 Jupyter Notebook Environments
1.1.1 Jupyter Notebook
1.1.2 Colaboratory
1.2 Integrated Development Environments
1.2.1 IDLE
1.2.2 Spyder
1.3 GlowScript and Trinket
1.4 Program Access and Installation
2 Python Tutorial
[DELETE]
2.1 Python as a Calculator
2.1.1 Arithmetic Operators
2.1.2 Types of Numbers
2.2 Variables
2.2.1 Assigning Variables
2.2.2 Variable Names
2.3 Comments
2.4 Text Strings
2.4.1 Syntax
2.4.2 String Operations and Indexing
2.5 Functions
2.5.1 Defining Custom Functions
2.5.2 Variable Scope
2.5.3 Default Argument Values and Keyword Arguments
2.6 Conditional Statements
2.6.1 Comparison and Logical Operators
2.6.2 if Statements
2.7 Loops
2.7.1 while Loops
2.7.2 for Loops
2.7.3 break and continue Statements
2.8 Lists
2.8.1 Syntax
2.8.2 List Operations and Indexing
2.8.3 List Methods
2.9 Tuples, Sets, and Dictionaries
2.9.1 Tuples
2.9.2 Sets
2.9.3 Dictionaries
2.10 Modules and Packages
2.11 Error Handling and Troubleshooting
2.11.1 Syntax Errors
2.11.2 Exceptions
2.11.3 Handling Exceptions
2.11.4 Errors with No Error Message
2.12 A Full Program
2.12.1 Programmatic Solution
2.12.2 Analytic Solution
2.13 Classes
2.14 Exercises
3 Interactive Computing and Visualization
[DELETE]
3.1 Interactive Computing with Python Widgets
3.1.1 Widgets in Jupyter Notebooks
3.1.2 Interactive Computing
3.1.3 Python Widgets
3.2 Interactive Visualization and Animation
3.2.1 Matplotlib Animation
3.2.2 VPython, 3D Visualization
3.3 Sympy
3.3.1 Mathematical Modules
3.3.2 Application Modules: Physics
3.4 Numpy Library
3.5 Scipy Library
3.6 Speed Gain with Numba
3.7 Exercises
4 Basic Algorithms
[DELETE]
4.1 Finite Difference
4.2 Numerical Integration
4.3 ODE Solvers
4.3.1 Euler's Method
4.3.2 Euler-Cromer Method
4.3.3 Leapfrog Method
4.4 Root Solvers
4.5 Curve Fitting
4.6 Exercises
5 Force and Motion
5.1 Motion with Constant Velocity
5.1.1 Kinematic Concepts
5.1.2 Motion with Finite Time-Stepping
5.2 Modeling Motion with Changing Velocity
5.2.1 Dynamic Equations of Motion
5.3 Projectile Motion
5.4 Projectile Motion with Air Resistance
5.5 Periodic Motion
5.5.1 Simple Harmonic Oscillator
5.5.2 Planetary Motion
5.5.3 Accuracy and Higher Order Methods
5.6 Motion in Cross Electromagnetic Fields
5.7 Exercises
6 Oscillations and Waves
[DELETE]
6.1 Coupled Oscillators
6.1.1 Two-Body Oscillations
6.1.2 Normal Modes
6.1.3 Three-Body Oscillations
6.2 Wave Propagation
6.2.1 The Wave Equation
6.2.2 Waves on a String
6.2.3 Fundamental Modes
6.3 Exercises
7 Modern Physics and Quantum Mechanics
[DELETE]
7.1 Relativity of Space and Time
7.1.1 Einstein's Postulates
7.1.2 Time Dilation and Length Contraction
7.2 Diffraction and Double-Slit Interference
7.3 Visualizing Quantized States
7.3.1 A Quantum Particle in a Box
7.3.2 Fitting a Wave Function to the Box
7.3.3 Visualizing Quantum States
7.4 Quantum Computing
7.4.1 Basis States and Principle of Superposition
7.4.2 Qubit Manipulation
7.4.3 A Quantum Computer Simulator
7.4.4 Quantum Search: The Grover Algorithm
7.5 Exercises
8 Statistical and Thermal Processes
8.1 Random Numbers and Nuclear Decay
8.2 Brownian Motion
8.2.1 A Random Kick Model
8.2.2 Spatial and Temporal Evolution
8.3 Thermal Equilibrium
8.3.1 A Thermal Interaction Model
8.3.2 Thermal Energy Distribution
8.4 The Ising Model
8.4.1 The Spin Chain
8.4.2 Monte Carlo Simulation
8.5 Energy Balance and Global Warming
8.6 Exercises
9 Complex Systems
9.1 Cellular Automata
9.1.1 Conway's Game of Life
9.1.2 Traffic Flows
9.2 Chaos
9.2.1 Logistic Map
9.2.2 Stability of Equilibrium Points
9.2.3 Onset of Chaos
9.3 Neural Networks
9.3.1 A Simple Network
9.3.2 Extending the Network
9.3.3 Learning from Data
9.3.4 Learning the Game of Life Rules
9.4 Exercises
A Program Listings
A.1 Programs from Chap. 3摥映數爠eflinkCH:ICV33
A.2 Programs from Chap. 4摥映數爠eflinkCH:BALG44
A.3 Programs from Chap. 5摥映數爠eflinkCH:FAM55
A.4 Programs from Chap. 6摥映數爠eflinkCH:OAW66
A.5 Programs from Chap. 7摥映數爠eflinkCH:MPAQM77
A.6 Programs from Chap. 8摥映數爠eflinkCH:SATP88
A.7 Programs from Chap. 9摥映數爠eflinkch:complex99
Index