1. Background
1.1 Polar Coordinates
1.2 Normal Distribution
由于 独立, 其联合概率密度函数为:
1.3 Function Transformation
2. Box-Muller Transformation
将 的联合密度函数转化到极坐标系中. 令 and , then:
注意到, 上述密度函数可以认为是均值为 的指数分布 与 的均匀分布 的密度函数乘积. Thus:
- 与 彼此独立.
- 服从均值为 的指数分布.
- 服从 的均匀分布.
Algorithm:
- Generate random numbers .
- Let
- Let
Note: Efficiency issue
Box-Muller 变换在计算时的效率较低, 这是因为 Step 3 涉及三角函数 的计算. 为了改进这一特点, 下文不再生成随机角度 , 而是直接通过模拟直角三角形的三边长度生成随机三角函数 .
3. Polar Method
3.1 Improvement Idea
不再计算模拟的随机角度的三角函数, 而是通过模拟单位圆直接计算三角函数的具体数值.
3.2 Steps
引入单位圆. 若 , 则 , 故令:
不断生成随机数对 并保留满足 的部分, 则有 在单位圆上均匀分布.
对于该随机数对 对应的极坐标方程, 可知其对应的 服从 的均匀分布, 而 服从 的均匀分布.
模拟 and :
对 Box-Muller 的改进: 将上述模拟的 代入 :
再令 , 则有:
综上, 新的模拟步骤为:
- Generate random numbers .
- Let , , and .
- If , return to Step 1.
- Otherwise generate a pair of standard normal random variables: