import numpy as np a = 1 hbar = 1.054572e-34 n_vals = [n for n in range(1, 7)] N = 1000 dx = 1 / N x_vals = np.linspace(-a / 2, a / 2, N) psi_funcs = [] psi_derivs = [] psi_2nd_derivs = [] for n in n_vals: if n % 2 == 0: psi_funcs.append(np.sqrt(2 / a) * np.sin(n * np.pi * x_vals / a)) psi_derivs.append(np.sqrt(2) * np.pi * n * np.cos(np.pi * n * x_vals / a) / (a * np.sqrt(a))) psi_2nd_derivs.append( -(np.sqrt(2) * np.pi ** 2 * n ** 2 * np.sin(np.pi * n * x_vals / a)) / (a ** 2 * np.sqrt(a))) else: psi_funcs.append(np.sqrt(2 / a) * np.cos(n * np.pi * x_vals / a)) psi_derivs.append(-(np.sqrt(2) * np.pi * n * np.sin(np.pi * n * x_vals / a)) / (a * np.sqrt(a))) psi_2nd_derivs.append( -(np.sqrt(2) * np.pi ** 2 * n ** 2 * np.cos(np.pi * n * x_vals / a)) / (a ** 2 * np.sqrt(a))) print("======= expect_x =======") for i in range(len(psi_funcs)): expect_x = np.sum(psi_funcs[i] ** 2 * x_vals) * dx print(f'expect_x_{i + 1} = {expect_x}') print("======= expect_x^2 =======") for i in range(len(psi_funcs)): expect_x_sqrd = np.sum(psi_funcs[i] ** 2 * x_vals ** 2) * dx print(f'expect_x^2_{i + 1} = {expect_x_sqrd}') print("======= expect_p =======") for i in range(len(psi_funcs)): expect_p = np.sum(psi_funcs[i] * 1j * hbar * psi_derivs[i]) * dx print(f'expect_p_{i + 1} = {expect_p}') print("======= expect_p^2 =======") for i in range(len(psi_funcs)): expect_p_sqrd = np.sum(psi_funcs[i] * hbar ** 2 * psi_2nd_derivs[i]) * dx print(f'expect_p^2_{i + 1} = {expect_p_sqrd}')