🎯要点
🎯多模光纤包含光学系统线性和非线性部分 | 🎯单变量线性回归、多变量线性回归、人脸图像年龄预测、音频语音分类和 X 射线图像评估算法 | 🎯在空间光调制器记录海螺参数矩阵,光束算法多变量预测年龄 | 🎯光束算法数学模型
🍪语言内容分比
🍇Python光泵浦
实际上,由于跃迁线宽的功率加宽以及超精细结构捕获和辐射捕获等不良影响,完全相干光泵浦可能不会发生。因此,原子的方向更一般地取决于激光的频率、强度、偏振和光谱带宽以及吸收跃迁的线宽和跃迁概率。
最后,可以将失谐置于激光器上或将失谐置于哈密顿量上(或两者的某种组合)。后者似乎更快。
gamma = 1
laserBeams = {}
laserBeams['$\\pi_z$']= pyp.laserBeams([
{'kvec': np.array([1., 0., 0.]), 'pol':np.array([0., 0., 1.]),
'pol_coord':'cartesian', 'delta':-2.73*gamma, 's':4*0.16*(1+2.73**2)}
])
laserBeams['$\\pi_y$']= pyp.laserBeams([
{'kvec': np.array([0., 0., 1.]), 'pol':np.array([0., 1., 0.]),
'pol_coord':'cartesian', 'delta':-2.73*gamma, 's':4*0.16*(1+2.73**2)}
])
laserBeams['$\\pi_x$']= pyp.laserBeams([
{'kvec': np.array([0., 0., 1.]), 'pol':np.array([1., 0., 0.]),
'pol_coord':'cartesian', 'delta':-2.73*gamma, 's':0.16*(1+2.73**2)},
{'kvec': np.array([0., 0., -1.]), 'pol':np.array([1., 0., 0.]),
'pol_coord':'cartesian', 'delta':-2.73*gamma, 's':0.16*(1+2.73**2)}
])
magField = lambda R: np.zeros(R.shape)
H_g, muq_g = pyp.hamiltonians.singleF(F=2, gF=1, muB=1)
H_e, mue_q = pyp.hamiltonians.singleF(F=3, gF=1, muB=1)
d_q = pyp.hamiltonians.dqij_two_bare_hyperfine(2, 3)
hamiltonian = pyp.hamiltonian()
hamiltonian.add_H_0_block('g', H_g)
hamiltonian.add_H_0_block('e', H_e-0.*np.eye(H_e.shape[0]))
hamiltonian.add_d_q_block('g', 'e', d_q, gamma=gamma)
hamiltonian.print_structure()
计算密度迁移
obe = {}
rateeq = {}
rateeq['$\\pi_z$'] = pyp.rateeq(laserBeams['$\\pi_z$'], magField,
hamiltonian)
obe['$\\pi_z$'] = pyp.obe(laserBeams['$\\pi_z$'], magField, hamiltonian,
transform_into_re_im=transform)
N0 = np.zeros((rateeq['$\\pi_z$'].hamiltonian.n,))
N0[0] = 1
rateeq['$\\pi_z$'].set_initial_pop(N0)
rateeq['$\\pi_z$'].evolve_populations([0, 600/gamma],
max_step=1/gamma)
rho0 = np.zeros((obe['$\\pi_z$'].hamiltonian.n**2,))
rho0[0] = 1.
obe['$\\pi_z$'].set_initial_rho(np.real(rho0))
obe['$\\pi_z$'].evolve_density(t_span=[0, 600/gamma],
progress_bar=True)
Neq = rateeq['$\\pi_z$'].equilibrium_populations(np.array([0., 0., 0.]),
np.array([0., 0., 0.]), 0.)
绘制结果
fig, ax = plt.subplots(1, 1)
for jj in range(5):
ax.plot(gamma*rateeq['$\\pi_z$'].sol.t,
rateeq['$\\pi_z$'].sol.y[jj, :], '--',
color='C{0:d}'.format(jj),
linewidth=1.0)
ax.plot(gamma*obe['$\\pi_z$'].sol.t, np.abs(obe['$\\pi_z$'].sol.rho[jj, jj]), '-',
color='C{0:d}'.format(jj),
linewidth=0.5)
ax.plot(gamma*obe['$\\pi_z$'].sol.t[-1], Neq[jj], '.', color='C{0:d}'.format(jj),
linewidth=0.5)
ax.set_xlabel('$\\Gamma t$')
ax.set_ylabel('$\\rho_{ii}$');
接下来,我们要检查我们的旋转是否正常工作,因此我们将对具有 \pi_y 偏振的 \hat{z} 行进光束进行相同的计算。但在我们使用光学布洛赫方程之前,我们需要首先创建初始状态,这涉及到旋转我们的状态。
mug = spherical2cart(muq_g)
S = -mug
E, U = np.linalg.eig(S[1])
inds = np.argsort(E)
E = E[inds]
U = U[:, inds]
Uinv = np.linalg.inv(U)
psi = U[:, 0]
rho0 = np.zeros((hamiltonian.n, hamiltonian.n), dtype='complex128')
for ii in range(hamiltonian.ns[0]):
for jj in range(hamiltonian.ns[0]):
rho0[ii, jj] = psi[ii]*np.conjugate(psi[jj])
obe['$\\pi_y$'] = pyp.obe(laserBeams['$\\pi_y$'], magField, hamiltonian,
transform_into_re_im=transform)
obe['$\\pi_y$'].set_initial_rho(rho0.reshape(hamiltonian.n**2,))
obe['$\\pi_y$'].evolve_density(t_span=[0, 600],
progress_bar=True)
for jj in range(obe['$\\pi_y$'].sol.t.size):
obe['$\\pi_y$'].sol.rho[:5, :5, jj] = Uinv@obe['$\\pi_y$'].sol.rho[:5, :5, jj]
绘制结果
fig, ax = plt.subplots(1, 1)
for jj in range(5):
ax.plot(obe['$\\pi_y$'].sol.t,
np.abs(obe['$\\pi_y$'].sol.rho[jj, jj]), '-',
color='C{0:d}'.format(jj),
linewidth=0.5)
ax.set_xlabel('$\\Gamma t$')
ax.set_ylabel('$\\rho_{ii}$');
现在,让我们对 \pi_x 做同样的事情,只不过这次我们有两束激光束,强度为 1 / 4:
E, U = np.linalg.eig(S[0])
inds = np.argsort(E)
E = E[inds]
U = U[:, inds]
Uinv = np.linalg.inv(U)
psi = U[:, 0]
rho0 = np.zeros((hamiltonian.n, hamiltonian.n), dtype='complex128')
for ii in range(hamiltonian.ns[0]):
for jj in range(hamiltonian.ns[0]):
rho0[ii, jj] = psi[ii]*np.conjugate(psi[jj])
obe['$\\pi_x$'] = pyp.obe(laserBeams['$\\pi_x$'], magField, hamiltonian,
transform_into_re_im=transform)
obe['$\\pi_x$'].set_initial_rho(rho0.reshape(hamiltonian.n**2,))
obe['$\\pi_x$'].evolve_density(t_span=[0, 600],
progress_bar=True)
for jj in range(obe['$\\pi_x$'].sol.t.size):
obe['$\\pi_x$'].sol.rho[:5, :5, jj] = Uinv@obe['$\\pi_x$'].sol.rho[:5, :5, jj]