光的双缝衍射代码
时间: 2023-07-03 19:24:13 浏览: 186
matlab光的衍射代码-Optics-old:光学老
以下是光的双缝衍射的 Python 代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义常数
wavelength = 0.5e-3 # 波长
slit_width = 0.1e-3 # 双缝间距
slit_distance = 1e-3 # 双缝到屏幕距离
# 定义屏幕宽度和点数
screen_width = 2e-2
point_num = 500
# 计算屏幕上每个点的位置
x = np.linspace(-screen_width / 2, screen_width / 2, point_num)
# 计算双缝到每个点的距离
distance = np.sqrt((x - slit_width / 2) ** 2 + slit_distance ** 2)
# 计算光程差
delta = distance - np.sqrt((x + slit_width / 2) ** 2 + slit_distance ** 2)
# 计算干涉强度
intensity = (np.sin(np.pi * slit_width / wavelength * np.sin(np.arctan(delta / slit_distance))) / (np.pi * slit_width / wavelength * np.sin(np.arctan(delta / slit_distance)))) ** 2
# 绘制图像
plt.plot(x * 1e3, intensity)
plt.xlabel('Position (mm)')
plt.ylabel('Intensity')
plt.title('Double Slit Diffraction')
plt.show()
```
使用该代码,可以绘制出双缝衍射的干涉图像。其中,`wavelength`、`slit_width`和`slit_distance`是常数,分别表示光的波长、双缝宽度和双缝到屏幕的距离。`screen_width`和`point_num`则分别表示屏幕宽度和点数。通过计算每个点到双缝的距离,然后计算光程差和干涉强度,最后绘制出干涉图像。
阅读全文