文章目录

  • 波动模型
  • 相速度
  • 群速度

从物理学的机制出发,波动模型相对于光线模型,显然更加接近光的本质;但是从物理学的发展来说,波动光学旨在解决几何光学无法解决的问题,可谓光线模型的一种升级。从编程的角度来说,波动光学在某些情况下可以简单地理解为在光线模型的基础上,引入一个相位项。

波动模型

一般来说,三个特征可以确定空间中的波场:频率、振幅和相位,故光波场可表示为:

E=Acos(ωt−kr)E = Acos(\omega t-kr) E=Acos(ωt−kr)

其中,AAA为振幅,ω=2πf=2πT\omega=2\pi f=\frac{2\pi}{T}ω=2πf=T2π​为角频率,k=2πλk=\frac{2\pi}{\lambda}k=λ2π​,为波数。由上式可知,当时间固定时,光在传播方向上有一个正弦波的外形;而对于空间中任意一点,沿着振幅方向则进行简谐运动。

其中,振幅、波数以及空间位置均为矢量,当坐标比较混乱的时候,也可以写成E⃗=A⃗cos(ωt−k⃗r⃗)\vec E = \vec{A}cos(\omega t-\vec k\vec r)E=Acos(ωt−kr);有时为了计算方便,也可以写成指数形式

E=Ae−i(ωt−kr)E = Ae^{-i(\omega t-kr)} E=Ae−i(ωt−kr)

对于平面波来说,其发散角为0,即光场中的所有点,都具有统一的传播方向,且振幅相等。设其传播方向为zzz,则可写为

E=Acos(ωt−kz)E = Acos(\omega t-kz) E=Acos(ωt−kz)

球面波则相对复杂,令rrr为空间中任意一点到点光源的距离,则对于a、ba、ba、b两点来说,其单位面积的光通量之比为IaIb=rb2ra2\frac{I_a}{I_b}=\frac{r^2_b}{r^2_a}Ib​Ia​​=ra2​rb2​​,则振幅之比为EbEa=rarb\frac{E_b}{E_a}=\frac{r_a}{r_b}Ea​Eb​​=rb​ra​​。这说明球面波振幅反比于波阵面到光源距离,即

E=A⃗re−i(ωt−k⃗r⃗)E = \frac{\vec A}{r}e^{-i(\omega t-\vec k\vec r)} E=rA​e−i(ωt−kr)

通过截取xOzxOzxOz平面,假设光波长为532nm,则可以画出这一截面处的光波振幅图。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
z = np.arange(15,200)*10    #单位为nm
x = np.arange(15,200)*10
x,z = np.meshgrid(x,z)      #创建坐标系
E = 1/np.sqrt(x**2+z**2)*np.cos(2*np.pi*np.sqrt(x**2+z**2)/(532*1e-9))
fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(x,z,E)
plt.show()

其结果如图所示

相速度

经典的光波公式E=Acos(ωt−kr)E = Acos(\omega t-kr)E=Acos(ωt−kr)表示一个在空间中沿着一个方向传播的简谐波。如果现有多个频率相同的光波共同传播,那么由于不同光波之间可能存在相位差,虽然在任意一点上仍旧有着简谐运动的形式,但在任意时刻,其波峰波谷的位置显然不同。故可以写为

E=A(r)cos⁡(ωt−g(r))E=A(\bf{r})\cos(\omega t-g(\bf{r})) E=A(r)cos(ωt−g(r))

指数形式为

E=A(r)eig(r)e−iωtE=A(\bf{r})e^{ig(\bf{r})}e^{-i\omega t}E=A(r)eig(r)e−iωt

其中,g(r)g(r)g(r)为常数,被称为等相位面,等相面并不重合的光波叫做非均匀波,即非均匀波可能在空间上不具备可计算的周期性。除非ωt−g(r)\omega t-g(\bf{r})ωt−g(r)的全微分为0,即ωdt−gradgdr=0\omega dt-\text{grad}g\text{d}\bf{r}=0ωdt−gradgdr=0。

→drdt=ωgradg\to \frac{\text{d}\bf{r}}{\text{d}t}=\frac{\omega}{\text{grad}g} →dtdr​=gradgω​

当r\bf{r}r的方向垂直于等相面时,上式数值最小,为

vp(r)=ω∣gradg∣v_p(\bf{r})=\frac{\omega}{|\text{grad}g|}vp​(r)=∣gradg∣ω​

该式表示各等相位面前进的速度,为相速度\textbf{相速度}相速度。

