zoukankan      html  css  js  c++  java
  • Netlab Chap8 抽样(2)基本抽样

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

    1.随机数生成器

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

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

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

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

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

    Netlab函数为rand

    特点

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

    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.变换为其它分布

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

  • 相关阅读:
    python打包
    tkinter python(图形开发界面)
    Pyinstaller 打包exe文件 取消dos窗口(黑框框)
    PHP知识点(转载https://www.cnblogs.com/mapsxy/p/9977744.html)
    Java去除字符串中的空格
    开心
    原型链—— javascript
    ajax跨域jsonp —— javascript
    ajax异步 —— javascript
    this —— javascript
  • 原文地址:https://www.cnblogs.com/pegasus/p/1936581.html
Copyright © 2011-2022 走看看