Matlab波动光学典型实验的Monte Carlo模拟(3)
时间:2017-06-06 23:04 来源:毕业论文 作者:毕业论文 点击:次
(3) 强大方便的绘图功能 Matlab拥有一系列的绘图函数,能够根据输入数据的个数和大小自动选取合适的函数和进行自动调节坐标。而且能够绘制二文和三文图,实际应用中的绘图需求基本囊括在内。 (4) 功能强大的工具箱 Matlab的工具箱分为核心工具箱和可选工具箱。核心工具箱进行一般的计算,可选工具箱则是应用在专业性比较强的领域。应用领域十分广泛。 (5) 扩充功能强 Matlab语言中用户可以将自己编写的函数作为库函数调用,可以根据自己的需要方便地建立和扩充库函数。Matlab还可以与其它程序语言混合编程,不同程序语言间的交互性很好。 Matlab语言的编程效率极高,但它的执行效率却比不上如C语言这类高级语言的执行效率高。 1.4 Monte Carlo方法简介[3] Monte Carlo 方法(又称统计试验方法或随机模拟方法),它是物理学家Von Neumann等人于1946年在电子计算机上用随机抽样方法模拟了中子的连锁反应,并正式将之称为Monte Carlo方法。Monte Carlo方法的基本思想是为了求解在数学、物理、工程技术及生产管理中实际遇到的问题。首先要建立一个概率模型或随机过程,让它的参数等于问题的解,然后通过对模型或整个过程的观察或抽样试验来计算所求参数的统计特征,最后再给出解的近似值[3]。用Monte Carlo方法求解实际问题时,大致分为下面几个内容: (1) 对求解的问题建立简单且又便于实现的概率模型,使所求的解是建立的概率分布或数学期望。 (2) 再根据概率模型的特点和实际的需要,尽量改进优化模型,降低计算量、成本和误差,提高运算准确性。 (3) 建立对随机变量的抽样方法。其中包括伪随机数的产生和随机抽样的方法。 (4) 求出解的统计值及其方差或标准误差的方法。 1.5 课题研究的总体思想及方法 波动光学的一般理论模型是成熟的理论,做一般情况的模拟只需根据光的强度公式进行编程即可实现,但是在本课题中我们是以Monte Carlo模拟为主,一般情况的模拟为辅进行模拟。为此我们需要建立一个将光强转化为概率模型的理论模型。 1925年波恩提出了波粒二象性的统计解释——概率波模型[6],他认为光强越大的地方光子所到达的概率越大,也由于光强正比于光子数,通过光强和概率波我们就可以通过计算某点的光强来模拟光的粒子性。光的概率波模型是我们进行Monte Carlo模拟的理论依据。对于光强和光子数的关系在一些文章中也已经得到了证明[7]。转化方法如下[8][9]: 首先我们在接收屏上产生随机地位置 ,再计算出该点的光强表达式 ,我们将光强的表达式归一化到范围 ,得到 归一化光强的分布即代表光子到达屏上的概率的分布,光子到底能不能到达屏还需要产生一个判断标准。在这里我们设一个服从均匀分布的随机数数 ,其概率密度为: 且由概率统计分布函数的相关知识可得 的概率为: 可见 的概率正好为 ,我们就以 作为判断标准,当 说明光子正好能过到达屏,否则就不能。 1.6 本课题的研究内容 本文的主要目的是探讨利用Matlab进行波动光学典型实验(包括杨氏双缝干涉实验、牛顿环实验、单缝的夫琅和费衍射实验、多缝的夫琅和费衍射实验、矩孔的夫琅和费衍射实验、圆孔的夫琅和费衍射实验、单缝的菲涅耳衍射实验、矩孔的菲涅尔衍射实验)的一般模拟和Monte Carlo模拟的仿真方法和程序实现。 经过大量的仿真实验和完善友好的交互界面最终形成了一个完整的仿真系统。主要研究内容可以概括为: (责任编辑:qin) |