Питання розрахунку першої формули Ерланга ми уже торкалися в темі
Завдання для виконання курсової роботи.
В цій темі я пропоную детальніше обговорити проблеми розрахунку першої формули Ерланга.
В багатьох студентів виникають проблеми при розраховуванні імовірнсоті втрат за дпомогою першої формули Ерланга.
Якщо вас цікавить чому виникають такі проблеми, і як їх в прицнипі можна вирішити, то рекомендую почитати
Обговорення розрахунку формули Пуассона.
Я запропоную свій варіант функції яка обчислює імовірності втрат за допомогою першої формули Ерланга(функція написана в MATLAB):
Код:
function mass=firstErlang(Y,V)
for v=0:V
for k=0:v
if k==0
erlang=(Y^k)/factorial(k);
else
erlang=(erlang*Y)/k;
end
mass1(k+1)=erlang;
end
mass(v+1)=mass1(v+1)/sum(mass1);
end
return
Вхідними значеннями для цієї функції є інтенсивність поступаючого навантаження Y, та кількість ліній V які це навантаження обслуговують.
Повертає ця функція масив з V+1 елементів:
Елемент масиву з індексом (1) рівний імовірності втрат при обслуговуванні поступаючого навантаження пучком з V=0 ліній. Елемент масиву з індексом (2) рівний імовірності втрат при обслуговуванні поступаючого навантаження пучком з V=1 ліній, і так аж до: елемент з індексом (V+1) рівний імовірності втрат при обслуговуванні поступаючого навантаження пучком з V ліній. ( це V і є тим вхідним значенням кількості ліній яке ви задаєте).
Якщо хочете дізнатись як користуватись цією функцією, то я рекомендую почитати
Як користуватись функцією написаною користвувачем в MATLAB?Також, я запропуную алгоритм який будує графік за допомогою цієї функції:
Код:
%######## Вихідні дані ##########
ac=4.1; % середня кількість викликів від абонента за одиницю часу;
at=250/3600; % середня тривалість зайняття викликом КС;
N=717; % кількість джерел навантаження
Pb=0.01; % допустима імовірність втрат( це буде як бонус: якщо ви введете тут своє значення, то одразу ще й попудується лінія з ординатою рівною %вашій допустимій імовірності втрат);
V=1000;
Y=ac*at*N;
%################################
mass=firstErlang(Y,V);
for k=0:V
if mass(k+1)>=0.10
ymax=mass(k+1);
else
xmin=k-1;
break
end
end
for k=0:V
if mass(k+1)>=0.001
ymin=mass(k+2);
else
xmax=k;
break
end
end
V=0:V;
graf=plot(V, mass);
axis([xmin,xmax,ymin,ymax]);
set(graf,'LineWidth',2,'Color',[1 0 0]);
hold on;
%#### Цього не слід писати якщо не хочете будувати прямої яка #####
%######## відповідає вашій допустимій імовірності втрат ###########
Pb=[Pb,Pb]; x=[xmin,xmax];
graf1=plot(x,Pb);
set(graf1, 'LineWidth',1,'Color',[0 0 1]);
%##################################################################
xlabel('V, кількість ліній'); ylabel('Ev(Y), імовірність втрат');
title('Графік залежності Ev(Y) від кількості ліній V'); grid on;
Особливістю побудованого графіка буде те, що межі побудови виберуться автоматично з міркувань реальних втрат КС, тобто діапазон імовірностей втрат на цьому графіку буде рівний 10%-0.1%. Це придумано для того, щоб легше було користуватись графічним методом розрахунку куількості ліній, які забезпечують потрібну якість обслуговування. Якщо вам все ж не потрібно такого, то просто в тексті програми знайдіть рядок "axis([xmin,xmax,ymin,ymax]);" без лапок та видаліть його. Доречі, якщо ви відмовляєтесь від встановлення цих меж, то вам слід відмовитись і від побудови лінії, яка відповідатиме вашій допустимій імовірності втрат, принаймні, запропонованим мною методом.
Для того, щоб переконати всіх, що все працює, наведу отриманий результат:
Приєднання файлів:
Ev(Y) від V.png [ 22.65 Кб | Переглянуто 3562 разів ]
П.С. Бажаю всім успішного виконання курсової роботи.