群速度

对于平面波来说,g(r)=k⋅r−δg(\bf r)=k \cdot r-\deltag(r)=k⋅r−δ,则

vp=ωk=cεμv_p=\frac{\omega}{k}=\frac{c}{\sqrt{\varepsilon\mu}}vp​=kω​=εμ​c​

当光波是由一群频率不同的光的叠加时,相速度便难以衡量光束的传播特性,也几乎是不可测的。而真实的光波往往是不同频率单色波的叠加

E(r,t)=∫0∞Aω(r)[ωt−gω(r)]E(\mathbf{r},t)=\int_0^\infty A_\omega(\mathbf{r})[\omega t-g_\omega(\mathbf{r})]E(r,t)=∫0∞​Aω​(r)[ωt−gω​(r)]

对于两个平面单色波来说,如果二者频率和相位都比较相近,振幅相同,且都沿着zzz轴传播,则对振幅进行归一化,上式可以简化为

E(z,t)a=cos⁡(ωt−kz)+cos⁡[(ω+δω)t−(k+δk)z]→e−i(ωt−kz)+e−i[(ω+δω)t−(k+δk)z]=2cos⁡[12(tδω−zδk)]e−i(ωˉt−kˉz)→2cos⁡[12(tδω−zδk)]cos⁡(ωˉt−kˉz)其中ωˉ=ω+12δω,kˉ=k+12δk\begin{aligned} \frac{E(z,t)}{a}=&\cos{(\omega t-kz)}+\cos{[(\omega+\delta\omega)t-(k+\delta k)z]}\\ \to&e^{-i(\omega t-kz)}+e^{-i[(\omega+\delta\omega)t-(k+\delta k)z]}\\ =&2\cos[\frac{1}{2}(t\delta\omega-z\delta k)]e^{-i(\bar\omega t-\bar kz)}\\ \to&2\cos[\frac{1}{2}(t\delta\omega-z\delta k)]\cos{(\bar\omega t-\bar kz)}\\ \text{其中}&\quad\bar\omega=\omega+\frac{1}{2}\delta\omega,\quad \bar k=k+\frac{1}{2}\delta k \end{aligned} aE(z,t)​=→=→其中​cos(ωt−kz)+cos[(ω+δω)t−(k+δk)z]e−i(ωt−kz)+e−i[(ω+δω)t−(k+δk)z]2cos[21​(tδω−zδk)]e−i(ωˉt−kˉz)2cos[21​(tδω−zδk)]cos(ωˉt−kˉz)ωˉ=ω+21​δω,kˉ=k+21​δk​

假设两列波的波长分别为532nm和600nm,则在同一时刻,不同位置处的光波振幅可通过python画出

def wavePacket(d = [532e-9,600e-9]):d = np.array(d)k = 2*np.pi/d           #波数dk = k[0]-k[1]          #波数差bk = k[1]+dk/2          #平均波数z = np.arange(10000)/1e9  #位置为0到10umE0 = np.cos(-k[0]*z)E1 = np.cos(-k[1]*z)E = E0+E1#E = 2*np.cos(-dk/2*z)*np.cos(-bk*z)fig = plt.figure()plt.plot(z,E0,'--',color='red',label='E0')plt.plot(z,E1,'--',color='blue',label='E1')plt.plot(z,E,'-',color='green',label='E')plt.legend()plt.show()

可见每间隔一段距离或者时间就会出现一个比较大的振幅,其极大间隔可以通过表达式求出

δt=2πωˉδz=2πkˉ\delta t = \frac{2\pi}{\bar\omega}\quad\delta z=\frac{2\pi}{\bar k} δt=ωˉ2π​δz=kˉ2π​

则定义

vg=δzδt=ωˉkˉv_g=\frac{\delta z}{\delta t}=\frac{\bar\omega}{\bar k} vg​=δtδz​=kˉωˉ​

为群速度,表示波包的传播速度。

