Physical Constants in Python
Python and SciPy library are pretty powerful scientific tools. In this post, we put this to the test using a famous problem from the world of physics.
Join the DZone community and get the full member experience.
Join For FreeYou can find a large collection of physical constants in scipy.constants
. The most frequently used constants are available directly, and hundreds more are in a dictionary physical_constants
.
The fine structure constant α is defined as a function of other physical constants:
The following code shows that the fine structure constant and the other constants that go into it are available in scipy.constants
.
import scipy.constants as sc
a = sc.elementary_charge**2
b = 4 * sc.pi * sc.epsilon_0 * sc.hbar * sc.c
assert( abs(a/b - sc.fine_structure) < 1e-13 )
Eddington's Constant
In the 1930s, Arthur Eddington believed that the number of photons in the observable universe was exactly the Eddington number:
Since at the time the fine structure constant was thought to be 1/136, this made the number of photons a nice even 136 × 2 256. Later he revised his number when it looked like the fine structure constant was 1/137. According to the Python code above, the current estimate is more like 1/137.036.
Eddington was a very accomplished scientist, though he had some ideas that seem odd today. His number is a not a bad estimate, though nobody believes it could be exact.
Related Posts
The constants in scipy.constants
have come up in a couple previous blog posts.
The post on Koide's coincidence shows how to use the physical_constants
dictionary, which includes not just the physical constant values but also their units and uncertainty.
The post on Benford's law shows that the leading digits of the constants in scipy.constants
follow the logarithmic distribution observed by Frank Benford (and earlier by Simon Newcomb).
Published at DZone with permission of John Cook, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments