matlab 杨氏双缝干涉实验

2023-11-07

在这里插入图片描述

本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。

一、算法原理

  杨氏双缝干涉实验是利用分波振面法获得相干光束的典型例子,如图1 所示,在普通单色光光源后放一狭缝 S S S S S S后又放有与 S S S平行且等距离的两平行狭缝 S 1 S_1 S1 S 2 S_2 S2 。单色光通过两个狭缝 S 1 S_1 S1 S 2 S_2 S2射向屏幕,相当于位置不同的两个同频率同相位光源向屏幕照射的叠合,由于到达屏幕各点的距离(光程)不同引起相位差,叠合的结果是在有的点加强,在有的点抵消,造成干涉现象。 d d d为双缝的间隔, D D D为屏幕到双狭缝平面的距离, y y y O O O P P P的距离。
在这里插入图片描述

考虑两个相干光源到屏幕上任意点 P P P的距离差为:
r 1 = ( D 2 + ( y − d 2 ) 2 (1) r_1=\sqrt{(D^2+(y-\frac{d}{2})^2} \tag{1} r1=(D2+(y2d)2 (1)

r 2 = ( D 2 + ( y + d 2 ) 2 (2) r_2=\sqrt{(D^2+(y+\frac{d}{2})^2} \tag{2} r2=(D2+(y+2d)2 (2)

Δ r = r 2 − r 1 (3) \Delta r=r_2-r_1 \tag{3} Δr=r2r1(3)

  引起的相位差为:
φ = 2 π Δ r λ (4) φ=2\pi\frac{\Delta r}{\lambda} \tag{4} φ=2πλΔr(4)

  设两束相干光在屏幕上 P P P点产生振幅相同,均为 A 0 A_0 A0,则夹角为 φ φ φ的两个矢量 A 0 A_0 A0的合成矢量的幅度为:
A = 2 A 0 c o s ( φ 2 ) (5) A=2A_0cos(\frac{φ}{2}) \tag{5} A=2A0cos(2φ)(5)

光强 I I I正比于振幅的平方,故 P P P点光强为
I = 4 I 0 c o s 2 ( φ 2 ) (6) I=4I_0cos^2(\frac{φ}{2}) \tag{6} I=4I0cos2(2φ)(6)

  下面从理论上加以推导,由上面的式(1~2)可得
r 2 2 − r 1 2 = ( r 2 + r 1 ) ( r 2 − r 1 ) = 2 d y (7) r_2^2-r_1^2=(r_2+r_1)(r_2-r_1)=2dy\tag{7} r22r12=(r2+r1)(r2r1)=2dy(7)

考虑到 d , y d,y d,y 很小, ( r 1 + r 2 ) ≈ 2 D (r1+r2)≈2D r1+r22D,结合(7)式有
r 2 − r 1 = d D y (8) r_2-r_1=\frac{d}{D}y \tag{8} r2r1=Ddy(8)

这样就得点 P P P处于亮条纹中心的条件为
y = D d 2 k λ 2 , k = 0 , ± 1 , ± 2 , . . . (9) y=\frac{D}{d}2k\frac{\lambda}{2},k=0,\pm1,\pm2,... \tag{9} y=dD2k2λ,k=0,±1,±2,...(9)
  因此,亮条纹是等间距的. 若采用红光,其波长 λ = 500 n m λ=500 nm λ=500nm,屏幕到双狭缝平面的距离 D = 1 m D=1 m D1m,双缝的间隔 d = 2 m m d= 2 mm d2mm,则相邻条纹间距为

D d λ = 1 0.002 × 500 × 1 0 − 9 = 2.5 × 1 0 − 4 m (10) \frac{D}{d}\lambda=\frac{1}{0.002}\times500\times 10^{-9}=2.5\times10^{-4}m\tag{10} dDλ=0.0021×500×109=2.5×104m(10)

二、代码实现

%% 模拟杨氏干涉现象
clear,clc;
%% -----------------------------输入参数----------------------------------
Lambda = 500e-9;                   % 输入波长
a = 2e-3;                          % 双缝间距
D = 1;                             % 观察屏离双缝距离
%% -----------------------------计算光强----------------------------------
ym = 5*Lambda*D/a;                 % 取最高为第5级亮条纹(边界)--单位为:m
xs = ym;                           % 设定光屏的范围
ys = linspace(-ym,ym,101);         % 把光屏的y 方向分成101 点

r1 = sqrt((ys-a/2).^2+D.^2);       % 光程差r1
r2 = sqrt((ys+a/2).^2+D.^2);       % 光程差r2
phi = 2.*pi.*(r2-r1)./Lambda;      % 相位差
I = 4.*cos(phi/2).^2;              % 合成波光强
%% ----------------------------结果可视化---------------------------------
N = 255;                           % 确定用的灰度等级为255 级
Ir = (I'/4.0)*N;                   % 使最大光强对应于最大灰度级(白色)
subplot(1,2,1);
image(xs,ys,Ir);                   % 画干涉条纹
colormap(gray(N));
xlabel('空间坐标x');
title('合成光强空间分布');
subplot(1,2,2);
plot(I,ys)                         %  画出光强变化曲线
xlabel('空间坐标x'), ylabel('合成光强度');
title('合成光强空间分布函数');

三、结果展示

在这里插入图片描述

上图是光屏上的干涉图条纹,右图是光屏上沿y 轴方向光强的变化曲线. 从图中也不难看出,干涉条纹是以点O 所对应的水平线为对称,沿上下两侧交替,等距离排列。可以看出相邻亮条纹中心间距为 2.5 × 1 0 − 4 m 2.5×10^{-4} m 2.5×104m。与式(10)计算结果相一致。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab 杨氏双缝干涉实验 的相关文章

  • 如何使用 MATLAB 的“等值面”函数创建三角球体

    如何创建一个三角球体 其中每个三角形的面面积相同 我想要这样的东西 http imageshack us a img198 5041 71183923 png http imageshack us a img198 5041 7118392
  • 如何使用神经网络保存 Sift 特征向量进行分类

    SIFT 特征的 Matlab 实现发现于http www cs ubc ca lowe keypoints http www cs ubc ca lowe keypoints 在 stackoverflow 的帮助下 我想将功能保存到 m
  • 如何在 MATLAB 的 for 循环中读取多个图像?

    我已将结果分段放在一个文件夹中 这些需要在 for 循环中读取并在循环中进一步处理 我尝试阅读如下 for i 1 10 file name dir strcat C Users adminp Desktop dinosaurs im im
  • Matlab 中的多行匿名函数? [复制]

    这个问题在这里已经有答案了 是否可以在 Matlab 中创建多行匿名函数 没有合适的例子在文档中 http www mathworks com help matlab matlab prog anonymous functions html
  • ODE 时间 Matlab 与 R

    如果在 matlab 中使用可变时间步长求解器 例如 ODE45 我会定义输出的时间跨度 即times 0 50 matlab 将返回 0 到 50 之间不同时间步长的结果 然而在 R 中 我似乎必须定义我希望 ODE 返回结果的时间点 即
  • Matlab-如何在曲线上绘制切线

    我在 matlab 中绘制了一个图表 plot x y 我的图表有不同的斜率 我如何在每个斜率上绘制切线并计算斜率的系数 如果您没有用于绘制点的显式函数 您可以使用有限差分 http en wikipedia org wiki Finite
  • 在 Matlab 中保存当前运行的脚本

    有没有办法保存Matlab中当前运行的脚本 我有一个脚本 它会自动备份一组脚本 但如果我更改了当前脚本 则保存的版本将过期 也许可以调用一些java Thanks 在 Yair Altman 网站上的某个地方 请参阅我的其他答案中的链接 他
  • matlab mex 文件和 C++ dll (Windows)

    我有一个带有 Test 类的 DLL 标题 class MY EXPORT Test public int doit const string str 和来源 int Test doit const string str return in
  • 按元素出现的频率对数组元素进行排序

    是否可以在 matlab octave 中使用sort函数根据元素的相对频率对数组进行排序 例如数组 m 4 4 4 10 10 10 4 4 5 应该产生这个数组 5 10 10 10 4 4 4 4 4 5是出现频率较低的元素 位于顶部
  • 检查Matlab中脚本需要使用的函数

    我有一个别人写的代码包 我正在运行一个脚本 它调用一些函数 这些函数又调用更多函数 等等 我想获取不是 MATLAB 内置函数但属于包的一部分的函数列表 我尝试使用matlab codetools requiredFilesAndProdu
  • Matlab Mex文件编译

    我正在尝试编译一个 mex 文件以在 matlab 中使用套接字连接 问题是它总是说我没有安装sdk或编译器 但我已经安装了 Visual Studio 2010 Express Visual Studio 2012 Express Vis
  • 扩展 MATLAB 函数名称的最大长度

    我编写了一个 MATLAB 程序 可以动态创建自定义 MATLAB 函数 并使用以下命令在其他 MATLAB 实例中启动它们unix命令 我使用这个程序来自动化 fMRI 神经影像分析 使用 SPM8 for MATLAB 一切正常 但是
  • 如何使用matlab生成不同频率的正弦波?

    对于我的项目 我需要使用 matlab 生成一个正弦波 它有 100 000 个样本 并且频率在每 10 000 个样本后随机变化 采样率和频率可以根据方便而定 matlab中有没有函数可以生成这个 好的另一个例子 生成 5 个随机频率 r
  • MATLAB 中的多个捕获组

    我有一个包含数字或字母的字符串a 可能紧随其后的是r or l 在 MATLAB 中 以下正则表达式返回为 gt gt regexp 10r 0 9 a l r match ans 10r 我希望10 and r分开 因为我有两个捕获组 有
  • 在 MATLAB 中重命名文件

    我正在尝试以编程方式重命名工作目录中的文件a temp txt to b hello txt 您建议如何这样做 MATLAB中有一个简单的文件重命名函数吗 我认为您正在寻找 MOVEFILE
  • Matlab没有优化以下内容吗?

    我有一个很长的向量 1xrv 和一个很长的向量w1xs 和一个矩阵Arxs 它是稀疏的 但维度非常大 我期望 Matlab 对以下内容进行优化 这样我就不会遇到内存问题 A v w 但看起来 Matlab 实际上是在尝试生成完整的v w矩阵
  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • 如何使用 MATLAB 的 substruct 函数创建表示使用“end”的引用的结构?

    我想使用substruct http www mathworks com help matlab ref substruct html函数创建一个结构体以供使用subsref 目的是使用索引字符串subsref而不是通常的 符号 因为我正在
  • 如何在 matlab 中创建由多个 3d 图像数据数组组成的数组

    我正在阅读 15 张图片imagedata imread imagename jpg 它的大小总是320 by 320 by 3 如何将数据放入数组中 使用 for for 循环 以便在访问新数组的第一个元素时获得输入的第一个图像的 RGB
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL

随机推荐

  • IDEA添加自定义浏览器

    比如添加搜狗浏览器 1 打开setting 2 Tools gt Web Browsers 点 添加浏览器 3 点击文件夹图标 修改浏览器路径 4 找到搜狗浏览器的exe文件 5 修改浏览器的名字 然后点ok 6 完成 运行直接点击图标即可
  • Windows下php和apache的安装及启动

    php版本 php5 6 httpd版本 apache2 4 php5 6 在D盘下创建php文件夹 并在其下解压压缩包 修改系统变量PATH 末尾新增 D php D php ext httpd2 4 在D盘下创建Apache24文件夹
  • 操作系统复习知识点(第三章)

    处理机调度 1 高级调度 中级调度 低级调度 高级调度 根据某种算法 把外存上处于后备队列中的那些作业调入内存 作业调度 中级调度 为了提高内存利用率和系统吞吐量 使那些暂时不能运行的进程不再占用内存资源 将它们调至外存等待 把进程状态改为
  • HDU--1233:还是畅通工程 (并查集 & 最小生成树Prim)

    1 题目源地址 http acm hdu edu cn showproblem php pid 1233 2 简单思路 先对村庄距离从小到大排序 然后使用并查集的查找 一边查找一边加上村庄之间的距离 从而得到可以走通所有村庄的最短距离 3
  • 根据年月日计算星期几的函数

    大部分日期计算正常 2014 04 01 星期2 计算出来的星期不正确 原因 计算出来的 w可能出现负值 求负数的余数需要特殊处理 需要按数论的计算方式求余数 网上很多代码存在此问题 少数日期计算不正确 解决 负数先转为正数求余 然后求补
  • Android源码编译环境搭建

    一 前言 Google自 2021 年 6 月 22 日起 不再支持在 MacOS 上进行Android平台开发 某些芯片厂家提供的Android SDK不支持低版本的Ubuntu 16 04 LTS及以下 故本篇文章以Ubuntu18 0
  • GNU AWK

    awk awk官方给出的是 pattern scanning and processing language即模式扫描处理语言 我们CentOS一般用的是GNU AWK 官方给出的语法有五种 我们只举例前两种使用格式 下面是语法 gawk
  • 使用java geotools进行坐标转换

    java geotools支持不同的坐标系之间进行转换 只需要转换的时候指定坐标系即可 pom依赖文件如下
  • 现在的00后,实在是太卷了

    现在的小年轻真的卷得过分了 前段时间我们公司来了个00年的 工作没两年 跳槽到我们公司起薪18K 都快接近我了 后来才知道人家是个卷王 从早干到晚就差搬张床到工位睡觉了 最近和他聊了一次天 原来这位小老弟家里条件不太好 一大家子指望他一个人
  • Vulnhub入门实战-Wakanda

    下载链接 描述 1 探测主机的IP地址 2 使用nmap查看靶机开放端口 开放了4个端口 老样子先从http下手 3 进去发现没什么可以点的 于是进行目录扫描 状态码都是200 但是size为0 所以返回的都是空页面 查看主页源代码 发现一
  • Scrapy----Scrapy架构及工作流程

    原文链接 Scrapy Scrapy架构及工作流程 一 Scrapy架构图 scrapy的架构图如下 红色箭头表示工作流程 二 Scrapy的组成 Scrapy Engine Scrapy Engine主要用来协调数据流在Scrap各个组件
  • [蓝桥杯][2014年第五届真题]兰顿蚂蚁

    题目 题目链接 题解 DFS 没什么难的吧 可能实现的时候用时长短 代码简洁程度不同而已 代码 include
  • 《响应式Web设计实践》学习笔记

    第1章 无处不在的Web 1 4 成为响应式的 Ethan Marcotte利用三种已有工具 媒介查询 media queries 流动布局 fluid grids 和自适应图片 scalable images 创建了一个在不同分辨率屏幕下
  • 每日一道基础编程题目(牛客网)--基础编程篇(NO.1)

    文章目录 1 每日一道基础编程题目 牛客网 前言 题目引入 结语 1 每日一道基础编程题目 牛客网 前言 从今天起 我会日更一些编程题目 比较基础的 适合期末复习的题目 分享给大家 和大家一起进步 题目引入 首先我们先看一下这个代码 这个的
  • 邻桌为何一天就学完了SQL基础语法,数据分析必学的SQL,满满硬货

    因为开学原因 导致好久没有更新博客了 谁家大学生一周五天早八 今天这篇分享数据库操作和 SQL SQL 全称是 Structured Query Language 翻译后就是结构化查询语言 是一种数据库查询和程序设计语言 用于存取数据以及查
  • Eclipse SVN 更新报: “is too old(format10,createdbySubversion1.6)”解决方法

    原因 版本太低导致 更新一下就可以了 方法 项目上右键 Team upgrade
  • android 模拟点击localinstrumentation,android通过Instrumentation来模拟键盘点击操作

    android app Instrumentation好像原来是用来做测试的 可以用来模拟很多activity的操作 主要代码如下 package com qefee testinstrumentation import android a
  • 常用git和repo命令

    常用git和repo命令 文章收集了最近使用的一些repo和git命令 下图是个人理解的git文件状态转换图 更详细的Pro git 文档 更准确的应该是这样 相关概念 名称 意义 repo 谷歌用Python脚本写的调用git的一个脚本
  • 自动化测试_49自动化测试中最常见的Selenium异常

    自动化测试 开发人员将始终在编写代码时牢记不同的场景 但是在某些情况下 实现可能无法按预期工作 相同的原则也适用于测试代码 该代码主要用于测试现有产品的功能 发现bug并使产品100 无缺陷 正确地说 真理总是比小说更陌生 当您执行Sele
  • matlab 杨氏双缝干涉实验

    目录 一 算法原理 二 代码实现 三 结果展示 本文由CSDN点云侠原创 原文链接 如果你不是在点云侠的博客中看到该文章 那么此处便是不要脸的爬虫 一 算法原理 杨氏双缝干涉实验是利用分波振面法获得相干光束的典型例子 如图1 所示 在普通单