The tutorials below introduce some computational tools in Python that will be useful in various physics classes. They are designed to get you started quickly by explaining example code that you can modify. There are also links to additional documentation where you can learn more. The tutorials are written as Jupyter notebooks (formerly known as IPython notebooks).
The programs require Python with the scipy and matplotlib libraries. Any of the following free options are suggested:
It is a good idea to start all of your programs with the following line (note that there are 2 underscores before and after "future"):
from __future__ import division, print_functionIf you use Python 2, this will avoid the result of division being truncated to an integer (for example, "
1/2" will not give zero) and will use the newer form of the print function (instead of the older
print "Hello World", use the newer
print("Hello World")). If you use Python 3, this will have no effect.
Click on the links below to view HTML versions of the tutorials (produced by nbviewer). From within the notebook viewer, you can copy segments of Python code from a tutorial. You can also download a tutorial as a Jupyter notebook (.ipynb file), which allows you to edit it.
Matrix Solution for a Set of Linear Equations
An Introduction to Making Graphs
Text, Math, and Numbers in Figures
A Brief Introduction to Typesetting Mathematics with LaTeX
Reading and Writing Data Files
Histogramming and Binning Data
fitting.py (put in same directory as the program using the "linear_fit" function)
fitting.py (put in the same directory as programs using the "general_fit" function)
Root Finding (Solutions to a Transcendental Equation)
Numerical Integration (Quadrature)
Solving Differential Equations with the Euler-Cromer Method
Solving Ordinary Differential Equations (ODEs)
If you are already familiar with Matlab, R, or IDL, Mathesaurus will show you what equivalent commands in Python are.
These tutorials are maintained by Alan DeWeerd.