博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Netlab -Chap8 抽样(2)基本抽样
阅读量:4708 次
发布时间:2019-06-10

本文共 669 字,大约阅读时间需要 2 分钟。

要想有效利用蒙特卡罗积分,需要能从不同概率密度函数中抽样。这里讨论几个适用于低维分布的抽样方法。

1.随机数生成器

大部分实际的随机数生成器基于下面的线性同余算法(a linear congruential algorithm)

        , 其中a,c,n都是正整数

它生成的正整数 的值域为[1,n)。如果将其处以n,那么就得到(0,1)范围上的均匀分布。如果a,c,n值选择合适的话,这个生成器的周期(直到重复前所生成数值的个数)是n。

 

由于其计算速度快,编程简单,这个算法非常流行。它的缺点是连续调用时生成随机数是序列相关的。如果某一时间,k个随机数用作超立方体 中的点,那么它们往往位于 位的超平面上。

该算法生成的数值完全由第一个值 决定,因此 被称为“种子(seed)”

 

Netlab函数为rand

特点

1)周期为 ,足够蒙特卡罗积分用

2)它没有种子,而是有一个状态向量(35个分量),可以存储并重用

使用

a = rand(1000,10); %生成1000*10的随机矩阵

s = rand('state');%保存35维的状态向量

rand(‘state’, s);%重置状态

b = rand(1000,10);%此时状态向量相同,因此a=b

rand(‘state’, n);%n为正整数,将生成器当前状态设为第n个状态

 

2.变换为其它分布

获取其它分布的基本思想是对均匀分布进行变换

 

转载于:https://www.cnblogs.com/pegasus/archive/2011/01/16/1936581.html

你可能感兴趣的文章
实战深度学习OpenCV(一):canny边缘检测
查看>>
责任链模式(chain of responsibility)
查看>>
[转载]java多线程学习-java.util.concurrent详解(一) Latch/Barrier
查看>>
ionic - 运行起来
查看>>
Shell 输入/输出重定向
查看>>
数据结构与算法分析(C++)读书笔记
查看>>
(转)nginx应用总结(1)--基础认识和应用参数优化配置
查看>>
(转)关于sql和MySQL的语句执行顺序(必看!!!)
查看>>
UVALive 3668 A Funny Stone Game(博弈)
查看>>
信息论随笔2: 交叉熵、相对熵
查看>>
再学习之MyBatis.
查看>>
wxPython制作跑monkey工具(python3)
查看>>
JavaScript object
查看>>
github
查看>>
CodeWars题目筛选
查看>>
MySQL— 索引
查看>>
LeetCode OJ - Pascal's Triangle II
查看>>
C# String 前面不足位数补零的方法
查看>>
文件操作
查看>>
LLL
查看>>