如下面的代码所示,我目前正在从正态分布中生成随机数,并选择-3 * sigma和3 * sigma区间内的随机数。
但是,我现在想要生成数字,以便从-3 * sigma和3 * sigma区间之外选择数字的概率更高。例如。来自[-4 * sigma -3 * sigma]的数字应该有35%被选中的概率和[3 * sigma 4 * sigma]相同。
基本上,我会多次调用这个函数,并且想知道我是否有办法从正态分布的“尾部”中选择更高比例的随机数,而不是实际改变正常形状的形状分布。
我被告知使用“拒绝采样算法”或“Metropolis-Hastings算法”来解决这个问题。我正在努力了解如何实施。有人可以向正确的方向微微推动吗?我正在使用
N = pdf('Normal',136e9-(3*9.067e9):1e8:136e9+(3*9.067e9),136e9,9.067e9)
首先生成一个pdf
来绘制。但是,我当时不确定哪些应该作为我的“目标分配”,我应该把它作为“拟议的分发”。
function [new_E11, new_E22] = elasticmodulusrng()
new_E11 = normrnd(136e9,9.067e9,[1 1]);
new_E22 = normrnd(8.9e9,2.373e9,[1 1]);
while new_E11<=-3*9.067e9 && new_E11>=3*9.067e9
new_E11 = normrnd(136e9,9.067e9,[1 1]);
end
while new_E11<=-3*2.373e9 && new_E11>=3*2.373e9
new_E22 = normrnd(8.9e9,2.373e9,[1 1]);
end
由于