Python光学仿真之对光的干涉理解学习
作者:微小冷 发布时间:2021-05-24 04:47:52
标签:光学仿真,干涉
光的干涉
干涉即两束光在叠加过程中出现的强度周期性变化情况,其最简单的案例即为杨氏双缝干涉。
如图所示,光从 S S S点发出,通过两个狭缝 S 1 , S 2 S_1,S_2 S1,S2,最终汇聚在右侧的干涉屏上,在不同位置处将会产生不同的相位差。
import numpy as np
import matplotlib.pyplot as plt
#两束光叠加
waveAdd = lambda I1,I2,theta : I1+I2+2*np.sqrt(I1*I2)*np.cos(theta)
#同一束光经过小孔之后的光程差,dSlit为小孔间距,dWave为波长
#point为衍射屏上某点,theta为衍射屏相对小孔所在直线倾角
def interSlit(dSlit,point=(1,1,1),n=1,dWave=1.06e-6):
pVar = sum(np.array(point)**2) + 0.25*dSlit**2
delt = 2*np.pi*n/dWave*(
np.sqrt(pVar+point[0]*dSlit)-
np.sqrt(pVar-point[0]*dSlit))
return delt
#杨氏干涉,只考虑x方向
#dSlit:小孔间距;dScreen:衍射屏距离
#nGrid:网格个数;dGrid:网格间距
def interYang(dSlit=1e-3,dScreen=1,n=1,I1=1,I2=1,
dWave=1.06e-6,nGrid=500,dGrid=1e-5):
xAxis = np.arange(-nGrid,nGrid+1)*dGrid
I = [waveAdd(I1,I2,interSlit(
dSlit,(x,0,dScreen),n,dWave))
for x in xAxis]
plt.plot(xAxis,I)
plt.show()
得到的衍射强度图为
双缝干涉是一个非常实用的模型,可以应用到许多光学装置中,例如Fresnel双面镜,Fresnel双棱镜,Lloyds镜,Billet剖开透镜等等。其中Frenel双面镜如图所示
光源入射到双面镜之后在镜后产生了两个像点 P , Q 二者相当于一对小孔,于是可以在右侧的干涉屏上产生干涉。
其仿真过程与杨氏干涉只差一个小孔的转换,图像亦如出一辙。
#alpha为双镜锐角,dSA为光源到劈点距离,dScreen为S像点连线到干涉屏距离
def lensFresnel(alpha=0.1,dSA=1e-3,dScreen=1,
n=1,I1=1,I2=1,dWave=1.06e-6,
nGrid=500,dGrid=1e-4):
dSlit = 2*dSA*np.sin(alpha)
interYang(dSlit,dScreen,n,I1,I2,dWave,nGrid,dGrid)
来源:https://blog.csdn.net/m0_37816922/article/details/109568347
0
投稿
猜你喜欢
- 按照网上之前版本的操作,将my.ini中的skip-grant-tables注释去掉,然后在命令行中以mysql -u root -p可以直
- 目录项目地址安装导入使用1 创建连接2 执行sql语句3 select 方法4 insert_into 方法5 merge_in
- 前言上次查看了微信好友的位置信息,想了想,还是不过瘾,于是就琢磨起了把微信好友的个性签名拿到,然后分词,接着分析词频,最后弄出词云图来。1.
- 作为站长而言,有时候我们可能会碰到更换服务器或者为网站做一个整体布局修改和升级,我们首先需要做的就是对数据库和整个wordpress网站的
- 本文实例讲述了python实现查找excel里某一列重复数据并且剔除后打印的方法。分享给大家供大家参考。具体分析如下:在python里面ex
- 1、利用uuid函数生成唯一且不规则的主键idsql:CREATE TABLE `test` ( `id` varchar(10
- 操作字符串的值是一般的开发人员必须面临的家常便饭。操作字符串的具体方式有很多,比如说从一个字符串是提取出一部分内容来,或者确定一个字符串是否
- 本文实例讲述了python循环监控远程端口的方法。分享给大家供大家参考。具体如下:在ip.txt中每行一个ip地址和端口号,代码可循环监控这
- 封装为dll会带来很多的好处,主要包括只是产权的保护,以及效率和安全性能的提升。这个例子中被封装的dll文件可以隐藏access数据库的实际
- 一、JSON.stringify介绍JSON.stringify() 方法将一个 JavaScript 对象或值转换为
- Http定义了与 服务器的交互方法,其中除了一般我们用的最多的GET,POST 其实还有PUT和DELETE 根据RFC2616标
- Python-opencv+KNN求解数独最近一直在玩数独,突发奇想实现图像识别求解数独,输入到输出平均需要0.5s。整体思路大概就是识别出
- 说明1、导入unittest模块。2、导入被测对象。3、创建测试类unittest.TestCase。4、重写setUp和tearDown(
- 1.连接测试连接是否成功:import redisr = redis.Redis(host='192.168.136.102'
- 很多时候基于php+MySQL建立的网站所出现的系统性能瓶颈往往是出在MySQL上,而MySQL中用的最多的语句就是查询语句,因此,针对My
- 背景开工前我就觉得有什么不太对劲,感觉要背锅。这可不,上班第三天就捅锅了。我们有个了不起的后台程序,可以动态加载模块,并以线程方式运行,通过
- 本文实例讲述了Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法。分享给大家供大家参考。具体如下:这个东东本来是做来给公司数据
- 在网上查了一下,在网上收集了Java与JavaScript中使用的两个例子,试验过,分享下。1、Java:package org.bearf
- python中index()、find()方法,具体内容如下:index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(
- 引言在刚入门python时,模块化编程、模块、类库等术语常常并不容易理清。尤其是Modules(模块)和Packages(包),在impor