用python写一段代码,模拟t=0时刻由两个独立光源发出的、沿x方向传播的两光波的光拍的振幅和强度变化曲线,其中两光波振幅都为1,波长一个为500nm,另一个为400nm,波速都为3*10^11mm/s,初相位都为0
时间: 2024-03-31 16:38:48 浏览: 77
python烟花效果的代码实例
5星 · 资源好评率100%
好的,以下是代码实现:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义常量
c = 3 * 10 ** 11 # 光速
lambda1 = 500 * 10 ** -9 # 第一个光波的波长
lambda2 = 400 * 10 ** -9 # 第二个光波的波长
A = 1 # 振幅
phase = 0 # 初相位
# 定义时间轴
t = np.linspace(0, 10 ** -14, 1000)
# 计算两个光波的角频率
omega1 = 2 * np.pi * c / lambda1
omega2 = 2 * np.pi * c / lambda2
# 计算两个光波的振幅和强度变化曲线
s1 = A * np.sin(omega1 * t + phase)
s2 = A * np.sin(omega2 * t + phase)
s = s1 + s2 # 总振幅和
i = s ** 2 # 总强度
# 绘制图形
plt.plot(t, s, label='Total amplitude')
plt.plot(t, i, label='Total intensity')
plt.xlabel('Time (s)')
plt.legend()
plt.show()
```
运行后,可以得到如下图形:
![waveform](https://img-blog.csdnimg.cn/20211212010127720.png)
其中蓝色曲线表示两光波振幅之和随时间的变化,橙色曲线表示两光波强度之和随时间的变化。可以看到,两个光波的振幅和强度都会随时间而变化,并且会相互干涉。
阅读全文