Physics Simulations in Python
Physics Simulations in Python
A Lab Manual
Daniel V. Schroeder
Physics Department
Weber State University
August 2022
Copyright ?2018¨C2022, Daniel V. Schroeder.
Adapted from Physics Simulations in Java, copyright ?2005¨C2011.
This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit .
org/licenses/by/4.0/ or send a letter to Creative Commons, PO Box 1866,
Mountain View, CA 94042, USA.
You can obtain the latest version of this manual at .
edu/schroeder/scicomp/. There you can also find the LATEX source and illustration files, to facilitate adapting this manual to different needs.
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Project 1: Making Shapes . . . . . . . . . . . . . . . . . . . . . 1
Project 2: Projectile Motion . . . . . . . . . . . . . . . . . . . 11
Project 3: Pendulum . . . . . . . . . . . . . . . . . . . . . . . 25
Project 4: Orbits . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Project 5: Molecular Dynamics . . . . . . . . . . . . . . . . . . 47
Project 6: Random Processes . . . . . . . . . . . . . . . . . . . 61
Project 7: Final Project . . . . . . . . . . . . . . . . . . . . . . 73
iii
Preface
Introductory physics courses are full of simplifications: projectiles fly without air
resistance, pendulums swing only at small angles, orbits are always circular, and
no more than two particles move at any time. These kinds of simplifications are
necessary and appropriate when you¡¯re first trying to understand the basic laws of
nature. But the real world is far more complex, and far more interesting. Because
the ultimate goal of physics is to understand the real world, students deserve a
course that applies the laws of physics to more complex situations.
Fortunately, modern electronic computers make it possible to perform extremely
lengthy calculations in a negligible amount of time. These days, therefore, computers offer the best avenue toward applying the basic laws of nature to complex
and realistic physical systems. A computer program that models the behavior of
a physical system is called a computer simulation. Creating and using computer
simulations is an integral part of modern science and engineering.
This manual is intended for a hands-on introductory course in computer simulations of physical systems, using the Python programming language. The goals of
the course are as follows:
? Learn enough of the Python language and the VPython and matplotlib graphics packages to write programs that do numerical calculations with graphical
output;
? Learn some step-by-step procedures for doing mathematical calculations (such
as solving differential equations) on a computer;
? Gain a better understanding of Newton¡¯s laws and other physical principles;
? Study a variety of physical systems that are too complex for simple penciland-paper calculations, and see what sorts of behavior emerge in such systems.
Prerequisites
Before working through the projects in this manual you should have completed a
semester of introductory physics, covering Newton¡¯s laws of motion, conservation
principles, and a bit of thermodynamics. You should also have taken at least one
semester of calculus. Prior expertise in writing computer programs is not required,
but you should be fairly comfortable using a web browser, word processor, and
spreadsheet, and you should have some experience at being careful with computer
syntax (in any programming language).
iv
Preface
v
Required materials
Naturally, you¡¯ll need a computer. The first five projects use a cloud-based version
of Python called Web VPython, so for those you can use any computer with an
internet connection and a modern web browser. (A tablet device without a physical
keyboard is not adequate.) For Project 6, you may need to install a free version of
the Python language and environment (if you¡¯re not using a computer on which it
is installed already).
Your Web VPython programs will be automatically saved on Google¡¯s servers,
but for any other files you¡¯ll need to use either some other type of cloud storage or
a USB memory stick for backup.
A pocket calculator (perhaps on your mobile phone) will sometimes come in
handy.
Finally, you¡¯ll need a few low-tech materials such as scratch paper, pencils, a
ruler, and a small three-ring binder to hold this manual.
How to use this manual
This manual is divided into six main chapters, corresponding to six separate projects.
In each project you will write a computer program or (more often) a small number
of closely related computer programs. Rather than giving you complete programs to
run, the project instructions will provide only code fragments and general guidelines
on how to write your programs. This way, once you have completed each program,
it will be yours.
As you create your computer programs, you will inevitably have questions and
encounter difficulties. While you should try to think things through for yourself
whenever possible, don¡¯t spend too much time being stuck and getting frustrated.
Ask your instructor or your lab partner or your other classmates for help. This is
not a test.
Exercises and questions will be sprinkled among the instructions in this manual,
with space for you to write your answers. Please make every effort to work each
exercise and answer each question immediately, before you read on.
The general premise of this manual is that you¡¯ll learn more by trying something than by reading a comprehensive explanation of it. Computer languages are
like ordinary languages in this respect: We normally learn new words by hearing,
reading, and using them in context, not by studying a dictionary. But if you want
to see a term clearly defined, feel free to ask your instructor or look it up online.
Computer programming is fun because it¡¯s so open-ended. You¡¯ll constantly
think of things to try that go beyond the explicit instructions. By all means, try
anything you want! If you¡¯re not sure how to add a certain feature to one of your
simulations, or if you¡¯re not sure whether it¡¯s practical to do so within a limited
amount of time, be sure to ask your instructor.
When you finish a project, gather the instruction pages and staple them together
with any printed output from your programs. This stapled packet, together with
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- networkx network analysis with python
- python quick guide tutorialspoint
- python fundamentals syllabus rooman
- python cheat sheet
- physics simulations in python
- python notes for professionals
- use python with r with reticulate cheat sheet
- worksheet python revision tour
- python quick revision tour
- python tkinter tutorial