1. 拉盖尔-高斯光束的电场分布通常可以用以下表达式来表示:
2. Python代码表示
import numpy as np
import matplotlib.pyplot as plt
from scipy.special import genlaguerre
import math
def laguerre_gaussian_beam(r, phi, z, l, p, w0, wavelength):
k = 2 * np.pi / wavelength
z_R = np.pi * w0**2 / wavelength
w_z = w0 * np.sqrt(1 + (z / z_R)**2)
R_z = z * (1 + (z_R / z)**2)
zeta_z = np.arctan(z / z_R)
normalization = np.sqrt(2 * math.factorial(p) / (np.pi * math.factorial(p + l)))
radial_term = (np.sqrt(2) * r / w_z)**l * genlaguerre(p, l)(2 * r**2 / w_z**2)
gauss_term = np.exp(-r**2 / w_z**2)
phase_term = np.exp(-1j * (k * z + k * r**2 / (2 * R_z) - (2 * p + l + 1) * zeta_z + l * phi))
E_lp = normalization * (1 / w_z) * radial_term * gauss_term * phase_term
return E_lp
# 参数设置
l = 1
p = 0
w0 = 1.0
wavelength = 1.0
z = 0.00000001
# 生成坐标网格
x = np.linspace(-5, 5, 400)
y = np.linspace(-5, 5, 400)
X, Y = np.meshgrid(x, y)
r = np.sqrt(X**2 + Y**2)
phi = np.arctan2(Y, X)
# 计算拉盖尔-高斯光束
E_lp = laguerre_gaussian_beam(r, phi, z, l, p, w0, wavelength)
# 绘制光束强度分布
plt.figure(figsize=(8, 8))
plt.imshow(np.abs(E_lp)**2, extent=(-5, 5, -5, 5), origin='lower', cmap='inferno')
plt.colorbar(label='Intensity')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Laguerre-Gaussian Beam Intensity Distribution')
plt.show()
3. 效果图