蒙特卡洛算法是一种基于随机数的算法,思想非常直观但是与其他算法相比精确度较低。其实我们在中学已经初步了解过蒙特卡洛算法的应用,例如通过在坐标轴中随机取点来估算圆周率pi的值。蒙特卡洛算法的其他应用本质上也和随机取点估值问题类似。

数值方法求定积分

对于定积分,一般我们会找原函数然后通过牛顿莱布尼兹公式求解。但是遇到一些复杂的表达式可能就很难求出原函数。例如计算定积分:,很难通过一般的方法求解。这时候就要用到蒙特卡洛算法计算出一个近似的值。

因为: ,我们可以在积分区间[a,b]上均匀地随机生成一列xi,之后求出积分的近似值。比如计算,就可以先在[0.8,3.3]上随机生成n个点,当n足够大时,便可以用近似值代替估算值。

Matlab代码如下:

clc
clear all;
close all;
syms x
f=1/(1+sin(x)+(log(x))^2)
n=1e3
x=unifrnd(0.8,3.3,[1,n]);
ans=0;
for i=1:ny(i)=1/(1+sin(x(i))+(log(x(i))^2))ans=ans+y(i)
end
ans=2.5*ans/n

最终运行结果是1.12~1.13左右,已经很接近真实值。但是显然需要n很大时才能保证更大的精度。

下雨问题

如果一周每天都有50%的可能下雨,求连续三天下雨的概率?

这里假设每一天是否下雨是相互独立的,记,则{Yi}独立。通过蒙特卡洛随机数的方法来模拟Yi的值:在[0,1]之间均匀分布任取一个数a,若a小于0.5则不下雨,否则下雨。之后再累加下雨天数,记录连续的下雨天数即可。对应的matlab程序如下:

n=1e4;ans=0;
for i=1:nc=0;y=0;p=0.5;for t=1:7r=unifrnd(0,1)if r<pc=c+1elsec=0endif c>=3y=1endendans=ans+y
end
ans=ans/n

n=1e4表示重复实验10000个星期,得出的结果为有3657个星期是有连续三天下雨的。

因此可以估算一周出现有连续三天下雨的概率约为36.57%;同理,一周出现连续三天晴天的概率也约为36.57%。而在代码中改变p的值,也可以得到其他的结果。下雨问题运用蒙特卡洛算法的精髓在于通过取随机数的方法来模拟某天是否下雨,无论是代码实现还是思路的理解都非常直观。

其他应用

经典的模型还有布冯投针问题等,本质上还是选取随机数进行近似地估计。

原理及误差分析

例如在下雨问题中,对于模拟参数Y,我们得到了一列结果Y1,Y2,Y3,……,Yn,由于它们独立同分布,由强大数定律知:时,,因此可用Y1,Y2,Y3,……,Yn的平均值来估计Y的真实值。同时由中心极限定理知,令,那么观测平均值Sn/n与真实的均值μ=EY的差值为:,并且有。所以期望的观测平均值趋于0的变化速度为,要使得精度增加两位小数点就需要一万次之多,误差相对来说比较大,精度不够高。但是有一些低精度就能够解决的问题使用蒙特卡洛算法是非常有效的。

