MATLAB随机数的应用ppt,Matlab生成随机数.ppt

* 一、有趣的蒙提霍尔问题 蒙提霍尔问题(Monty Hall problem),也称为三门问题,是一个源自博弈论的数学游戏问题,问题的名字来自美国的电视游戏节目:Let's Make a Deal,该节目的主持人名叫蒙提?霍尔(Monty Hall)。 这个游戏的玩法是:参赛者面前有三扇关闭的门,其中一扇门的后面藏有一辆汽车,而另外两扇门的后面则各藏有一只山羊。参赛者从三扇门中随机选取一扇,若选中后面有车的那扇门就可以赢得该汽车。当参赛者选定了一扇门,但尚未开启它的时候,节目主持人会从剩下两扇门中打开一扇藏有山羊的门,然后问参赛者要不要更换自己的选择,选取另一扇仍然关上的门。这个游戏涉及到的问题是:参赛者更换自己的选择是否会增加赢得汽车的概率? 生成随机数 ? 谢中华, 天津科技大学数学系. * * 华文行楷,字号88,颜色红,位于每一章的第一节的最前面。 不使用动画 * 生成随机数 教 材 * * 主要内容 生成一元分布随机数 生成多元分布随机数 蒙特卡洛方法 * 第一节 生成一元分布随机数 * 一、均匀分布随机数和标准正态分布随机数 调用格式: Y = rand Y = rand(n) Y = rand(m,n) Y = rand([m n]) Y = rand(m,n,p, …) Y = rand([m n p …]) Y = rand(size(A)) 1. rand函数 * 在MATLAB7.7以前的版本中,rand函数还可以这样调用: rand(method, s) s = rand(method) 其中method是字符串变量,它的可能取值如下表所列: * 调用格式: 与rand函数类似 2. randn函数 * % 设置随机数生成器的算法为Mersenne Twister算法,初始种子为1 >> rand('twister',1); % 生成2行6列的随机数矩阵,其元素服从[0,1]上均匀分布 >> x1 = rand(2,6) 【例4.1-1】设置随机数生成器的算法为Mersenne Twister算法,生成均匀分布随机数矩阵 * 二、RandStream类 MATLAB 7.7及以后的版本中,依然支持rand函数的上述两种调用方式,但已经是过时的调用方式了,因为MATLAB 7.7中对生成随机数作了重大调整,给出了RandStream(随机数流)类,通过调用类的构造函数并传递合适的参数可以创建类对象,然后调用类对象的rand,randn,randi,randperm方法生成随机数。 * RandStream类方法列表 1. 创建RandStream类对象 * 调用格式: s = RandStream('gentype') […] = RandStream('gentype','param1',val1,'param2',val2,…) 2. RandStream函数的调用方法 gentype有6个可能的取值:mcg16807、mlfg6331_64、mrg32k3a、mt19937ar、shr3cong和swb2712,对应随机数生成器的6个不同算法,默认值为mt19937ar * % 创建一个RandStream类对象s,其随机数生成器的算法为‘mlfg6331_64’,初始种子为10,对象s的randn方法的算法为'Inversion' >> s = RandStream('mlfg6331_64', 'seed', 10, 'RandnAlg', 'Inversion'); % 调用对象s的randn方法生成10行10列的随机数矩阵x,其元素服从标准正态分布 >> x = s.randn(10) >> y = x(:); % 将x按列拉长成一个列向量 >> hist(y) % 绘制频数直方图 >> xlabel('标准正态分布随机数'); % 为X轴加标签 >> ylabel(‘频数’); % 为Y轴加标签 【例4.1-2】调用RandStream函数创建一个指定随机数生成算法的RandStream类对象,然后利用对象的randn方法生成10×10的标准正态分布随机数矩阵,并将矩阵按列拉长,画出频数直方图 * 三、常见一元分布随机数 MATLAB统计工具箱中函数名以rnd三个字符结尾的函数用来生成常见分布的随机数。例如: betarndBeta分布 exprnd指数分布 gamrndGamma分布 lognrnd对数正态分布 normrnd正态分布 poissrnd泊松分布 randsample从有限总体中随机抽样 random指定分布 * % 调用normrnd函数生成1000行3列的随机数矩阵x,其元素服

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值