How to plot ErlangB formula

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

How to plot ErlangB formula

mari_tsa

function B=erlangb_iterative(p,c)
 if ((floor(c) ~= c) || (c < 1))
    warning('n is not a positive integer');
    B=NaN;
    return;
 end;
 if (p < 0.0)
    warning('p is negative!');
    B=NaN;
    return;
 end;
    B=1;
    for k=1:c,
       B=((p*B)/k)/(1+p*B/k);
    end;
endfunction

Here is the formula I wrote in matlab/octave to calculate the Erlang-B
formula (the erlang B formula is referred to another post uploaded here. It
accepts 2 inputs p and c and produces a result B. with this kind of inputs

>> B=erlangb_iterative(77,1)
   B =  0.98718
>> B=erlangb_iterative(77,10)
   B =  0.87201
>> B=erlangb_iterative(77,80)
   B =  0.063644
>> B=erlangb_iterative(77,100)
   B =  0.0017401
>> B=erlangb_iterative(77,150)
   B = 5.9709e-14
>> B=erlangb_iterative(77,200)
   B = 9.1323e-32

I see that I get various results, which are not the same regarding the y
axis (B).

When I try to plot the formula for a constant p=77 let's say,

C=1:5:200;
figure(1);
plot(C,erlangb_iterative(77,C)  );
title ("Pblocking regarding telephone lines");

I get a wrong plot which "says" that the result B is constant and equals
almost 1, which is wrong.

Can you please provide advice on how to plot the formula?

Thanks!




--
Sent from: http://octave.1599824.n4.nabble.com/Octave-General-f1599825.html


Reply | Threaded
Open this post in threaded view
|

Re: How to plot ErlangB formula

Doug Stewart-4


On Sat, May 12, 2018 at 9:49 AM, mari_tsa <[hidden email]> wrote:

function B=erlangb_iterative(p,c)
 if ((floor(c) ~= c) || (c < 1))
    warning('n is not a positive integer');
    B=NaN;
    return;
 end;
 if (p < 0.0)
    warning('p is negative!');
    B=NaN;
    return;
 end;
    B=1;
    for k=1:c,
       B=((p*B)/k)/(1+p*B/k);
    end;
endfunction

Here is the formula I wrote in matlab/octave to calculate the Erlang-B
formula (the erlang B formula is referred to another post uploaded here. It
accepts 2 inputs p and c and produces a result B. with this kind of inputs

>> B=erlangb_iterative(77,1)
   B =  0.98718
>> B=erlangb_iterative(77,10)
   B =  0.87201
>> B=erlangb_iterative(77,80)
   B =  0.063644
>> B=erlangb_iterative(77,100)
   B =  0.0017401
>> B=erlangb_iterative(77,150)
   B = 5.9709e-14
>> B=erlangb_iterative(77,200)
   B = 9.1323e-32

I see that I get various results, which are not the same regarding the y
axis (B).

When I try to plot the formula for a constant p=77 let's say,

C=1:5:200;
figure(1);
plot(C,erlangb_iterative(77,C)  );
title ("Pblocking regarding telephone lines");

I get a wrong plot which "says" that the result B is constant and equals
almost 1, which is wrong.

Can you please provide advice on how to plot the formula?

Thanks!




--
Sent from: http://octave.1599824.n4.nabble.com/Octave-General-f1599825.html



try this for plotting 

Cc=1:200;
figure(1);

for C=1:200
q(C)=erlangb_iterative(77,C)
endfor
plot(Cc,q );

title ("Pblocking regarding telephone lines");


--
DASCertificate for 206392