当我运行蒙特卡罗模拟时,我希望只从正态分布的尾部([-5sigma,-3sigma]和[3sigma,5sigma])中抽样,因此想到了拒绝抽样。然而,我在Matlab中实现这一点时遇到了困难。到目前为止,我一直在使用类似下面代码的东西(我知道这不是拒绝抽样),但是拒绝抽样是否是解决这个问题的更好方法?
function [new_E11] = elasticmodulusrng()
new_E11 = normrnd(136e9,9.067e9,[1 1]);
while new_E11>=136e9-3*9.067e9 && new_E11<=136e9+3*9.067e9
new_E11 = normrnd(136e9,9.067e9,[1 1]);
end
感谢您的提问。以下是关于使用答案中的代码的说明:
编辑:使用答案中的代码
136e9
和9.067e9
)分配给变量,这使得代码更易于阅读和维护。 - Danielnormcdf
在 [-5sigma,-3sigma] 和 [3sigma,5sigma] 之间的部分被归一化为1的积分。符号工具箱可用吗? - Daniel