17、数值方法:随机值生成与蒙特卡罗积分

数值方法:随机值生成与蒙特卡罗积分

1. 随机值生成

1.1 线性同余法

线性同余法是一种生成随机数的方法,其递推公式为:
[x_{i + 1} = (ax_i + c) \pmod{n}]
其中,(a) 为乘数,(c) 为增量,均为非负整数。模运算 (\pmod{n}) 表示:
[x_{i + 1} = ax_i + c - nl_i]
这里 (l_i = \lfloor(ax_i + c)/n\rfloor) 是 ((ax_i + c)/n) 中的最大正整数。通过 (x_i/n) 可得到区间 ([0, 1]) 内的值。

若随机变量 (U) 在区间 ([0, 1]) 上服从均匀分布,对于在区间 ([a, b]) 上均匀分布的随机变量 (X),其值 (x) 可通过以下变换得到:
[x = a + (b - a)u]

1.2 反演法

反演法是生成随机变量的重要方法,基于生成随机数。设随机变量 (X) 的分布函数为 (F(x)),由于 (F(x)) 是单调递增函数,其反函数 (F^{-1}(u)) 定义为满足 (F(x) = u) 的最小 (x) 值,即:
[F^{-1}(u) = \min{x : F(x) = u, 0 \leq u \leq 1}]
若随机变量 (U) 在区间 ([0, 1]) 上均匀分布,则随机变量 (X = F^{-1}(U)) 具有分布函数 (F(x))。

使用反演法生成随机变量 (X) 的值 (x) 需两个步骤:
1. 生成一个随机数,即随机变量 (U) 在区间 ([0, 1]) 上均匀分布的一个值 (u)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值