作为作业的一部分,我被要求编写一个 Octave 函数,它将以两种不同的方式生成参数p = 0.55的几何 RV X的m个伪随机结果:
- 直接使用房车的cdf
- 利用变量是使用独立的伯努利实验产生的事实。
对于2,我的想法是:
- 创建一个m次迭代的循环
- 创建一个重复的内部循环,直到有一个成功的试验
- 在内循环中有一个计数变量,用于计算成功之前有多少次失败,并为外循环的m次迭代中的每一次存储此计数。
但是,我对第一部分很迷茫,甚至很难通过“直接使用随机变量的 cdf”来理解这个问题的含义。
编辑
这是我到目前为止所做的:
function x = generate_geometric_cdf(p, m)
% generate geometric RV X with parameter p, m times using the cdf
emperical = zeros(1,m); % allocate array for empirical results of m simulations
for i = 1:m % iterate over m simulations
u = rand; % generate a random number between 0-1
emperical(i) = geocdf(u, p); % store the outcome of the geometric distribution at u
end
end
编辑 2
geoinv
是我需要的功能,而不是geocdf
. geocdf(u, p)
从 cdf for 的 value 中返回概率u
,带参数p
,反之geoinv(u, p)
则返回一个给定概率u
和参数的随机值p
。