数学建模十大算法01 | 您所在的位置:网站首页 › 随机模拟方法的基本思想 › 数学建模十大算法01 |
文章目录
一、生成随机数1.1 rand1.2 unifrnd1.3 联系与区别
二、引入2.1 引例2.2 基本思想2.3 优缺点
三、实例3.1 蒙特卡洛求解积分3.2 简单的实例3.3 书店买书(0-1规划问题)3.4 旅行商问题(TSP)
参考文献
蒙特卡洛方法也称为
计算机随机模拟方法,它源于世界著名的赌城——摩纳哥的Monte Carlo(蒙特卡洛)。它是基于对大量事件的统计结果来实现一些确定性问题的计算。使用蒙特卡洛方法必须使用计算机生成相关分布的随机数,Matlab给出了生成各种随机数的命令,常用的有
rand函数和
unifrnd。
一、生成随机数
1.1 rand
rand函数可用于产生由(0,1)之间均匀分布的随机数或矩阵。 Y = rand(n) 返回一个n×n的随机矩阵。 Y = rand(m,n) 或 Y = rand([m n]) 返回一个m×n的随机矩阵。 Y = rand(m,n,p,...) 或 Y = rand([m n p...]) 产生随机数组。 Y = rand(size(A)) 返回一个和A有相同尺寸的随机矩阵。 unifrnd 生成一组(连续)均匀分布的随机数。 R = unifrnd(A,B) 生成被A和B指定上下端点[A,B]的连续均匀分布的随机数组R。 如果A和B是数组,R(i,j)是生成的被A和B对应元素指定连续均匀分布的随机数。 R = unifrnd(A,B,m,n,...) 或 R = unifrnd(A,B,[m,n,...]) 如果A和B是标量,R中所有元素是相同分布产生的随机数。 如果A或B是数组,则必须是mn…数组。 相同点: 二者都是利用rand函数进行随机值计算。二者都是均匀分布。【例】在区间[5,10]上生成400个均匀分布的随机数。 不同点: unifrnd是统计工具箱中的函数,是对rand的包装。不是Matlab自带函数无法使用JIT加速。rand函数可以指定随机数的数据类型。 二、引入 2.1 引例为了求得圆周率 π 值,在十九世纪后期,有很多人作了这样的试验:将长为 l l l 的一根针任意投到地面上,用针与一组相间距离为 a ( l < a ) a( l<a) a(l<a)的平行线相交的频率代替概率P,再利用准确的关系式: p = 2 l π a p=\frac{2l}{\pi a} p=πa2l ,求出 π 值。(布丰投针)
|
CopyRight 2018-2019 实验室设备网 版权所有 |