我的编程空间,编程开发者的网络收藏夹
学习永远不晚

2023CUPT第四题彩色线思路与解法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

2023CUPT第四题彩色线思路与解法

  • 这是一道很彻底的光学题,可以参考
    • 5.7 振幅型平面透射光栅 光学(第三版)郭永康 主编 朱建华 副主编
  • CUPT前国赛队员倾情写作

英文题目

        When a compact disc or DVD is illuminated with light coming from a filament lamp in such a way that only rays with large angles of incidence are selected, a clear green line can be observed. The colour varies upon slightly changing the angle of the disc. Explain and investigate this phenomenon.

  • 不翻译了,搞物理的同学不需要别人的翻译

符号规定

符号

含义

D

观察点

S

光源

P

反射点

O

光盘的圆心

a

光盘刻槽宽度

𝑑

O点到SD的距离

𝑟

SP之间的距离

r_0

光盘中心环半径

𝛼

角SPD的一半

𝛽

光盘与

水平方向的夹角

理论推导01

装置示意图(由一美丽的工科女提供):

程序模拟

  • 先确认一些事情:
    • 你点赞,收藏没有?
    • 可见光的波长怎么样?
  • color = ["红光","橙光","黄光","绿光","青色","蓝光","紫光"]
  • color_wavelength = [[760*10**-9,622*10**-9],[622*10**-9,597*10**-9],\

                    [597*10**-9,577*10**-9],[577*10**-9,492*10**-9],\
                    [492*10**-9,450*10**-9],[450*10**-9,435*10**-9],\
                    [435*10**-9,390*10**-9]]
 

源代码

import matplotlib.pyplot as pltimport numpy as npimport matplotlibmatplotlib.rcParams["font.sans-serif"] = ["SimHei"]matplotlib.rcParams["axes.unicode_minus"] = False#120型号光盘C = 1a = 1.5 * 10**-6N = int((120-15)* 10**-3/a)alpha = 0.22    #(arccos alpha \apx 30)beta  = 0.32plt.title("归一化前特定角度下观察到的可见光光强分布")color = ["红光","橙光","黄光","绿光","青色","蓝光","紫光"]color_wavelength = [[760*10**-9,622*10**-9],[622*10**-9,597*10**-9],\                    [597*10**-9,577*10**-9],[577*10**-9,492*10**-9],\                    [492*10**-9,450*10**-9],[450*10**-9,435*10**-9],\                    [435*10**-9,390*10**-9]]for i in range(7):    plt.scatter(color_wavelength[i],[0,0],c="black",s=3)    plt.text(color_wavelength[i][0]*1/4+color_wavelength[i][1]*3/4,0,color[i],size=5)Lambda = np.linspace(390*10**-9,780*10**-9,1000)I = np.zeros(1000)for i in range(1000):    I[i] = C*np.sin((N+1)*np.pi*a*np.cos(beta)/Lambda[i]/np.cos(alpha))**2/np.sin(np.pi*a*np.cos(beta)/Lambda[i]/np.cos(alpha))**2plt.plot(Lambda,I,label="alpha:"+str(round(alpha,2))+"beta:"+str(round(beta,2)),c="red")plt.legend()plt.show()

效果图 

  •  显然,我们认为,光强最强的地方,就是我们所见到的光盘衍射出的颜色。

理论02

  • 显然这是一个闪耀光栅,我们必须要考虑到这个什么分辨率,色散率,色分辨率的问题
  • 第一点,我们要看到这个闪耀波长的问题:
    • 在单槽衍射主极大方向上衍射光最强,在此方向上产生多槽干涉的主极大的光谱级次K:

2d\,cos\,i\,sin\,\theta=K\lambda

  • 第二点,我们要看到从白光到分析这个哪个成分最强肯定是小有难度的

实验设计


  • 给大家讲个乐事,我还没有设计这个实验。。。哦,天啊 12月6号就要上交PPT啦!哈哈!
  • 那怎么设计呢?好问题,你看我们给出的公式(5),是不是很明显了。
    • 搞个CCD,放在一个圆形滑轨上
    • 给光盘放在一个可倾斜的平面上,让光盘可以做我们所给出的那种倾斜
    • 然后就测数据吧
  • 那还能怎么设计呢?
    • 你就用眼睛看呗。。还能咋地?
    • 我看到的就是这样,有种你现场复原来反驳我呗。。。。
    • 所以我觉得吧,CUPT的确挺没趣的

  • 说正经的
    • 实验,就是得去测量光的波长。
    • 问题来了,实验怎么做的?
  • 思路*2
    • 测量光的波长
      • 测量光的波长可以用光波测量仪
      • 光波测量仪的效果可能不太行,范围太广
    • 可以用分光谱仪器,但是效果都比较差,理论要求我们的 alpha 值尽可能小,掠射光的入射角尽可能大,所以我们至少得搞到一个什么电动马达带着传感器在我们自己拼接的轨道上运动,然后准确得测量。嗯,氪金佬+电子佬+技术佬可以考虑

  • 现象复现
    • 如果我们不能测量光的波长,那么可以根据我们的理论,改造这个仪器。
    • 我们将预测新的现象,怎么说呢,我们现在是可以改变两个参数,事实上,我们可以通过换光盘实现这个问题啊。比如说,这里有一些光盘参数:  

