Python模拟艾里光束:光可以不沿直线传播

文章目录

    • Airy光束
    • 有限能量Airy光束

Airy光束

在光学领域,傍轴近似下光束传输遵循方程

i ∂ ϕ ∂ z + 1 z a ∂ 2 ϕ ∂ x 2 = 0 i\frac{\partial\phi}{\partial z}+\frac{1}{z}\frac{a\partial^2\phi}{\partial x^2}=0 izϕ+z1x2a2ϕ=0

其中 k = 2 π n λ k=\frac{2\pi n}{\lambda} k=λ2πn,为波数。

ξ = x x 0 , η = z k x 0 2 \xi=\frac{x}{x_0}, \eta=\frac{z}{kx_0^2} ξ=x0x,η=kx02z,则上式变为无量纲的形式

i ∂ φ ∂ ξ + 1 2 ∂ 2 φ ∂ η 2 = 0 i\frac{\partial\varphi}{\partial\xi}+\frac{1}{2}\frac{\partial^2\varphi}{\partial\eta^2}=0 iξφ+21η22φ=0

其中, φ \varphi φ为电场包络。

φ ( ξ = 0 , η ) = A i ( η ) \varphi(\xi=0,\eta)=Ai(\eta) φ(ξ=0,η)=Ai(η)

根据艾里函数的定义,则 φ \varphi φ η \eta η之间存在关系 ∂ 2 φ ∂ η 2 = η φ \frac{\partial^2\varphi}{\partial\eta^2}=\eta\varphi η22φ=ηφ,将其带入无量纲表达式,可得到

i ∂ φ ∂ ξ + η φ = 0 i\frac{\partial\varphi}{\partial\xi}+\eta\varphi=0 iξφ+ηφ=0

最后解得

φ ( ξ , η ) = A i ( η − ( ξ 2 2 ) ) exp ⁡ [ i ( η ξ 2 − ξ 3 12 ) ] \varphi(\xi,\eta)=Ai(\eta-(\frac{\xi}{2}^2))\exp[i(\frac{\eta\xi}{2}-\frac{\xi^3}{12})] φ(ξ,η)=Ai(η(2ξ2))exp[i(2ηξ12ξ3)]

据此,对其取模,即可画出艾里光束在 x , z x,z x,z方向的能量分布。

import scipy.special as sc
import numpy as np
import matplotlib.pyplot as plt

xi, eta = np.indices([200,500])/20
Ai, Aip, Bi, Bip = sc.airy(eta-(xi/2)**2)
plt.imshow(np.abs(Ai), cmap='jet')
plt.colorbar()
plt.show()

得图如下,水平方向为传播方向,即 η \eta η方向。这个图很有意思,Airy光束能量峰值的位置,并不是一条直线,换言之,Airy光束竟然不沿直线传播,太离奇了。

在这里插入图片描述

有限能量Airy光束

如果对初始位置处的光强求积分,可以发现得到的结果是发散的,即理想Airy光束的能量是无穷大,这显然太理想了,一点都不现实。现实中存在的Airy光束,需要添加一个衰减因子 α \alpha α,从而初始位置的Airy光束,其分布为

φ ( 0 , η ) = A i ( η ) exp ⁡ ( α η ) \varphi(0,\eta)=Ai(\eta)\exp(\alpha\eta) φ(0,η)=Ai(η)exp(αη)

从而一维有限能量Airy光束的波包为

φ ( ξ , η ) = A i ( η − ( ξ 2 2 ) + i α ξ ) exp ⁡ [ ( α η − α ξ 2 2 ) + i ( η ξ 2 + α 3 ξ 2 − ξ 3 12 ) ] \varphi(\xi,\eta)=Ai(\eta-(\frac{\xi}{2}^2)+i\alpha\xi)\exp[(\alpha\eta-\frac{\alpha\xi^2}{2})+i(\frac{\eta\xi}{2}+\frac{\alpha^3\xi}{2}-\frac{\xi^3}{12})] φ(ξ,η)=Ai(η(2ξ2)+iαξ)exp[(αη2αξ2)+i(2ηξ+2α3ξ12ξ3)]

