matlab实现杨氏双缝干涉实验可视化界面

news2024/12/24 9:34:29

关于杨氏双缝干涉实验的条纹光强理论推导和matlab绘图可以参考下面的链接:杨氏双缝干涉实验matlab实现

接下来利用GUI实现可视化界面。

一、GUI GUIDE简介

1、在命令行窗口输入小写的guide可以自动弹出fig窗口。
在这里插入图片描述
2、界面的左侧是常用的工具,鼠标悬停会弹出名称提示。只需要将工具拖入方格空间中,就能够实现相应的功能。

3、我们需要输入d、D、λ三个参数,光强 I 0 I_0 I0取默认值。因此,每一个参数的输入和接受需要一个 “Static Text” 组件用于显示标签,一个 “Edit Text” 组件用于接收输入。在接收参数之后,需要一个 “Push Button” 组件用于触发绘图操作。同时,我们需要绘制出条纹的强度变化曲线和干涉条纹图样,因此需要两个 “Axes” 组件,分别命名为 axes1 和 axes2。

在这里插入图片描述

4、在使用过程中,我们需要先输入三个参数,然后点击GO按钮,从而在AXES上输出对应的图象。因此,我们需要先调节static text显示的提示信息,然后确认edit text的参数信息,例如d对应的是edit1。
在这里插入图片描述
在这里插入图片描述

5、右键 “Push Button” 组件,打开回调函数编辑器,编写代码。此处的代码可以参考链接杨氏双缝干涉实验matlab实现,并根据需求作适当的修改。

在这里插入图片描述
在这里插入图片描述

二、实际效果

1、注意事项

(1)分辨率

在实际的操作中,我们还需要考虑分辨率的问题。因为分辨率决定了一个条纹间隔内,我们需要采样多少个点,从而决定了计算的矩阵的尺度大小。过于精确的采样会导致计算量庞大,使得模拟低效。

(2)条纹间隔

Δ x = D d λ \Delta x = \frac{D}{d} \lambda Δx=dDλ
表示两个相邻亮条纹(或者暗条纹)中心的间距。

它决定了我们需要在AXES框中绘制多大的横轴。一般来说,对称地选取7~9个条纹间隔即可说明问题。

2、核心代码


d = str2double(get(handles.edit1, 'String'));
D = str2double(get(handles.edit2, 'String'));
lambda = str2double(get(handles.edit3, 'String'));
fre = str2double(get(handles.edit4, 'String'));

I0 = 1;

delta_x = D * lambda / d;

% 计算干涉强度变化
x = -(4*delta_x):(delta_x/fre):(4*delta_x);
Intensity1 = 4 * I0 * cos(pi * d * x / (lambda * D)) .* cos(pi * d * x / (lambda * D));

% 绘制干涉条纹强度变化曲线
axes(handles.axes1);
plot(x, Intensity1);
xlabel('x/m');
ylabel('Intensity');
title('干涉条纹强度变化');


% 计算干涉强度变化
x = -(4*delta_x):(delta_x/fre):(4*delta_x);
y = x;
[X, ~] = meshgrid(x, y);
Intensity2 = 4 * I0 * cos(pi * d * X / (lambda * D)) .* cos(pi * d * X / (lambda * D));

% 绘制干涉条纹图像
axes(handles.axes2);
imagesc(x, y, Intensity2);
colormap('gray');
xlabel('x/m');
ylabel('y');
title('干涉条纹');
colorbar;
ylabel(colorbar, '光强');

3、效果展示

在这里插入图片描述
在这里插入图片描述
修改参数后:

在这里插入图片描述

其实在干涉条纹图样那里也可以把X/Y轴的label删除掉。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用串口示波器调试PID参数

PID调试最麻烦的是参数调整,需要花费大量时间,如果每调整一次都要修改代码重新编译烧录,效率很低,推荐串口示波器与rt-thead finsh进行调试 推荐使用FireWater数据引擎 定时上报数据,rt_kprintf不支持浮点数据打印&a…

从零开始之了解电机及其控制(6)六步换向法

引导:六步换向的本质是? 因为无刷电机有三根线,而H桥可以将负载连接到正电压或者地,于是用三对MOS管组成的H桥驱动电机,称为半桥驱动。 无刷电机的优点如下: 首先,由于所有三个电机相位都通过…

xcode15下载ios17模拟器失败

升级到xcode15后需要安装ios17模拟器 但是在下载过程中会遇到报错 如下图这种 网上搜索了一下发现有人遇到过无法下载的问题,并且在apple官网也有人提出类似问题 https://developer.apple.com/forums/thread/737648 解决方案就是从https://developer.apple.com/do…

linux提权秘籍

