Announcements
Please also check Canvas for class announcements.
Week 6 & 7 Announcement
In Week 6 we will start a long module on solving ordinary differential equations (ODEs). ODEs underpin many problems in Physics and even though we can sometimes solve them analytically, this is often not possible. Starting from numerical differentiation, we will develop discretization algorithms that allow us to solve any system of coupled ODEs (linear or non-linear) numerically.
We will then discuss different integrator algorithms and see the trade-offs in accuracy and stability and how they are related to deeper symmetries present in the physical problem.
Week 5 Announcement
In Week 5 we will use NumPy and matplotlib to analyze an ensemble of Brownian dynamics (random walk) trajectories, which concludes our example on using numpy and matplotlib.
We will then learn about fundamentals of numerical computations, namely how numbers are represented in the computer and what errors one expects in numerical calculations. These two topics are tightly linked and surprisingly, the random walk will show up again in a completely different context.
Week 4 Announcement
In Week 4 we will learn about two fundamental Python packages for scientific computing:
- NumPy, which makes available N-dimensional arrays and functions to work with these arrays.
- matplotlib, a comprehensive library for creating static, animated, and interactive visualizations in Python.
We will use NumPy arrays as the basic data structure for most of our algorithms and applications, simply because most of Physics can be described as scalar series (e.g., time series), vectors, or tensors. NumPy will enable us to write concise and fast code that operates on these data structures.
Furthermore, all scientific Python packages have adopted the NumPy array as the common data structure so using it makes it easy to work with other packages, too.
matplotlib works seamlessly with NumPy arrays and makes it easy to create 2D plots. It is essential for analyzing the output from our programs. It also has 3D plotting capabilities that we will explore. With some practice, matplotlib can produce publication-ready plots — no more manual graph making in a spread sheet program… Furthermore, because you create graphs by writing Python code, you can fully automate graph creation, which ultimately leads to enhanced productivity and more consistent plots with fewer errors.
Knowing NumPy and matplotlib is absolutely essential when doing scientific programming in Python.
Week 3 Announcement
In Week 3 we further add to our computational tool belt with a focus on Python itself. After the review of the fundamentals we are now in a position to learn about the power of modularization and code re-use. You’ll also learn some vital tips and tricks for debugging.
Week 2 Announcement
As a computational scientist you want to have a number of tools in your (virtual) tool belt to get your work done. In Week 1 we already learned to use the command line, namely bash
.
In Week 2 we will learn to use the git source code management tool, a distributed version control system (VCS), that is widely used in the open source communities and in industry. A VCS keeps track of multiple files in a project and allows multiple people to work on the same project without overwriting each other’s changes.
We will also review the Python programming language. Python is widely used in the sciences (and in industry) and provides everything one needs to solve problems in virtually all areas you can think of.
Week 1 Announcement
The plan for this week is to
- install a working environment with Python,
git
,bash
, and a good coding editor (Atom) on your laptop - learn to use the Unix shell (namely,
bash
)
Week 0 Announcement
Hello world!
Welcome to PHY432. We start on 1/14/2025. Bring your laptop to class.
Please check the Canvas (ASU PHY432 Spring 2025) site for additional details.