国标:

        CD光盘中两个相邻螺旋光道之间的间距为 1.5 微米

        DVD光盘中两个相邻螺旋光道之间的间距为 0.74 微米

120型光盘(内外径):15mm----120mm 

小型光盘(内外径):21mm----80mm 

  • 如果需要现象明显的话,我们只需要找到 不同光盘  相同的两个角参数 不同的反射光 即可说明

  • 其实这样依然是不严谨的,必须用CCD才能很好的说明这个问题

实验数据与验证

  • 按照CUPT的一般操作,你懂的。。。。
  • 其实,从统计学的角度来看,如果你的数据是通过取了一大堆平均之后得出的一个很合理的值,比如 预期(0.5) 实测(0.2,0.3,0.7,0.8),那么大概率是伪造的或者有操作错误的,为什么呢?
    • 概率论上不是写了嘛。。。有空我再写一个有关这个话题的文章
    • 其实同样的问题,也可用于诸多的实验课程。当然,我想很多老师并没发现这个问题

数据归一化处理

  • 其实这一步可做可不做,但是为了比分好看一点,最好还是做一下的
import matplotlib.pyplot as pltfrom numba import jitimport numpy as npimport matplotlibmatplotlib.rcParams["font.sans-serif"] = ["SimHei"]matplotlib.rcParams["axes.unicode_minus"] = False@jitdef fun120(alpha,beta,C=1,a = 1.5 * 10**-6):    #120型号光盘    N = int((120-15)* 10**-3/a)    plt.title("归一化后特定角度下观察到的可见光光强分布")    color = ["红光","橙光","黄光","绿光","青色","蓝光","紫光"]    color_wavelength = [[760*10**-9,622*10**-9],[622*10**-9,597*10**-9],\                        [597*10**-9,577*10**-9],[577*10**-9,492*10**-9],\                        [492*10**-9,450*10**-9],[450*10**-9,435*10**-9],\                        [435*10**-9,390*10**-9]]    for i in range(7):        plt.scatter(color_wavelength[i],[0,0],c="black",s=3)        plt.text(color_wavelength[i][0]*1/4+color_wavelength[i][1]*3/4,0,color[i],size=5)    Lambda = np.linspace(390*10**-9,780*10**-9,1000)    I = np.zeros(1000)    for i in range(1000):        I[i] = C*np.sin((N+1)*np.pi*a*np.cos(beta)/Lambda[i]/np.cos(alpha))**2/np.sin(np.pi*a*np.cos(beta)/Lambda[i]/np.cos(alpha))**2    SUM = sum(I)    I = [i/SUM for i in I]    plt.plot(Lambda,I,label="alpha:"+str(round(alpha,2))+"beta:"+str(round(beta,2)),c="red")    plt.legend()    plt.pause(0.2)    plt.cla()    if __name__ == "__main__":    for i in np.linspace(0.1,0.8,40):        for j in np.linspace(0.1,0.8,40):            fun120(i,j)

效果

归一化光强 22年12月2日 CUPT

  • 效果是个动画
  • 其实也不是动画,matplotlib做动画其实挺方便的,但是我不想做
  • 话说,我挺想讲上两句的:
    • 第一呢,我有个好朋友,俏冤家
    • 第二呢,这个学期过得挺痛苦的,没意思
      • 基础学科竟然有考核,没意思 
    • 第三呢,我要去准备美赛啦,我希望能碰上偏微分方程优化的问题,我对这种数学问题挺敏感的,国家天元数学中心就是好!!!
      • 其实,统计问题我觉得我也可以
      • 我们的队伍很强的啦!!!
    • 第四呢,我要去打全国大学生电子设计大赛啦!
      • 提前顺利
    • 第五呢,雅思该考第一次喽。。
    • 第六呢,下学期有拓扑,呜呜。。。

来源地址:https://blog.csdn.net/Chandler_river/article/details/127524429

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

2023CUPT第四题彩色线思路与解法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录