α = 0.02 \alpha=0.02 α=0.02,再绘制一下其光场分布

Ai, Aip, Bi, Bip = sc.airy(eta-(xi/2)**2+0.02j*xi)
plt.imshow(np.abs(Ai), cmap='jet')
plt.colorbar()
plt.show()

结果如下

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/355328.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【发展】不确定时代下的从容 —— 终局思维、长期主义与复利

文章目录 一、终局思维1、电影 《蝴蝶效应》2、未来是什么样的 二、长期主义1、这是一个不确定的时代2、做难但正确的事情 三、复利1、复利思维2、马太效应 一、终局思维 终局思维 在面对很多选择时,从终点出发考虑问题,来决定当下的选择。 1、电影 《蝴…

容器和虚拟机的对比

容器和虚拟机的对比 容器和虚拟机在与硬件和底层操作系统交互的方式上有所不同 虚拟化 使多个操作系统能够同时在一个硬件平台上运行。 使用虚拟机监控程序将硬件分为多个虚拟硬件系统,从而允许多个操作系统并行运行。 需要一个完整的操作系统环境来支持该应用。…

从零开始:CentOS系统下搭建DNS服务器的详细教程

前言 如果你希望在CentOS系统上建立自己的DNS服务器,那么这篇文章绝对是你不容错过的宝藏指南。我们提供了详尽的步骤和实用技巧,让你能够轻松完成搭建过程。从安装必要的软件到配置区域文件,我们都将一一为你呈现。无论你的身份是运维人员,还是程序员,抑或是对网络基础设…

GitLab16.8配置webhooks、Jenkins2.4配置GitLab插件实现持续集成、配置宝塔面板实现持续部署

看本篇文章的前提是已经部署完GItlab和Jenkins服务器,已经可以手动构建成功,并且经过了很多次实践,对这两款软件基本熟悉。 建议大家按以下顺序看 前端自动化(其一)部署gitlab https://blog.csdn.net/weixin_45062076…

DolphinScheduler + Amazon EMR Serverless 的集成实践

01 背景 Apache DolphinScheduler 是一个分布式的可视化 DAG 工作流任务调度开源系统,具有简单易用、高可靠、高扩展性、⽀持丰富的使用场景、提供多租户模式等特性。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方…

2024.1.24 C++QT 作业

思维导图 练习题 1.提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数 #include <iostream> #include <string.h> #include <array> using namespace std;int main() {string str;cout << "…

《微信小程序开发从入门到实战》学习九十六

7.2 基础内容组件 7.2.4 progress组件 progress组件的示例代码如下&#xff1a; <progress percent"20" show-info /> 7.3 表单组件 表单组件是用于收集信息的组件。第三章介绍了许多表单组件&#xff0c;包括form、input、textarea、picker、switch、butt…

在WebSocket中使用Redis出现空指针异常解决方案

文章目录 在WebSocket中使用Redis1.问题描述2.原因3.解决步骤1.新建一个SpringUtil.java类&#xff0c;通过getBean的方法主动获取实例2.在WebSocketSingleServer.java中导入 在WebSocket中使用Redis 1.问题描述 在controller 和 service中都可以正常使用Redis&#xff0c;在…

【Javaweb程序设计】【C00161】基于SSM电子产品交易管理系统(论文+PPT)

基于SSM电子产品交易管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的电子产品交易系统 本系统分为前台用户和后台管理员2个功能模块. 前台用户模块&#xff1a;当游客打开系统的网址后&#xff0c;首先看到的就…

qemu + vscode图形化调试linux kernel

一、背景 使用命令行连接gdb 在调试时&#xff0c;虽然可以通过tui enable 显示源码&#xff0c;但还是存在设置断点麻烦&#xff08;需要对着源码设置&#xff09;&#xff0c;terminal显示代码不方便&#xff0c;不利于我们学习&#xff1b;另外在gdb 下p命令显示结构体内容…

猫用空气净化器哪款牌子好?好用能吸毛的宠物空气净化器推荐

