forum.vnstele.com http://forum.vnstele.com/ |
|
Обговорення розрахунку першої формули Ерланга http://forum.vnstele.com/viewtopic.php?f=9&t=185 |
Сторінка 1 з 1 |
Автор: | Mykola Sheremeta [ 27 березня 2012, 17:14 ] |
Тема повідомлення: | Обговорення розрахунку першої формули Ерланга |
Питання розрахунку першої формули Ерланга ми уже торкалися в темі Завдання для виконання курсової роботи. В цій темі я пропоную детальніше обговорити проблеми розрахунку першої формули Ерланга. В багатьох студентів виникають проблеми при розраховуванні імовірнсоті втрат за дпомогою першої формули Ерланга. Якщо вас цікавить чому виникають такі проблеми, і як їх в прицнипі можна вирішити, то рекомендую почитати Обговорення розрахунку формули Пуассона. Я запропоную свій варіант функції яка обчислює імовірності втрат за допомогою першої формули Ерланга(функція написана в 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 Кб | Переглянуто 4200 разів ] П.С. Бажаю всім успішного виконання курсової роботи. |
Автор: | echern [ 28 березня 2012, 17:14 ] |
Тема повідомлення: | Re: Обговорення розрахунку першої формули Ерланга |
Невеличке доповнення до вище сказаного: Функція, що повертає масиви кількості ліній і імовірності втрат при фіксованому навантаженні Y, обчислене за І формулою Ерланга. Дозволяє обчислювати значення імовірності втрат навіть для дуже великих значень кількості ліній і інтенсивності навантаження. Код: % Обчислення за першою формулою Ерланга (рекурентне співвідношення) % Повертає два масиви значень: % Перший масив - кількість ліній, другий масив - імовірність втрат (при Y=const) % Вихідні дані: v - кінцеве значення кількості ліній, Y - інтенсивність навантаження function [vv Ev] = ErlangI_rec (v, Y) vv = 1:v; % Записуємо значення кількості ліній в масив 1. Ev(1,1)=Y/(1+Y); % Значення імовірності втрат для v=1, заданого Y. for k = 2:v % Цикл по кількості ліній Ev(k,1)=1/(1+(k/Y/Ev(k-1,1))); % Запис значення імовірності end return; Використання функції наступне: Код: [v1 EvR] = Erlang_rec (v, Yn); І графічна інтерпритація результату: Код: plot (v1, EvR, 'r*'); Ну а для більш наглядного і коректного виведення графіка Микола запропонував рішення |
Автор: | Oksana [ 28 березня 2012, 22:03 ] | ||
Тема повідомлення: | Визначення кількості ліній | ||
Євген Михайлович скажіть будьласка чому при вирахуванні p(k) в мене виходить 0 ? (N=1455) А також, вираховуючи кількість ліній в мене виходить E(v)=1 (при v=1, 10, 50…), а при v=0, то E(v)=7,8*10^-7 ?
|
Автор: | echern [ 29 березня 2012, 13:23 ] |
Тема повідомлення: | Re: Визначення кількості ліній |
Шановна Оксана, у Вас так виходить, туму що Ви припустилися грубої помилки . Інтенсивність навантаження від одного абонента не може бути більше 1 Ерл., а у Вас всі 288 Ерл. Вам потрібно перерахувати Y=Nct (всі величини привести до одного масштабу часу, бажано до години). |
Автор: | Oksana [ 29 березня 2012, 18:19 ] |
Тема повідомлення: | Re: Визначення кількості ліній |
echern написав: Шановна Оксана, у Вас так виходить, туму що Ви припустилися грубої помилки . Інтенсивність навантаження від одного абонента не може бути більше 1 Ерл., а у Вас всі 288 Ерл. Вам потрібно перерахувати Y=Nct (всі величини привести до одного масштабу часу, бажано до години). Якщо перевести все в години, тоді N=1455, c=3.6год., t=245секунд=4,08год. і, шукаючи Y=N*c*t=21371,04 Ерл |
Автор: | echern [ 29 березня 2012, 19:12 ] |
Тема повідомлення: | Re: Визначення кількості ліній |
Oksana написав: Якщо перевести все в години, тоді N=1455, c=3.6год., t=245секунд=4,08год. і, шукаючи Y=N*c*t=21371,04 Ерл Ха-ха-ха. Якщо 245 секунд - це чотири години, то далі можна нічого і не рахувати. (Хоча с - викликів/годину, а не години.) |
Автор: | ChesterUA [ 11 квітня 2012, 19:53 ] |
Тема повідомлення: | Re: Обговорення розрахунку першої формули Ерланга |
не вдається скористатися поданим алгоритмом,вибиває помилку ??? Undefined function or method 'firstErlang' for input arguments of type 'double'. підкажіть що робити |
Автор: | echern [ 11 квітня 2012, 21:14 ] |
Тема повідомлення: | Re: Обговорення розрахунку першої формули Ерланга |
В робочій папці має бути створений файл firstErlang.m, в якому і реалізована дана функція. А далі, як звичайно, виклик функції з аргументами в дужках. |
Сторінка 1 з 1 | Часовий пояс UTC + 2 годин [ DST ] |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |