So I coded up rutherford scattering in a real dumb way (you can significantly reduce your considerations by using symmetry and stuff).

I sort of monte carlo it with gaussian distributed initial conditions

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
import numpy as np from scipy import integrate z0 = -20.0 samples = 100 E=.5 t = np.linspace(0,50,100) def F(x): return .1 * x / np.linalg.norm(x)**1.5 def D(x,t): return np.concatenate((x[3:],F(x[0:3]))) import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.set_xlabel('x') ax.set_ylabel('y') ax.set_zlabel('z') def update(E): ax.set_title('E='+str(E)) for i in range(samples): initxy = 5*np.random.randn(2) init = np.append(initxy,[z0, 0., 0., np.sqrt(E)]) sol = integrate.odeint(D, init, t) ax.plot(sol[:,0], sol[:,1],sol[:,2]) update(E) plt.show() |

The bundles that come off look pretty cool

Lots that one could do with this. Compare the outgoing distribution to the formula, Try to discern shape of other potentials. Do a little statistics to see if charge or whatever can be determined from the data.

Show center of mass scattering. Try 4 particle scattering.

I guess I’m trying to play around in some high energy concepts.