通过python理解相速度和群速度相关推荐

  1. NLP实战:利用Python理解、分析和生成文本 | 赠书

    导读:本文内容参考自<自然语言处理实战:利用Python理解.分析和生成文本>一书,由Hobson Lane等人所著. 本书是介绍自然语言处理(NLP)和深度学习的实战书.NLP已成为深度 ...

  2. UA OPTI501 电磁波 Lorentz Oscillator Model 3 相速度与群速度

    UA OPTI501 电磁波 Lorentz Oscillator Model 3 相速度与群速度 相速度与群速度的概念 群速度的推导 例:透明介电材料中绿光传播的群速度与相速度 在Lorentz O ...

  3. python理解与应用(一)marks and 扩展模块

    python理解与应用(一) 复杂数据类型 容器类型 数据组织 计算 控制流:顺序.条件.循环 定义语句:def.class 代码对象 callable 一.datetime datetime.dat ...

  4. 利用Python理解TTF矢量字体显示原理

    本文从微软雅黑字体MSYH.TTF中抽取出2次B样条曲线和直线的控制节点坐标数据,利用Python将汉字轮廓绘制出来. MSYH字体轮廓是由2次B样条曲线和直线构成的,下图(fontforge软件获取 ...

  5. 利用python理解mvc架构模型

    MVC (model-view-control)(模型 视图 控制) 为什么会出现这三者呢? 其实是在做项目的过程中,为了使得代码更加清晰,且让各个模块负责自己的关注点也是关注点分离(SOC sepa ...

  6. 用Python理解极限,看了这个就不会挂高数了

    文章目录 1 状态变化 2 极限语言 3 序列与函数 4 极限常数 圆周率 π \pi π 自然对数e 欧拉常数 γ \gamma γ 5 洛必达法则 1 状态变化 若将数学整体划分为三类,则可概括为 ...

  7. Python理解面向对象

    面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程 与 面向对象 面 ...

  8. knn算法python理解与预测_K近邻算法用作回归的使用介绍(使用Python代码)

    介绍 在我遇到的所有机器学习算法中,KNN是最容易上手的.尽管它很简单,但事实上它其实在某些任务中非常有效(正如你将在本文中看到的那样). 甚至它可以做的更好?它可以用于分类和回归问题!然而,它其实更 ...

  9. python理解浮点数运算的误差_浮点数运算的机器误差分析

    感觉跟专栏主题不是很搭... 不过这是这学期计算物理的作业,还是放上来吧,也算勉强沾边了吧. 用一个浮点数相加的例子来演示计算机在计算时所产生的误差. 在Python中,用0.2+0.4 会得到0.6 ...

  10. python理解浮点数运算的误差_Python 浮点数运算

    浮点数用来存储计算机中的小数,与现实世界中的十进制小数不同的是,浮点数通过二进制的形式来表示一个小数.在深入了解浮点数的实现之前,先来看几个 Python 浮点数计算有意思的例子: 0.1 == 0. ...

最新文章

  1. golang中的select详解
  2. 斯坦福CS231n项目实战(四):浅层神经网络
  3. 从头开始学JavaScript (七)——函数
  4. Hibernate 逆向工程生成POJO类和映射文件
  5. 2020牛客国庆集训派对day2 AKU NEGARAKU
  6. java中byte装箱和装箱_Java包装类、拆箱和装箱详解
  7. 传递function_JS中!function(){}()的理解
  8. 使用Windows Server 2003搭建一个asp+access网站
  9. Winform 实现像菜单一样弹出层
  10. 安卓微信视频播放全屏问题处理
  11. 【竞赛篇-国创(大创)申报立项】国家级大学生创新创业训练计划申报经验
  12. python毕业设计作品基于django框架 教室图书馆座位预约系统毕设成品(6)开题答辩PPT
  13. 用c语言编写人机结合的加法,综合集成研讨厅中人机结合的研讨流程研究.pdf
  14. Latex更改参考文献格式
  15. C++获取文件夹内子文件夹名
  16. java.net.ConnectException: [NACOS HTTP-POST] The maximum number of tolerable server reconnection err
  17. 缓存加速-----Squid-访问控制列表日志分析反向代理
  18. 什么样的语言可以进行反编译
  19. 傅里叶变换,其物理意义是什么?(转)
  20. BIM+GIS技术突破!百公里公路设计数据+TB级地形模型不再是难题!

热门文章

  1. 闫令琪图形学入门笔记(光栅化篇)
  2. 以太坊漫游指南:读懂以太坊发展路线图
  3. SD皇冠毛绒布料材质制作视频教程 中文字幕
  4. C51单片机引脚名词英文全称
  5. 点对点视频分发:从早期互联网到ZB字节(Zettabyte)时代的分布式网络
  6. 向量点积衡量相似度_向量点积与叉积
  7. 机器学习去除马赛克案例(代码)
  8. python-django前端传递数据的三种格式_CBV源码分析_django模板语法
  9. html 首行缩进两个空格,关于css的text-indent首行缩进两个字符和图片缩进的问题...
  10. 编辑器——sublime