数学建模算法之蒙特卡罗方法-原理编程及应用论文._第1页
数学建模算法之蒙特卡罗方法-原理编程及应用论文._第2页
数学建模算法之蒙特卡罗方法-原理编程及应用论文._第3页
数学建模算法之蒙特卡罗方法-原理编程及应用论文._第4页
数学建模算法之蒙特卡罗方法-原理编程及应用论文._第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数学建模算法之蒙特卡罗方法 原理 编程及应用 一 前言一 前言 1946 年 美国拉斯阿莫斯国家实验室的三位科学家 John von Neumann Stan Ulam 和 Nick Metropolis 共同发明了蒙特卡罗方法 此算法被评为 20 世纪最伟 大的十大算法之一 蒙特卡罗方法 Monte Carlo method 又称随机抽样或统计模拟方法 是 一种以概率统计理论为指导的一类非常重要的数值计算方法 此方法使用随机数 或更常见的伪随机数 来解决很多计算问题的方法 由于传统的经验方法由于不能逼近真实的物理过程 很难得到满意的结果 而蒙特卡罗方法由于能够真实地模拟实际物理过程 故解决问题与实际非常符合 可以得到很圆满的结果 二 二 蒙特卡罗方法的蒙特卡罗方法的基本原理以及思想基本原理以及思想 1 蒲丰投针实验 其基本思想源于法国数学家蒲丰提出著名的蒲丰投针实验 并以该方法求圆 周率 为了求得圆周率 值 在十九世纪后期 有很多人作了这样的试验 将长为 2l 的一根针任意投到地面上 用针与一组相间距离为 2a l a 的平行线相交 的频率代替概率 P 再利用准确的关系式 a l P 2 22 n N a l aP l 求出 值 其中 为投针次数 n 为针与平行线相交次数 这就是古典概率论中 著名的蒲丰氏问题 2 射击问题 设 r 表示射击运动员的弹着点到靶心的距离 r 表示击中 r 处相应的得 分数 环数 f r 为该运动员的弹着点的分布密度函数 它反映运动员的射击 水平 则该运动员的射击成绩为 0 gg r f r dr 用概率语言来说 是随机变量 r 的数学期望 即 rgEg 当所求解问题是某种随机事件出现的概率 或者是某个随机变量的期望值时 通过某种 实验 的方法 以这种事件出现的频率估计这一随机事件的概率 或 者得到这个随机变量的某些数字特征 并将其作为问题的解 有一个例子可以使 你比较直观地了解蒙特卡洛方法 假设我们要计算一个不规则图形的面积 那么图形的不规则程度和分析性计 算 比如 积分 的复杂程度是成正比的 蒙特卡洛方法是怎么计算的呢 假想 你有一袋豆子 把豆子均匀地朝这个图形上撒 然后数这个图形之中有多少颗豆 子 这个豆子的数目就是图形的面积 当你的豆子越小 撒的越多的时候 结果 就越精确 在这里我们要假定豆子都在一个平面上 相互之间没有重叠 蒙特卡罗方法通过抓住事物运动的几何数量和几何特征 利用数学方法来加 以模拟 即进行一种数字模拟实验 它是以一个概率模型为基础 按照这个模型 所描绘的过程 通过模拟实验的结果 作为问题的近似解 蒙特卡罗方法与一般计算方法有很大区别 一般计算方法对于解决多维或因 素复杂的问题非常困难 而蒙特卡罗方法对于解决这方面的问题却比较简单 其 特点如下 直接追踪粒子 物理思路清晰 易于理解 采用随机抽样的方法 较真切的模拟粒子输运的过程 反映了统计涨落的规律 不受系统多维 多因素等复杂性的限制 是解决复杂系统粒子输运问题的好方 法 三 蒙特卡罗方法的编程三 蒙特卡罗方法的编程 计算阴影部分面积 一个古人要求一个图形的面积 他把图形画在一块方形布上 然后找来一袋 豆子 然后将所有豆子洒在布上 落在图形内豆子的重量比上那块布上所有豆子 的重量再乘以布的面积就是他所要求的图形的面积 两种编程思路来计算这个面积 方法一 将整个坐标轴看成一个边长为 12 的正方形 然后均匀的这个正方 形分成 N N 的大小取决于划分的步长 个点 然后找出 N 个点中有多少个点是 属于阴影部分中 假设这个值为 k 则阴影部分的面积为 k N 12 2 方法二 将整个坐标轴看成一个边长为 12 的正方形 然后在 6 6 中随 机出 N N 越大越好 至少超过 1000 个点 然后找出这 N 个点中有多少个点在 阴影区域内 假设这个值为 k 则阴影部分的面积为 k N 12 2 然后重复这个 过程 100 次 求出 100 次面积计算结果的均值 这个均值为阴影部分面积 对比分析 以上两个方法都是利用蒙特卡罗方法计算阴影部分面积 只是在 处理的细节有一点区别 前者是把豆子均匀分布在布上 后者则是随机把豆子仍 在布上 就计算结果的精度而言 前者取决点的分割是否够密 即 N 是否够大 后者不仅仅通过 N 来控制精度 因为随机的因素会造成单次计算结果偏高和偏小 所以进行反复多次计算最后以均值来衡量阴影部分面积 附上 MATLAB 程序 方法一 clear x 6 0 01 6 y x s size x zs s 1 2 2 k 0 for i 1 s 1 2 for j 1 s 1 2 a1 x i 2 9 y j 2 36 a2 x i 2 36 y j 2 a3 x i 2 2 y j 1 2 if a1 1 if a2 1 if a3 9 k k 1 end end end end end mj 12 2 k zs 运行结果 mj 7 2150 方法二 clear N 10000 n 100 for j 1 n k 0 for i 1 N a 12 rand 1 2 6 x i a 1 1 y i a 1 2 a1 x i 2 9 y i 2 36 a2 x i 2 36 y i 2 a3 x i 2 2 y i 1 2 if a1 1 if a2 1 if a3 9 k k 1 end end end end m j 12 2 k N end mj mean m 运行结果 mj 7 2500 四 蒙特卡罗方法在数学建模中的应用举例四 蒙特卡罗方法在数学建模中的应用举例 1 问题的提出 某食品加工厂主要生产即食产品 一般当天生产的产品必须当天售出 否则 就会出现不能保质 或变质 造成一定的经济损失 如果市场需求量大而生产量 不足 则也会影响工厂的销售收入 该产品的单位成本为 1 5 元 单位产品售价 为 4 元 工厂为了避免产品滞销存货过多而造成的经济损失 提出了如何制定合 理的生产与库存数量的方案问题 能够使得工厂能有尽可能多的收益 经初步考 虑拟从以下两种生产与库存方案中选出一个较好的方案 方案 1 按前一天的销售量作为当天的生产库存量 方案 2 按前两天的平均销售量作为当天的生产库存量 2 问题的分析与假设及参数定义 实际中的问题 生产与库存多了 销售不出去会造成经济损失 生产与库存 少了不能满足需求也会造成一定的损失 工厂需要依据实际不确定的需求量来制 定合理的生产与库存方案 使得能有尽量大的经济收益 解决问题的基本思路 利用蒙特卡罗方法随机模拟市场对该产品需求量 统计计算出按照两种不同方 案 T 天后工厂的经济值 比较不同方案经济效益的大小 选出一个较好的方案 假设市场对该产品的每天需求数量是一个随机变量 从统计学的角度分析得 知 该随机变量服从正态分布 为了编程实现问题的目标 引入如下的变量 本文中参数符号定义 T 表示 模拟天数 C 表示每天的需求量 KC1 表示方案 1 当天的生产与库存量 KC2 表 示方案 2 当天的生产与库存量 S1 表示方案 1 前一天的销售量 S21 表示方案 2 前一天的销售量 S22 表示方案 2 前二天的销售量 ST1 表示方案 1 当天的 实际销售量 ST2 表示方案 2 当天的实际销售量 L1 表示方案 1 当天的实际利 润 L2 表示方案 2 当天的实际利润 LS1 表示方案 1 实际累计总利润 LS2 表 示方案 2 实际累计总利润 3 模型的建立与求解 根据上面的分析 利用蒙特卡罗方法编程实现 主要随机模拟前一天和前两 天的各种不同的销售量 来确定当天的生产与库存量 依据可能的实际销售量 计算出当天的销售利润 选择使连续几天利润尽可能大的方案 下面给 MATLAB 程序 1 建立蒙特卡罗方法的 M 文件 函数名 mcun m Function LS1 LS2 mcun T S1 S21 S22 LS1 0 LS2 0 k 1 While k T KC1 S1 KC2 S21 S22 2 C normrnd 1500 30 30 ifC KC1 ST1 KC1 Else ST1 C end if C KC2 ST2 KC2 else ST2 C end L1 4 ST1 1 5 KC1 L2 4 ST2 1 5 KC2 LS1 LS1 L1 LS2 LS2 L2 k k 1 end S1 ST1 S22 S21 S21 ST2 2 调用函数 mcun T S1 S21 S22 4 模型的结果分析与推广 在 MATLAB 命令窗口多次输入参数 T S1 S21 和 S22 数值 分别调用函数 meun T S1 S21 S22 进行求解计算 并对结果进行分析 由若干次模拟实演的 结果可以看出 方案 1 的利润总是小于方案 2 的利润 所以该工厂实际按方案 2 进行组织生产与库存 工厂会有更好的经济效益 五 参考文献五 参考文献 1 蒙特卡罗方法及应用 J 尹增谦 管景峰 张晓宏 曹春梅 物理与工程 2002 03 45 49 2 蒙 特 卡 罗 方 法 应 用 研 究 J 王 岩 尹 海 丽 窦 在 祥 青 岛 理 工 大 学 学 报 2006 02 111 113 3 高职数学中蒙特卡罗方法的应用 J 陈杨林 罗婷 九江职业技术学院学报 2013 02 22 23 4 蒙特卡罗方法在教学中的应用 J 康件丽 黄俊杰 电脑学习 2008 02 46 47 5 蒙特卡罗方法与问题的维数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论