<概率论与数理统计(1)> 泊松随机数

泊松随机数

最近需要在模型表面网格内采样获取模型表面点云,需要根据网格面积与模型面积计算网格内部的采样数,这里用到了泊松随机数计算网格内采样数。

任务简述

设泊松分布的强度 λ {\lambda} λ计算如下:
λ = A M e s h A M o d e l ∗ N s u m {\lambda}=\frac{A_{Mesh}}{A_{Model}}*N_{sum} λ=AModelAMeshNsum
其中 A M e s h A_{Mesh} AMesh为当前网格的面积; A M o d e l A_{Model} AModel为模型表面积; N s u m N_{sum} Nsum为预定采样数量。以 λ {\lambda} λ为基础,计算Knuth Poisson 随机数,计算过程如下:

algorithm poisson random number (Knuth):
    init:
         Let L ← e^−λ, k ← 0 and p ← 1.
    do:
         k ← k + 1.
         Generate uniform random number u in [0,1] and let p ← p × u.
    while p > L.
    return k − 1.

其过程基本可以描述为:

1、在0-1区间上生成服从均匀分布的随机数;

2、从头至尾求随机数乘积,知道乘积小于或等于 e − λ e^{-{\lambda}} eλ时,记录参与乘积的随机数数目;

3、返回随机数减一;

多次实验的时候,随机数分布是服从参数为 λ {\lambda} λ的泊松分布的。

具体推导过程请看:泊松随机数的生成算法:数学推导和程序实现)

Matlab 实验

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

%% PoissonRandomNumber_f.m
function [res]= PoissonRandomNumber_f(lambda)
% algorithm poisson random number (Knuth):
% init:
%      Let L ← e^−λ, k ← 0 and p ← 1.
% do:
%      k ← k + 1.
%      Generate uniform random number u in [0,1] and let p ← p × u.
% while p > L.
% return k − 1.
L = exp(-lambda);
p = 1.0;
res=0;
 while(1)
    res = res+1;
    p = p*rand(1,1);
    if(p<=L)
        break;
    end
 end 


%% PoissonRandomNumber.m
clc
clear 
lambda = floor(rand(1)*50);
size = 3000;
k=zeros(1,size);

for i=1:size
   k(1,i) = PoissonRandomNumber_f(lambda);
end
figure(1);

x = 0:1:max(k);
y = poisspdf(x,lambda)*size;
[a,b]= max(y);

histogram(k);

hold on;
plot(x,y);

title('Possion Random Number');

xlabel('RandomNumber')
ylabel('Statistics')
text(x(b),max(y),['\lambda=',num2str(lambda)]);
        
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wdmcs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值