1

我的名字是 Rik,我是 6 西格玛绿带,我创建了一个飞机发动机维修设施的蒙特卡洛模拟。我目前正在 Excel VBA 中做一个 6-sigma 项目。

我在开发程序时只是简单地缩放了一个随机数,但现在它已经开发了,我想使用逆对数正态 CDF http://engineer.jpl.nasa.gov/practices/at2.pdf创建随机修复次,但我无法在网上找到该功能。

我确实在http://www.anthony-vba.kefra.com/vba/vba12.htm上找到了以下代码,但它适用于正态分布,我不确定它的准确性。我找不到逆对数正态 CDF 的方程。我想要逆对数正态 CDF 函数的类似代码。

任何帮助是极大的赞赏。

'****************************************************************************
'*         Return random numbers from Standard Normal Distribution          *
'****************************************************************************
Function gauss()
    Dim fac As Double, r As Double, V1 As Double, V2 As Double
10      V1 = 2 * Rnd - 1
        V2 = 2 * Rnd - 1
        r = V1 ^ 2 + V2 ^ 2
        If (r >= 1) Then GoTo 10
        fac = Sqr(-2 * Log(r) / r)
        gauss = V2 * fac
End Function
4

1 回答 1

1

如果您使用 Excel VBA,Excel 函数 Loginv 与 0 到 1 之间的随机数可用于生成随机对数正态分布数。

于 2011-04-19T16:08:59.130 回答