【备战美赛】蒙特卡洛算法相关推荐

  1. 【备战美赛】重要!2023年美赛官方发布最新通知

    备战美赛 春节假期结束,各项比赛也需要准备起来啦!近日,美赛组委会发布了2023年官方最新邮件,邮件内容主要是介绍本届竞赛基本情况.参赛规则.竞赛奖励.资源下载等相关内容,确定了比赛时间为北京时间2月 ...

  2. 【备战美赛】Lingo与规划问题

    引入 规划问题其实我们在高一数学必修五里面已经见过,当时的题目都是线性规划模型,做法也非常直观:通过画图和观察加上一点点计算得出最优解.当时我们处理的是只有x和y两个变量并且约束条件都是一次函数的情况 ...

  3. latex 下划线_备战美赛!论文写作必备Latex排版教程之单词间隔、标题及交叉引用...

    LaTex排版学习往期回顾: Latex源文件及文档布局教程 Latex排版之断行.分页与字符串教程 今日学习 单词的间隔 为了使输出的右边界对齐,LATEX 在单词间插入不等的间隔.在句子的末尾插入 ...

  4. 备战美赛,这些你应该知道的知识点

    国赛刚过完 美赛就接踵而来 只剩下两个多月的时间 不少准备参赛的小伙伴在后台咨询 该如何准备美赛 为了更好地帮助大家进攻美赛 超模君特意邀请到 今年国赛A题Matlab创新奖&一等奖获奖者 方 ...

  5. 美赛算法及MATLAB代码,美赛常用算法及matlab代码——(3)熵权法

    熵权法真的用的太太太多啦(反正我们队是) 原理很简单,不再讲了(俺觉得就算不懂原理只要会用就OK) 举个栗子(以下数据全为我瞎编) 身高 气质 颜值 小王得分 5.5 3 2 小红得分 5.6 4 3 ...

  6. 2020美赛F奖论文(四):模拟退火算法驱动的结构策略设计

    上接:2020美赛F奖论文(三):足球团队指标和基于机器学习的球队表现预测 全文: 2020美赛F奖论文(一):摘要.绪论和模型准备 2020美赛F奖论文(二):传球网络模型(PNM)的建立和影响因子 ...

  7. 2021美赛实用模板分享

    以下分享一个自己看到的美赛论文实用的小模板,同样用这篇笔记整理整理写作的思路和写作的细节,做个存档. 具体的Word文档模板我放在这里,需要的话可以自己提取后看,比看本文方便点,自己修改下就可以用了: ...

  8. 2023美赛思路2023美国大学生数学建模竞赛思路

    2023美赛思路2023美国大学生数学建模竞赛思路 2023美赛ABCDEF题思路 给大家分享一下数模美赛中的那些论文摘要写作中的格式规范. 本文参考来源:美赛资料网 首先我们看一下一篇论文的写作重要 ...

  9. 2023年美国大学生数学建模竞赛美赛B题思路分享

    2023美赛思路2023美国大学生数学建模竞赛思路 2023美赛ABCDEF题思路 给大家分享一下数模美赛中的那些论文摘要写作中的格式规范. 美赛开始后会第一时间分享美赛思路: 本文参考来源:美赛资料 ...

最新文章

  1. 我,是真是一个培训班出来的程序员
  2. matlab 二值化_MATLAB实验,图像二值化处理
  3. ABAP中P类型介绍
  4. java zmq订阅_从ZMQ PUB套接字获取订户过滤器
  5. 重磅推荐:2020年人工智能最精彩的25篇论文(附下载)
  6. 【简洁写法】剑指 Offer 30. 包含min函数的栈
  7. java加密工作模式None_java加解密算法--对称加密工作模式
  8. python转字符_python 字符转换
  9. 命令编写注册表文件修改注册表项
  10. lua游戏开发实践指南光盘_Godot游戏开发实践之一:用High Level Multiplayer API制作多人游戏(上)
  11. 论如何高速下载磁力链接、电驴链接、种子文件里的资源
  12. Java项目源码分享——适合新手练手的Java Web项目
  13. 计算机操作系统(第四版)课后习题答案西电版
  14. 爬虫小程序 - 翻译君
  15. visio中的公式在转换pdf后公式糊掉;word导出pdf时visio丢失模块字体
  16. 我用python写了一套股票万金油,回报小雪下面给我吃
  17. html向下的箭头符号,向下的箭头符号
  18. 第十五周博客作业西北师范大学|李晓婷
  19. 编写一递归函数求斐波纳契数列1,1,2,3,5,8,13,…的前40项。c语言
  20. vue链接生成二维码

热门文章

  1. lda主题模型困惑度_r语言lda主题模型代码 lda主题模型 案例分析
  2. ios相机内存_爱相机 - 从此告别「内存不足」 #iOS #Android
  3. k8s开启临时容器ephemeral进行debug调试
  4. 关于for循环执行顺序
  5. 2. LaTeX 数学公式与希腊字母
  6. 第四章 顾客不是上帝
  7. 高通gobi系列modem
  8. AC 哞加密 (枚举+哈希+unordered_map)
  9. vue父子组件通信详解
  10. 盒子模型中box-sizing: border-box;的作用