1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
// Copyright (C) ENPC
// Copyright (C) ????-2008 - INRIA
// Copyright (C) 2010 - DIGITEO - Allan CORNET
//
// This file is released under the 3-clause BSD license. See COPYING-BSD.
function [] = HyperGeomT(n)
function [y] = HyperGeom(m, n, Mean, var)
z = var / (Mean * Mean);
pP = 0.5 * (1.0 - sqrt((z - 1.0) / ( z + 1.0 )));
y = rand(m, n, "uniform")
zz = find( y > pP) ;
y = pP * ones(y);
y(zz) = (1-pP) * ones(zz);
y1 = rand(m, n, "uniform")
y = -Mean * log(y1) ./ (2.0 * y) ;
endfunction
[lhs,rhs]=argn(0)
if rhs <= 0 ; n=10000;end
y=HyperGeom(1,n,1,10)
drawlater();
my_handle = scf(100001);
clf(my_handle,"reset");
demo_viewCode("hypergeom.dem.sce");
histplot([0:0.25:10], y, [1,1], "061", " ", [0,0,10,0.4]);
xtitle(_("Simulation of a hyper geometric random variable"));
BackgroundColorId = color(232,230,200);
PolylineFillColorId = color(179,179,0);
current_axe = gca();
current_axe.title.font_size = 3;
current_axe.background = color(232,230,200);
current_axe.children.children.fill_mode = "on";
current_axe.children.children.background = PolylineFillColorId;
current_axe.grid = [-1 PolylineFillColorId];
drawnow();
endfunction
HyperGeomT();
clear HyperGeomT;
|