# 代码用于计算在体积为L^3的无限深势阱中,一个满足周期性边界条件的自由粒子的状态个数。
import numpy as np # 用来处理数据
# 计算量子数组
num_list = []
# 定义能级
E = 29 # 初始能量
n_X = 0
n_Y = 0
n_Z = 0
# 根号取整
sqrt_E = int(np.sqrt(E))
for i in range(0, sqrt_E + 1):
for j in range(0, sqrt_E + 1):
for k in range(0, sqrt_E + 1):
if i ** 2 + j ** 2 + k ** 2 == E:
if (i, j, k) not in num_list:
num_list.append((i, j, k))
if (-i, j, k) not in num_list:
num_list.append((-i, j, k))
if (i, -j, k) not in num_list:
num_list.append((i, -j, k))
if (-i, -j, k) not in num_list:
num_list.append((-i, -j, k))
if (i, j, -k) not in num_list:
num_list.append((i, j, -k))
if (-i, j, -k) not in num_list:
num_list.append((-i, j, -k))
if (i, -j, -k) not in num_list:
num_list.append((i, -j, -k))
if (-i, -j, -k) not in num_list:
num_list.append((-i, -j, -k))
else:
continue
def output(num_list):
str_temp = ""
if len(num_list) == 1:
str_temp = (0, 0, 0)
else:
for i in range(0, int(len(num_list) / 2)):
j = 2 * i
str_temp += str(num_list[j]) + " " + str(num_list[j]) + "\n"
return str_temp
# 输出量子数组的个数,以及各个量子数
print(f"能级:", E, "\n", len(num_list), "states", ":", "\n", output(num_list))
temp_list1 = []
temp_list2 = []
temp_list3 = []
for i in range(0, len(num_list)):
temp_list1 = [num_list[i][0]]
temp_list2 = [num_list[i][1]]
temp_list3 = [num_list[i][2]]
# x = np.array(temp_list1)
# y = np.array(temp_list2)
# z = np.array(temp_list3)
#
# ax = plt.subplot(projection='3d') # 创建一个三维的绘图工程
# ax.set_title('3d_image_show') # 设置本图名称
# ax.scatter(x, y, z, c='r') # 绘制数据点 c: 'r'红色,'y'黄色,等颜色
#
# ax.set_xlabel('X') # 设置x坐标轴
# ax.set_ylabel('Y') # 设置y坐标轴
# ax.set_zlabel('Z') # 设置z坐标轴
#
# plt.show()
体积为L^3的容器中,自由粒子状态数(后期补理论)
最新推荐文章于 2024-09-26 11:55:47 发布