1. Background

1.1 Polar Coordinates

1.2 Normal Distribution

由于 独立, 其联合概率密度函数为:

1.3 Function Transformation

2. Box-Muller Transformation

将 的联合密度函数转化到极坐标系中. 令 and , then:

注意到, 上述密度函数可以认为是均值为 的指数分布 与 的均匀分布 的密度函数乘积. Thus:

  • 与 彼此独立.
  • 服从均值为 的指数分布.
  • 服从 的均匀分布.

Algorithm:

  1. Generate random numbers .
  2. Let
  1. Let

Note: Efficiency issue

Box-Muller 变换在计算时的效率较低, 这是因为 Step 3 涉及三角函数 的计算. 为了改进这一特点, 下文不再生成随机角度 , 而是直接通过模拟直角三角形的三边长度生成随机三角函数 .

3. Polar Method

3.1 Improvement Idea

不再计算模拟的随机角度的三角函数, 而是通过模拟单位圆直接计算三角函数的具体数值.

3.2 Steps

引入单位圆. 若 , 则 , 故令:

不断生成随机数对 并保留满足 的部分, 则有 在单位圆上均匀分布.

对于该随机数对 对应的极坐标方程, 可知其对应的 服从 的均匀分布, 而 服从 的均匀分布.

模拟 and :

对 Box-Muller 的改进: 将上述模拟的 代入 :

再令 , 则有:

综上, 新的模拟步骤为:

  1. Generate random numbers .
  2. Let , , and .
  3. If , return to Step 1.
  4. Otherwise generate a pair of standard normal random variables: