python光学仿真相速度和群速度计算理解学习

 更新时间:2021年10月20日 09:57:56   作者:微小冷  
从物理学的机制出发,波动模型相对于光线模型,显然更加接近光的本质;但是从物理学的发展来说,波动光学旨在解决几何光学无法解决的问题,可谓光线模型的一种升级

从编程的角度来说,波动光学在某些情况下可以简单地理解为在光线模型的基础上,引入一个相位项。

波动模型

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

img/py2.png

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()

其结果如图所示

在这里插入图片描述

相速度

在这里插入图片描述

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

群速度

在这里插入图片描述

假设两列波的波长分别为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到10um
    E0 = 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()

在这里插入图片描述

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

在这里插入图片描述

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

以上就是python光学仿真相速度和群速度理解学习的详细内容,更多关于python光学仿真相速度和群速度的资料请关注脚本之家其它相关文章!

相关文章

  • Python matplotlib.pyplot.hist()绘制直方图的方法实例

    Python matplotlib.pyplot.hist()绘制直方图的方法实例

    直方图(Histogram)又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据类型,纵轴表示分布情况,下面这篇文章主要给大家介绍了关于Python matplotlib.pyplot.hist()绘制直方图的相关资料,需要的朋友可以参考下
    2022-06-06
  • 解决Python计算矩阵乘向量,矩阵乘实数的一些小错误

    解决Python计算矩阵乘向量,矩阵乘实数的一些小错误

    今天小编就为大家分享一篇解决Python计算矩阵乘向量,矩阵乘实数的一些小错误,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • python argparse模块传参用法实例

    python argparse模块传参用法实例

    这篇文章主要为大家介绍了python argparse模块传参用法实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python模块相关知识点小结

    Python模块相关知识点小结

    这篇文章主要介绍了Python模块相关知识点,总结分析了Python模块的功能、原理、使用方法与操作注意事项,需要的朋友可以参考下
    2020-03-03
  • python 3.10上如何安装pyqt5

    python 3.10上如何安装pyqt5

    这篇文章主要介绍了python 3.9上安装pyqt5的详细步骤,本文分步骤给大家介绍如何在python 3.9 上安装 pyqt5,需要的朋友可以参考下
    2022-07-07
  • python实现爬虫下载漫画示例

    python实现爬虫下载漫画示例

    本文主要介绍了python实现爬虫下载漫画的示例,对游侠网的漫画资源进行解析,下载其全部章节漫画
    2014-02-02
  • Python字符串拼接六种方法介绍

    Python字符串拼接六种方法介绍

    这篇文章主要介绍了Python字符串拼接六种方法介绍,具有一定借鉴价值,需要的朋友看可以参考下。
    2017-12-12
  • 对python当中不在本路径的py文件的引用详解

    对python当中不在本路径的py文件的引用详解

    今天小编就为大家分享一篇对python当中不在本路径的py文件的引用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Pandas Describe函数的具体使用

    Pandas Describe函数的具体使用

    在Pandas中,describe()能够为数据框中的数值列提供统计摘要信息,本文主要介绍了Pandas Describe函数的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • python随机3分钟发送一次消息完整代码

    python随机3分钟发送一次消息完整代码

    最近我接到这样的任务需求有一个实时任务,想要间隔3分钟发送,最近的一次消息,接下来通过本文给大家分享python随机3分钟发送一次消息,需要的朋友可以参考下
    2024-03-03

最新评论