Смекни!
smekni.com

работа по дисциплине «Имитационное моделирование экономических процессов» (стр. 2 из 2)

hAxes=axes('Parent',hFig,'Color',[1 1 1],...

'Units','pixels','Position',[30 40 960 230],...

'FontSize',10);

xlabel('Time');

%---------- Описание компонентов для ввода данных

hEditn=uicontrol (hFig,'Style','edit',...

'BackgroundColor',[1 1 1],...

'Position',[190 380 50 20]);

hEditl=uicontrol (hFig,'Style','edit',...

'BackgroundColor',[1 1 1],...

'Position',[190 350 50 20]);

hEditm=uicontrol (hFig,'Style','edit',...

'BackgroundColor',[1 1 1],...

'Position',[190 320 50 20]);

hEditstat=uicontrol (hFig,'Style','edit',...

'BackgroundColor',[1 1 1],...

'Position',[400 320 50 20]);

%---------- Описание компонентов для отображения текстовой информации

hTxt1=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[10 380 180 15],...

'HorizontalAlignment','left',...

'String','Количество заявок');

hTxt2=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[10 350 180 15],...

'HorizontalAlignment','left',...

'String','Интенсивность потока отказов: ');

hTxt3=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[10 320 180 15],...

'HorizontalAlignment','left',...

'String','Интенсивность восстановления:');

hTxt4=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0 0 0],...

'Position',[250 275 1 125]);

hTxt5=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[260 340 200 50],...

'HorizontalAlignment','Center',...

'String','Проведение последовательности экспериментов с целью выявления средних значенй:');

hTxt6=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[490 370 140 20],...

'HorizontalAlignment','left',...

'String','-заявки получившие отказ');

hTxt7=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0 0 0],...

'Position',[460 275 1 125]);

hTxt8=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[470 380 15 15],...

'HorizontalAlignment','left',...

'FontSize',20,'ForegroundColor',[1 0 0],...

'String','*');

hTxt9=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[470 360 100 15],...

'HorizontalAlignment','left',...

'String','1-Система занята');

hTxt10=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[470 325 150 35],...

'HorizontalAlignment','left',...

'String','0.5-Система находиться в режиме ожидания');

hTxt11=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[260 320 135 15],...

'HorizontalAlignment','left',...

'String','Число прогонов системы:');

hTxt7=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0 0 0],...

'Position',[650 275 1 125]);

%---------- Описание компонентов-кнопок

hButStart=uicontrol (hFig,'Style','pushbutton',...

'Position',[190 290 50 20],...

'String','Начать',...

'Callback','dimon');

hButStart=uicontrol (hFig,'Style','pushbutton',...

'Position',[400 290 50 20],...

'String','Старт',...

'Callback','dimonstat');

5.2 Dimon.mat

function dimon;

global hAxes hEditn hEditl hEditm n

global hTxt1 hTxt2 hTxt3 hTxt4

%-----------Получаем информацию с полей ввода данных-----------

strn=get(hEditn,'String');

strl=get(hEditl,'String');

strm=get(hEditm,'String');

%-----------Конвертируем строковые переменные в числовые-------

n=str2num(strn);

l=str2num(strl);

m=str2num(strm);

%----------- Имитационная модель одноканальной СМО-------------

T(1)=0;

otkaz=0;

prinat=0;

axes(hAxes);

cla;

xlabel('Time');

plot([0,0],[0.4,0.4]);

f=true;

for i=1:1:n

hold on;

z(i)=-1/l*log(rand);

s(i)=-1/m*log(rand);

if f

konec=T(i)+s(i);

line([T(i),T(i)],[0.5,1]);

line([T(i),konec],[1,1]);

line([konec,konec],[1,0.5]);

end

T(i+1)=T(i)+z(i);

if (T(i+1)<konec)

otkaz=otkaz+1;

plot(T(i+1),1.05,'r*');

f=false;

else

prinat=prinat+1;

line([konec,T(i+1)],[0.5,0.5]);

f=true;

end; end;

5.3 dimonstat.mat

function dimonstat;

global hFig hAxes hEditn hEditl hEditm hEditstat

global hTxt1 hTxt2 hTxt3 hTxt4 htxt12

%-----------Получаем информацию с полей ввода данных-----------

strn=get(hEditn,'String');

strl=get(hEditl,'String');

strm=get(hEditm,'String');

strstat=get(hEditstat,'String');

%-----------Конвертируем строковые переменные в числовые-------

n=str2num(strn);

l=str2num(strl);

m=str2num(strm);

stat=str2num(strstat);

%----------- Имитационная модель одноканальной СМО-------------

h=waitbar(0,'Please, wait until data proccesing...');

for k=1:1:stat

waitbar(k/stat,h);

T(1)=0;

otkaz=0;

prinat=0;

f=true;

for i=1:1:n

hold on;

z(i)=-1/l*log(rand);

s(i)=-1/m*log(rand);

if f

konec=T(i)+s(i);

end

T(i+1)=T(i)+z(i);

if (T(i+1)<konec)

otkaz=otkaz+1;

f=false;

else

prinat=prinat+1;

f=true;

end;

end;

udacha(k)=prinat;

neudacha(k)=otkaz;

end;

close(h);

axes(hAxes);

cla;

hTxt12=uicontrol (hFig,'Style','Text',...

'BackgroundColor',[0.8 0.8 0.8],...

'Position',[660 270 300 120],...

'HorizontalAlignment','left',...

'String',['В ходе проведения имитационного моделирования выявлено, что среднее число обсуженыых заявок =' num2str(sum(udacha)/k)...

', среднее число заявок, получивших отказ, =' num2str(sum(neudacha)/k)...

'. Коэффициент готовности ситемы равняется ' num2str(sum(udacha)/(sum(udacha)+sum(neudacha)))...

'. Среднее время осбуживание: ' num2str(sum(s)/n)]);

try

plot(udacha);

catch

errordlg('Пожалуйста, укажите число прогонов системы','ErrorMessage');

end

end

6. Заключение

Если не можете добиться результата,

имитируйте кипучую деятельность

и бешеную активность.

(Из законов Мэрфи: следствие Эндрю)

Имитационные моделирование на сегодняшний день является мощным средством для анализа в случае, когда невозможно, либо слишком дорого проведение опытов на реальном объекте. Также имитационное моделирование показывает свое преимущество над аналитическим решением задачи, в случае, когда присутствует фактор времени, сложные причинные связи, случайные переменные.

Имитационное моделирование позволяет имитировать поведение системы, во времени. При чём плюсом является то, что временем в модели можно управлять: замедлять в случае с быстропротекающими процессами и ускорять для моделирования систем с медленной изменчивостью.

Таким образом имитация является востребованным методом моделирования в различных областях деятельности.

7. Список используемой литературы

1. Кельтон В.Д., Лоу А.М. “Имитационное моделирование. Классика CS.” 3-е изд. - СПб.: Питер

2. Мартынов. Н.Н. “Введение в MATLAB 6.x” –Кудиц-Образ: Москва 2002

3. http://matlab.exponenta.ru/