Beta PDF
y = distfun_betapdf ( x , a , b )
a 1x1 or nxm matrix of doubles, the outcome. Should be in the [0,1] interval.
a 1x1 or nxm matrix of doubles, the first shape parameter. Should be positive.
a 1x1 or nxm matrix of doubles, the second shape parameter. Should be positive.
a 1x1 or nxm matrix of doubles, the density
Computes the Beta probability distribution function.
Any scalar input argument is expanded to a matrix of doubles of the same size as the other input arguments.
The function definition is:
where B is the beta function.
The indicator function I is so that if x < 0 or x > 1, then y is zero.
// Check with a and b to be expanded computed = distfun_betapdf ( 0.1:0.2:0.9 , 2 , 3 ) expected = [0.9720,1.7640,1.5000,0.7560,0.1080] // Check with expanded arguments x = 0.1:0.2:0.9; a = [2 3 4 5 6]; b = [5 4 3 2 1]; computed = distfun_betapdf ( x , a, b ) expected = [1.9683,1.8522,1.8750,2.1609,3.54294] // Check at the bounds computed = distfun_betapdf ( [-1 0 1 2], 1 , 2 ) expected = [0 0 0 0] // Plot the function a = [0.5 5 1 2 2]; b = [0.5 1 3 2 5]; cols = [1 2 3 4 5]; nf = size(cols,"*"); lgd = []; scf(); for k = 1 : nf x = linspace(0.01,0.99,1000); y = distfun_betapdf ( x , a(k) , b(k) ); plot(x,y) str = msprintf("a=%s, b=%s",.. string(a(k)),string(b(k))); lgd($+1) = str; end h = gcf(); for k = 1 : nf hk = h.children.children.children(nf - k + 1); hk.foreground = cols(k); end xtitle("Beta Probability Density Function","x","f(x)"); legend(lgd); h.children.data_bounds = [ 0 0 1 3 ]; | ![]() | ![]() |