## Book description

In Math for Programmers you’ll explore important mathematical concepts through hands-on coding. Filled with graphics and more than 300 exercises and mini-projects, this book unlocks the door to interesting–and lucrative!–careers in some of today’s hottest fields. As you tackle the basics of linear algebra, calculus, and machine learning, you’ll master the key Python libraries used to turn them into real-world software applications.

1. Math for Programmers
3. dedication
4. contents
5. front matter
1. preface
2. acknowledgments
6. 1 Learning math with code
1. 1.1 Solving lucrative problems with math and software
2. 1.2 How not to learn math
3. 1.3 Using your well-trained left brain
4. Summary
7. Part 1. Vectors and graphics
8. 2 Drawing with 2D vectors
1. 2.1 Picturing 2D vectors
2. 2.2 Plane vector arithmetic
3. 2.3 Angles and trigonometry in the plane
4. 2.4 Transforming collections of vectors
5. 2.5 Drawing with Matplotlib
6. Summary
9. 3 Ascending to the 3D world
1. 3.1 Picturing vectors in 3D space
2. 3.2 Vector arithmetic in 3D
3. 3.3 The dot product: Measuring vector alignment
4. 3.4 The cross product: Measuring oriented area
5. 3.5 Rendering a 3D object in 2D
6. Summary
10. 4 Transforming vectors and graphics
1. 4.1 Transforming 3D objects
2. 4.2 Linear transformations
3. Summary
11. 5 Computing transformations with matrices
1. 5.1 Representing linear transformations with matrices
2. 5.2 Interpreting matrices of different shapes
3. 5.3 Translating vectors with matrices
4. Summary
12. 6 Generalizing to higher dimensions
1. 6.1 Generalizing our definition of vectors
2. 6.2 Exploring different vector spaces
3. 6.3 Looking for smaller vector spaces
4. Summary
13. 7 Solving systems of linear equations
1. 7.1 Designing an arcade game
2. 7.2 Finding intersection points of lines
3. 7.3 Generalizing linear equations to higher dimensions
4. 7.4 Changing basis by solving linear equations
5. Summary
14. Part 2. Calculus and physical simulation
15. 8 Understanding rates of change
1. 8.1 Calculating average flow rate from volume
2. 8.2 Plotting the average flow rate over time
3. 8.3 Approximating instantaneous flow rates
4. 8.4 Approximating the change in volume
5. 8.5 Plotting the volume over time
6. Summary
16. 9 Simulating moving objects
1. 9.1 Simulating a constant velocity motion
2. 9.2 Simulating acceleration
3. 9.3 Digging deeper into Euler’s method
4. 9.4 Running Euler’s method with smaller time steps
5. Summary
17. 10 Working with symbolic expressions
1. 10.1 Finding an exact derivative with a computer algebra system
2. 10.2 Modeling algebraic expressions
3. 10.3 Putting a symbolic expression to work
4. 10.4 Finding the derivative of a function
5. 10.5 Taking derivatives automatically
6. 10.6 Integrating functions symbolically
7. Summary
18. 11 Simulating force fields
1. 11.1 Modeling gravity with a vector field
2. 11.2 Modeling gravitational fields
3. 11.3 Adding gravity to the asteroid game
4. 11.4 Introducing potential energy
5. 11.5 Connecting energy and forces with the gradient
6. Summary
19. 12 Optimizing a physical system
1. 12.1 Testing a projectile simulation
2. 12.2 Calculating the optimal range
3. 12.3 Enhancing our simulation
4. 12.4 Optimizing range using gradient ascent
5. Summary
20. 13 Analyzing sound waves with a Fourier series
1. 13.1 Combining sound waves and decomposing them
2. 13.2 Playing sound waves in Python
3. 13.3 Turning a sinusoidal wave into a sound
4. 13.4 Combining sound waves to make new ones
5. 13.5 Decomposing a sound wave into its Fourier series
6. Summary
21. Part 3. Machine learning applications
22. 14 Fitting functions to data
1. 14.1 Measuring the quality of fit for a function
2. 14.2 Exploring spaces of functions
3. 14.3 Finding the line of best fit using gradient descent
4. 14.4 Fitting a nonlinear function
5. Summary
23. 15 Classifying data with logistic regression
1. 15.1 Testing a classification function on real data
2. 15.2 Picturing a decision boundary
3. 15.3 Framing classification as a regression problem
4. 15.4 Exploring possible logistic functions
5. 15.5 Finding the best logistic function
6. Summary
24. 16 Training neural networks
1. 16.1 Classifying data with neural networks
2. 16.2 Classifying images of handwritten digits
3. 16.3 Designing a neural network
4. 16.4 Building a neural network in Python
5. 16.5 Training a neural network using gradient descent
6. 16.6 Calculating gradients with backpropagation
7. Summary
25. appendix A. Getting set up with Python
1. A.1 Checking for an existing Python installation
3. A.3 Using Python in interactive mode
26. appendix B. Python tips and tricks
1. B.1 Python numbers and math
2. B.2 Collections of data in Python
3. B.3 Working with functions
4. B.4 Plotting data with Matplotlib
5. B.5 Object-oriented programming in Python
27. appendix C. Loading and rendering 3D Models with OpenGL and PyGame
28. index

## Product information

• Title: Math for Programmers
• Author(s): Paul Orland
• Release date: January 2021
• Publisher(s): Manning Publications
• ISBN: 9781617295355