Modeling and simulation are powerful tools for explaining the world, making predictions, designing things that work, and making them work better. Learning to use these tools can be difficult; this book is my attempt to make the experience as enjoyable and productive as possible.
By reading this book—and working on the exercises—you will learn some programming, some modeling, and some simulation. With basic programming skills, you can create models for a wide range of physical systems. My goal is to help you develop these skills in a way you can apply them immediately to real-world problems.
This book presents the entire modeling process, including model selection, analysis, simulation, and validation. I explain this process in Chapter 1, and there are examples throughout the book.
0.1 Who This Book Is For
To make this book accessible to the widest possible audience, I’ve tried to minimize the prerequisites.
This book is intended for people who have never programmed before. I start from the beginning, define new terms when they are introduced, and present only the features you need, when you need them.
I assume that you know trigonometry and some calculus, but not very much. If you understand that a derivative represents a rate of change, that’s enough. You will learn about differential equations and some linear algebra, but I will explain what you need to know as we go along.
I will assume you know basic physics, in particular the concepts of force, acceleration, velocity, and position. If you know Newton’s second law of motion in the form F = ma, that’s enough.