作为一个养猫多年的铲屎官&#xff0c;我真的无法抗拒猫星人的可爱魅力&#xff01;以前&#xff0c;每当我路过宠物店&#xff0c;我总会忍不住停下来&#xff0c;在玻璃窗前停留半个小时以上。但是后来&#xff0c;我终于有了自己的猫咪。每天都能享受到给它摸小肚子的乐趣&a…

腾讯云幻兽帕鲁服务器创建教程,附4核16G服务器价格表

腾讯云0基础搭建帕鲁服务器4C16G14M服务器稳定无卡顿&#xff0c;先下载SteamCMD&#xff0c;并运行&#xff1b;然后下载Palserver&#xff0c;修改服务ini配置&#xff0c;启动PalServer&#xff0c;进入游戏服务器。腾讯云百科txybk.com分享腾讯云创建幻兽帕鲁服务器教程&am…

gdb 调试 - 在vscode图形化展示在远程的gdb debug过程

前言 本地机器的操作系统是windows&#xff0c;远程机器的操作系统是linux&#xff0c;开发在远程机器完成&#xff0c;本地只能通过ssh登录到远程。现在目的是要在本地进行图形化展示在远程的gdb debug过程。&#xff08;注意这并不是gdb remote &#xff01;&#xff01;&am…

产业需求大数据平台

产业需求大数据平台&#xff0c;依托大数据、NLP等技术&#xff0c;全面采集区域产业人才需求数据&#xff0c;从宏观、中观、微观三个层面对产业需求进行分析&#xff0c;并匹配学校自身的办学定位、专业布局、人才培养目标、培养规格和课程设置&#xff0c;进行专业设置匹配度…

【JavaScript基础入门】03 JavaScript 基础语法(一)

JavaScript 基础语法&#xff08;一&#xff09; 目录 JavaScript 基础语法&#xff08;一&#xff09;1. JS 初体验2. JavaScript注释2.1 单行注释2.2 多行注释 3. JavaScript结束符4. JavaScript输入输出语句 1. JS 初体验 JS 有3种书写位置&#xff0c;分别为内联、内部和外…

2024.1.28 GNSS 学习笔记

1.基于 地球自转改正卫地距 以及 伪距码偏差 重构定位方程&#xff1a; 先验残差计算公式如下所示&#xff1a; 2.观测值如何定权&#xff1f;权重如何确定&#xff1f; 每个卫星的轨钟精度以及电离层模型修正后的误差都有差异&#xff0c;所以我们不能简单的将各个观测值等权…

Hotspot源码解析-第25章-类的初始化

第25章-类的初始化 这一章主要是讲类的初始化操作&#xff0c;后续类加载章节中也会用到这一章的知识&#xff0c;只不过&#xff0c;这里就讲&#xff0c;是因为虚拟在初始化过程中&#xff0c;需要对基础类&#xff0c;比如System/Thread等类进行初始化操作&#xff0c;所以…

DL/T645、IEC104转OPC UA网关BE112

随着电力系统信息化建设和数字化转型的进程不断加速&#xff0c;对电力能源的智能化需求也日趋增强。健全稳定的智慧电力系统能够为工业生产、基础设施建设以及国防建设提供稳定的能源支持。在此背景下&#xff0c;高性能的工业电力数据传输解决方案——协议转换网关应运而生&a…

贪吃蛇项目(基于C语言和数据结构中的链表)

建立文件 首先先建立3个文件。 Snake.h 函数的声明 Snake.c 函数的定义 Test.c 贪吃蛇的测试 分析项目 我们分析这整个项目 建立节点 首先在我们实现游戏开始的部分之前&#xff0c;我们要先创建贪吃蛇的节点&#xff0c;再由此创建整个贪吃蛇所包含的一些信息&#…

Docker 基础篇

目录 一、Docker 简介 1. Docker 2. Linux 容器 3. 传统虚拟机和容器的对比 4. Docker 的作用 5. Docker 的基本组成&#xff08;Docker 三要素&#xff09; 6. Docker 工作原理 7. Docker 架构 8. Docker 下载 二、Docker 安装 1. CentOS Docker 安装 2. CentOS8 …
最新文章