【问题标题】:discrete Guassian model in fortran 90fortran 90中的离散高斯模型
【发布时间】:2012-07-08 04:16:32
【问题描述】:

我想生成具有均值为零和方差为 2.25 的高斯分布的离散随机数(用于 1000 个集合)。我在书NUMERICAL RECIPES in Fortran 90,第7章,第7.2节看到,函数gasdev用于此,但我不知道如何使用此函数。

如何使用集合数以及均值和方差?

谢谢

【问题讨论】:

    标签: fortran90


    【解决方案1】:

    IMO,如何使用 NR 中的函数最好用 NR 本身编写。

    如果您需要生成正态分布的实数,请在谷歌上搜索“Box-Muller 变换”,或直接转到Wiki page 和/或这里的几十个问题和答案。

    如果您的要求是生成整数(您的意思是通过询问离散随机数吗?),我会说最简单的方法is to compute the cdf

    【讨论】:

    • 我想生成离散随机数(对于 1000 个集合),其具有均值为 0 和方差为 2.25 的高斯分布。我该怎么做?
    【解决方案2】:

    gasdev 返回正态分布随机变量,平均值为0.0,方差为1.0,通常写为N(0, 1)。您应该使用方差缩放结果以匹配所需的分布。请注意,如果xN(0, 1)(由gasdev 返回),则y = a + b*xN(a, b^2),即均值为a 和方差为b^2 的正态分布随机变量。

    (顺便说一句,如果这是一个家庭作业,它应该被正确标记)

    【讨论】:

    • 顺便说一句,这不是作业。我是一名生物学博士生,我需要这个来模拟细胞群。对于 1000 个集合,我想知道在 gasdev 函数中将这个数字放在哪里?
    • gasdev 函数中的 idum 是什么?
    • 这是gasdev 使用的伪随机数生成器的种子。您应该在第一次调用 gasdev 时传递一些负值,然后进一步传递 0
    • 你的意思是我必须定义 seed=-1 ,gasdev(seed)?
    猜你喜欢
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 2012-07-16
    • 2012-08-31
    • 1970-01-01
    相关资源
    最近更新 更多