当前位置: 首页 > news >正文

Python干涉仿真

文章目录

    • 干涉仿真
    • 双缝干涉
    • 四孔干涉

干涉仿真

干涉只需将有限个子波在观察面上的复振幅叠加在一起即可。记观察面为 Σ \Sigma Σ,则坐标为 ( x i , y i , z i ) (x_i, y_i, z_i) (xi,yi,zi)的单色点光源在 Σ \Sigma Σ上的复振幅分布为

E ( x , y , z ) = A i 1 ı λ r e ı 2 π r i λ , r = ( x − x i ) 2 + ( y − y i ) 2 + ( z − z i ) 2 E(x, y, z)=A_i\frac{1}{\imath\lambda r}e^{\frac{\imath2\pi r_i}{\lambda}}, r=\sqrt{(x-x_i)^2+(y-y_i)^2+(z-z_i)^2} E(x,y,z)=Aiλr1eλ2πrir=(xxi)2+(yyi)2+(zzi)2

式中 ı \imath 是虚数符号,相应地,多个点光源在叠加之后的复振幅分布为

E ( x , y , z ) = ∑ A i 1 ı λ r e ı 2 π r i λ E(x, y, z)=\sum A_i\frac{1}{\imath\lambda r}e^{\frac{\imath2\pi r_i}{\lambda}} E(x,y,z)=Aiλr1eλ2πri

光强分布为

I = E 2 I=E^2 I=E2

其Python实现如下,其中ss是光源列表,每个光源包括 x i , y i , z i , A i x_i, y_i, z_i, A_i xi,yi,zi,Ai四个分量。观察平面默认为 x = 0 x=0 x=0,w, h, n分别是观察面的宽度、高度和网格尺寸。dWave为波长,单位是微米。

import numpy as npdef interfere(ss, w, h, n, dWave=0.6328):y = np.linspace(0, w, np.int(w/n)) - w/2z = np.linspace(0, h, np.int(h/n)) - h/2y, z = np.meshgrid(y,z) # 干涉网格E = y*0*1jfor s in ss:r = np.sqrt((s[0])**2+(s[1]-y)**2+(s[2]-z)**2)E += s[3]/(1j*dWave*r)*np.exp(1j*2*np.pi*r/dWave)return E**2

双缝干涉

双缝干涉有两个孔,即需要两个光源,将其放置在 x O y xOy xOy平面,位置分别是 ( − 0.2 m , ± 10 μ m , 0 ) (-0.2m, \pm10\mu m, 0) (0.2m,±10μm,0),两束光的振幅均为 1 1 1。观察面的宽高为 80 × 20 80\times20 80×20mm,网格尺寸为 0.1 0.1 0.1,则干涉结果为

在这里插入图片描述

测试程序如下

def draw(img, w, h):plt.imshow(img, cmap='gray')plt.xlabel("x (um)")plt.ylabel("y (um)")yn, xn = img.shapexticks = [f"{x:.2f}" for x in np.linspace(-w/2, w/2, 10)]plt.xticks(np.linspace(0, xn, 10), xticks)yGrid = max(3, 10 * int(yn/xn))yticks = [f"{x:.2f}" for x in np.linspace(-h/2, h/2, yGrid)]plt.yticks(np.linspace(0, yn, yGrid), np.linspace(-h/2, h/2, yGrid))plt.colorbar()plt.tight_layout()plt.show()ss = [(-2e5, -10, 0, 1), (-2e5, 10, 0, 1)]
img = interfere(ss, 8e4, 2e4, 50)
draw(img, 8e4, 2e4)

杨氏双缝干涉要求双缝和观察屏的距离远大于双缝之间的距离,否则,例如将双缝和屏间距离缩短至2mm,则干涉图样为

在这里插入图片描述

四孔干涉

如果用4个等距小孔进行干涉,其位置分别是 ( 10 , 10 ) , ( 10 , − 10 ) , ( − 10 , − 10 ) , ( − 10 , 10 ) (10,10), (10,-10), (-10, -10), (-10,10) (10,10),(10,10),(10,10),(10,10),则其干涉图样为

在这里插入图片描述

http://www.lryc.cn/news/579364.html

相关文章:

  • 快速搭建大模型web对话环境指南(open-webUI)
  • 12. grafana-Dashboard的Variable(过滤)使用
  • vbox 虚拟共享文件夹 创建以及权限问题
  • 多模态AI Agent技术栈解析:视觉-语言-决策融合的算法原理与实践
  • [特殊字符] 从图片自动生成 Excel:Python 批量 OCR 表格识别实战
  • 高压电缆护层安全的智能防线:TLKS-PLGD 监控设备深度解析
  • Redis 消息的发布和订阅
  • C++11 shared_ptr 原理与详细教程
  • 算法分析的系统性总结
  • FFmpeg开发笔记(七十七)Android的开源音视频剪辑框架RxFFmpeg
  • Python 物联网(IoT)与边缘计算开发实战(1)
  • 基于多线程实现链表快排
  • 如何有效的开展接口自动化测试?
  • Linux之Socket 编程 UDP
  • C++ 项目实践:如何用对象池优化内存管理、解决 MISRA 报警
  • 制作一款打飞机游戏76:分数显示
  • CentOS系统高效部署fastGPT全攻略
  • Android音视频探索之旅 | CMake基础语法 创建支持Ffmpeg的Android项目
  • 电脑CPU使用率占用100%怎么办 解决步骤指南
  • 按键精灵 安卓脚本开发:游戏实战之自动切换账号辅助工具
  • 需要scl来指定编译器的clangd+cmake在vscode/cursor开发环境下的配置
  • reactnative页面适配UI设计尺寸px转dp的完美解决方案px2dp
  • 9.Docker的容器数据卷使用(挂载)
  • CAD2018,矩形设计,新增文字,块新增与打散
  • snail-job的oracle sql(oracle 11g)
  • OFD|WPS|PDF 文档在线预览-高级功能
  • 前置代理重构网络访问的「中转站」
  • AI大模型的技术演进、流程重构、行业影响三个维度的系统性分析
  • 嵌入式系统中实现串口重定向
  • DMN方式的特点