Linux 提权总结 一、常用基础 1、自定义可执行文件(Custom Executable) 可能有某些根进程执行另一个可以控制的进程。在这些情况下,以下C代码一旦编译,将生成一个作为根运行的sbashell: int main() { setuid(0);system("/bin/bash -p…

MapBox GL JS出现“Unimplemented type: 7”问题的解决办法

Mapbox GL JS在矢量瓦片的渲染方面有独特的优势,可以支持动态的样式,支持字体切片,快速加载各种字体。使用起来十分方便,但是在很长的一段时间内,经常遇到出现大量“Unimplemented type: 7”的控制台错误提示&#xff…

Web自动化测试 —— headless无头浏览器!

一、Options概述 是一个配置浏览器启动的选项类,用于自定义和配置Driver会话常见使用场景: 设置无头模式:不会显示调用浏览器,避免人为干扰的问题。设置调试模式:调试自动化测试代码(浏览器复用) 二、添加启动配置 添…

丰田 Auris 混动车电池冷却系统异常

故障现象 一辆丰田 Auris 混合动力车行驶时,混合动力车警告灯亮起。这辆车被改装成监控用车,车厢内到处都装有敏感的录音设备。 为了不被下面的情况所影响,我们从混合动力控制单元(HCU)中提取了故障代码 P0A82-123。混…

Multisim14.0仿真(二十四)基于LM555定时器的施密特触发器

一、仿真原理图: 二、仿真效果图:

【数据结构——单链表】本篇文章通过图文结合的方式能让你轻松的掌握单链表

链表的概念及结构 有了顺序表为什么还会出现链表呢? 链表和数组类似,但是功能比数组强大的多,数组的空间是固定的,在定义数组的时候空间大小就已经固定了,在使用时有可能会造成空间的浪费或者面临空间不够的风险&…

2023年建筑架子工(建筑特殊工种)证考试题库及建筑架子工(建筑特殊工种)试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2023年建筑架子工(建筑特殊工种)证考试题库及建筑架子工(建筑特殊工种)试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作…

第九章 内存分区模型

C程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等 堆区&#xff1…

【NLP的Python库(04/4)】:Flair

一、说明 Flair是一个现代的NLP库。从文本处理到文档语义,支持所有核心 NLP 任务。Flair使用现代转换器神经网络模型来完成多项任务,并结合了其他Python库,可以选择特定的模型。其清晰的API和注释文本的数据结构,以及多语言支持&a…

FPGA project : uart232_ram_vga

重点学习: 本实验重点学习了双口ram解决多bit跨时钟域同步处理的问题。 其实signal port ram,它的输入口和输出口分别用不同的时钟,也可以解决这个问题。 让我意识到的比较重要的事情: 1,代码设计中,一…

VEX —— Functions|Measure

目录 distance —— 返回两点间距离 distance2 —— 返回两点间距离平方 surfacedist —— 查找点到点组的距离(沿几何体表面) xyzdist —— 查找点到表面最近点的距离 uvdist —— 在uv空间查找uv坐标到几何体的距离 planepointdistance —— 计算…

【免费】2023云栖大会门票开抢啦!数量有限,先到先得!

🎫 报名方式:点击链接即可免费报名! 🔗 2023云栖大会-领票页 📅 10月31日-11月2日,让我们齐聚云栖小镇!

基于 Nginx 实现一个灰度发布系统

软件开发一般不会上来就是最终版本,而是会一个版本一个版本的迭代。新版本上线前都会经过测试,但就算这样,也不能保证上线了不出问题。所以,在公司里上线新版本代码一般都是通过灰度系统进行测试。并且,灰度系统可以把流量划分成多份,一份走新版本代码,一份走老版本代码…

数据通信——应用层(文件传输FTP)

引言 域名保证了在因特网中标识唯一的用户,而我们用户上网需求自然是发送信息以及共享文件,我们使用的很多传输工具,比如微信、QQ、百度等软件,在上传和下载文件时就会有FTP的参与。那么如何为文件提供收发渠道以完成的共享呢&…

一篇文章带你了解最近很火的RunnerGo测试平台

在当今这个数字化时代,应用程序的性能至关重要。一款可靠的性能测试工具,能够为企业带来无数的好处。最近,一款名为RunnerGo的开源性能测试工具备受瞩目。本文将详细介绍RunnerGo的特点、优势以及如何解决性能测试中的痛点。 RunnerGo产品介绍…

位运算符与高级操作

位运算符与高级操作 运算符 高级操作 左移实现乘法 左移n位等价于乘以2的n次方 int x; x 2; x x << 2; x x << 3;使用左移实现乘法运算仅限于乘以2的倍数 是不是只要左移就能够实现乘以2的倍数呢? char x 120; x x << 1;右移实现除法 右移n位等价于除…

ipad触控笔有必要买吗?比较好用的电容笔

如果你想用iPad画画&#xff0c;苹果Pencil会是个不错的选择。然而&#xff0c;苹果原装的电容笔价格却高得让很多人望而却步。所以&#xff0c;比较好的办法就是选用一个平替电容笔。我曾经使用过ipad&#xff0c;也是一个数码爱好者&#xff0c;最近两年我开始接触使用平替电…