From a7c624c1aab1890cfa91e9d1b5d9d0f91a87b5ad Mon Sep 17 00:00:00 2001 From: orosmatthew Date: Fri, 15 Mar 2024 22:04:00 -0400 Subject: [PATCH] Add ps11-2.13 --- ps11-2.13-2.py | 20 ++++++++++++++++++++ ps11-2.13.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 ps11-2.13-2.py create mode 100644 ps11-2.13.py diff --git a/ps11-2.13-2.py b/ps11-2.13-2.py new file mode 100644 index 0000000..c80c494 --- /dev/null +++ b/ps11-2.13-2.py @@ -0,0 +1,20 @@ +import numpy as np +import pylab as pl + +x_max = 10.0 +x_vals = np.linspace(-x_max, x_max, 1000) +dx = x_vals[1] - x_vals[0] +gaussian = np.exp(-x_vals * x_vals / 2) + +psi_funcs = [gaussian, + x_vals * gaussian, + (1 - 2 * x_vals * x_vals) * gaussian, + x_vals * (1 - (2.0 / 3.0) * x_vals * x_vals) * gaussian] + +for psi in psi_funcs: + a = 1.0 / (np.sqrt(psi.dot(psi)) * dx) + psi *= a + +for psi in psi_funcs: + pl.plot(x_vals, psi) + pl.show() diff --git a/ps11-2.13.py b/ps11-2.13.py new file mode 100644 index 0000000..ead2b1a --- /dev/null +++ b/ps11-2.13.py @@ -0,0 +1,45 @@ +import numpy as np +import pylab as pl + + +def ladder_plus(xs: np.ndarray, psi: np.ndarray) -> np.ndarray: + dx = xs[1] - xs[0] + return -np.gradient(psi, dx) + xs * psi + + +def ladder_minus(xs: np.ndarray, psi: np.ndarray) -> np.ndarray: + dx = xs[1] - xs[0] + return np.gradient(psi, dx) + xs * psi + + +def normalize(psi: np.ndarray) -> None: + psi /= np.sqrt(np.sum(psi * np.conjugate(psi))) + + +x_vals = np.linspace(-5, 5, 1000) + +psi_0 = np.exp(-x_vals ** 2) +normalize(psi_0) + +psi_funcs = [psi_0] +for i in range(1, 4): + psi_next = ladder_plus(x_vals, psi_funcs[i - 1]) + normalize(psi_next) + psi_funcs.append(psi_next) + +pl.rcParams['figure.dpi'] = 300 +fig, axs = pl.subplots(2, 2, tight_layout=True) +fig.tight_layout(pad=2.0) +axs[0, 0].plot(x_vals, psi_funcs[0]) +axs[0, 0].set_title('ψ0') +axs[0, 0].grid() +axs[0, 1].plot(x_vals, psi_funcs[1], 'tab:orange') +axs[0, 1].set_title('ψ1') +axs[0, 1].grid() +axs[1, 0].plot(x_vals, psi_funcs[2], 'tab:green') +axs[1, 0].set_title('ψ2') +axs[1, 0].grid() +axs[1, 1].plot(x_vals, psi_funcs[3], 'tab:red') +axs[1, 1].set_title('ψ3') +axs[1, 1].grid() +pl.show()