使用python模拟光的双缝干涉
代码:
import numpy as np
import matplotlib.pyplot as plt
import randomv=3*(10**8)*(10**6)*(10**(-15))
#print(v)
L=0.589w=2*np.pi*v/Ldef func_A(t,q,x,y,x0,y0):r=((x-x0)**2+(y-y0)**2)**0.5A=np.cos(w*(t-r/v)+q)return Afig,ax=plt.subplots()
ax.set_xticks([])
ax.set_yticks([])def f(t,x,y):A1=func_A(t,0,x,y,0,2)A2=func_A(t,0,x,y,0,-2)return ((A1+A2)**2)x=np.linspace(0,8,1000)
y=np.linspace(-5,5,1000).reshape(-1,1)
ax.imshow(f(0,x,y))plt.show()
运行结果:
上面演示了程序表示的光的干涉,下面演示光的衍射程序:
# -- coding:utf-8 --import numpy as np
import matplotlib.pyplot as plt
import math#表示长度的物理量单位m
#波长
wavelength=float(5.0*10**-9)#双缝间距
d_slit=float(0.002)#缝到屏幕的距离
d_screen=float(1.0)ym=5.0*wavelength*d_screen/d_slit
xs=ym
distance=ym/50.0
ys=np.arange(-ym,ym,distance)
len_dis=len(ys)
B = [([0.0] * len_dis) for i in range(len_dis)]
Br = [([0.0] * len_dis) for i in range(len_dis)]
N=255.0
for i in range(0,len_dis):r1=math.sqrt((ys[i]-d_slit/2)**2+d_screen**2)r2=math.sqrt((ys[i]+d_slit/2)**2+d_screen**2)phi=2.0*math.pi*(r2-r1)/wavelengthtemp=4.0*math.cos(phi/2)**2for j in range(0,len_dis):B[i][j]=tempBr[i][j]=B[i][j]/4.0*Nplt.title("double_slit_experiment")
plt.imshow(Br, cmap='gray')
plt.show()
结束!
使用python模拟光的双缝干涉相关推荐
- 【光学】 基于matlab模拟光的双缝干涉附GUI
1 简介 物理光学研究的主要现象为光的干涉.光的衍射和光的偏振.其中杨氏双缝干涉理论在光的干涉教学中占有很重要的地位.由于物理光学从光的微观上来 理解光的本质,因此比较抽象.如果不借助于实验现象,学生 ...
- python大数据结课报告_2020知到大数据分析的PYTHON基础结课答案
2020知到大数据分析的PYTHON基础结课答案 房产新闻 2020-10-02 02:28128未知admin 2020知到大数据分析的PYTHON基础结课答案 更多相关问题 Mike is so ...
- python画矢量图_使用基于matplotlib的SciencePlots绘制精美图表
开源项目地址:https://github.com/garrettj403/SciencePlots 安装这个包,需要输入魔法: pip install SciencePlots 例如绘制如下函数,导 ...
- Python光的干涉仿真
文章目录 双缝干涉原理 Python代码 其他干涉模型 双缝干涉原理 干涉即两束光在叠加过程中出现的强度周期性变化情况,其最简单的案例即为杨氏双缝干涉. 如图所示,光从 S S S点发出,通过两个狭缝 ...
- Github配置(git+vscode+python+jupyter)
①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...
- 【实验楼】python简明教程
①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...
- 【Kaggle Learn】Python 5-8
五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...
- 【Kaggle Learn】Python 1-4
[Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...
- 使用python愉快地做高数线代题目~
今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...
最新文章
- office excel Query 功能
- ubuntu websocket python2
- python培训班时间 费用-广州python培训班收费标准
- 21 岁理工男开源的这个编辑器火了!
- python模块、字符编码、文件读写
- springboot 增加prometeus监控
- Java黑皮书课后题第10章:**10.9(Course类)如下改写Course类
- 具有Rx-Java的Couchbase Java SDK
- 怎么避免options请求_和上级沟通的正确打开方式:3种技巧,轻松让领导答应你的请求...
- MYSQL学习笔记 (二)对数据库结构的增删改查
- 兵乓球- 经典街机游戏-python小游戏源码下载
- PCB封装下载方法(亲测有效)
- java.this的作用包括,智慧职教: 以下不是Java中this关键字的作用的是()。
- 考PRINCE2有用么?
- “00后”消费数据分析,一文教你撩动“00后”购物欲
- 为什么要报考系统架构设计师考试
- comtrol 终端服务器,终端服务器:远程控制台管理———终端服务器
- 互联网产品经理是做什么的
- mac外接显示器 竖屏 黑苹果_mac外接显示器 竖屏 黑苹果_Mac 外接显示器转自定义HiDPI分辨率教程...
- static变量有什么作用