【问题标题】:MATLAB: generate two independent random variables from different distributionsMATLAB:从不同的分布生成两个独立的随机变量
【发布时间】:2018-04-17 23:24:02
【问题描述】:

当我多次运行rand 函数时,它会生成一系列遵循均匀分布的随机值,每个值都是从前一个值计算出来的,所以整个序列是针对具有完整范围 @ 的单个随机变量987654322@ 从中提取值。

现在在我的模拟程序中,我有两个独立的随机变量 X,Y 。在每次迭代中,我应该为它们中的每一个生成一个新值,有时只为其中一个生成一个新值。所以我为X然后Y然后X然后Y ...等生成一个值。这个生成序列意味着它们共享相同的种子和0:1范围,所以生成数字的序列之前在一个变量的情况下现在分布在两个变量上。

我需要每个变量都有自己的独立序列,而不是共享同一个序列。这是为了模拟的质量。有什么帮助吗?

【问题讨论】:

  • 嗯,我不太了解,但我认为如果它是均匀分布的,那么集合的任何子分区都过于均匀分布,如果你正在生成它们(即集合的一个分区您根据标准选择一些数字的地方不会,但您描述的情况应该是)

标签: matlab


【解决方案1】:

听起来您想创建两个不同的RandStream 实例,如下所示:

[xstream, ystream] = RandStream.create('mrg32k3a', 'NumStreams', 2)
for ii = 1:1000
    x = rand(xstream)
    y = rand(ystream)
    % compute simulation step here
end

【讨论】:

  • 不知道为什么这被否决了。这对我来说似乎是正确的。
  • 我想这正是我想要的。谢谢。
【解决方案2】:

随机数生成器按设计返回独立、均匀分布的随机变量。所以,这里不用担心。如果您担心 x 和 y 之间存在相关性,那么您需要关注 x 的不同值之间也存在相关性。人们非常努力工作,以确保随机数生成器中不同值之间的相关性为零(无论种子是什么)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 2019-07-29
    • 2020-04-05
    • 1970-01-01
    相关资源
    最近更新 更多