Введение в анализ, синтез и моделирование систем



              

Этап 3. Построение алгоритма и программы моделирования


Возьмем для простоты режим моделирования, когда m, c - известны и постоянны, y - увеличивается на каждый следующий момент времени на 1%, а также рассмотрим наиболее простой алгоритм моделирования в укрупненных шагах.

  1. Ввод входных данных для моделирования: с=х(0) - начальный капитал; n - конечное время моделирования; m - коэффициент амортизации; s - единица измерения времени; y - инвестиции.
  2. Вычисление xi от i=1 до i=n по рекуррентной формуле, приведенной выше.
  3. Поиск стационарного состояния - такого момента времени j, 0
    j
    n, начиная с которого все хj, хj +1, :, хn постоянны или изменяются на малую допустимую величину ? >0.
  4. Выдача результатов моделирования и, по желанию пользователя, графика.

Алгоритм, записанный на учебном алгоритмическом языке, имеет вид

алг Производство (арг вещ m, c, n, рез вещ таб х[1:366], лит p, q); дано | производство с основными фондами, изменяющимися по закону: | х[i+1]=х[i]+y-mx[i], x[0]=c, i=0, 1, 2, :, n, 0<j<n, | t=i*h, h=1 - шаг по времени (день), | i - текущий момент времени, | m - коэффициент амортизации, | х[0]=с - заданная начальная величина капитала, | y - увеличиваемая на 1% каждый раз величина инвестиций надо | промоделировать динамику основных фондов, т.е. выяснить: | 1) чему они равны на момент времени n; | 2) наступает ли гибель предприятия, т.е. обращается ли капитал | (основные фонды) в нуль при некотором t, и найти это t; | 3) наступает ли ситуация, когда капитал стабилизируется нач | начало тела алгоритма | описание типов переменных цел i, | i - переменная цикла прогноза (текущее время) j, | j - задаваемая величина лага k, | k - момент гибели предприятия (если есть) y | y - величина инвестиций, увеличиваемая по закону y:=1.01*y ввод (m, n, c, y) | ввод исходных данных p:='предприятие не гибнет' | задаем начальное значение s q:='капитал не стационарен' | задаем начальное значение q х[0]:=с | начальное значение капитала (не нулевое) i:=0 | задаем начальный момент времени моделирования нц пoка (i<=n) и (х[i]>0) | заголовок цикла прогноза капитала | тело цикла прогноза капитала х[i+1]=х[i]+y-mx[i] | вычисление прибыли в следующий момент y:=1.01*y | и увеличиваем на 1% - для следующего момента если х[i+1]<=0 | проверка гибели то | если гибнет, - выполняется блок погибшего предприятия p:="предприятие гибнет" | заменяем значение s k:=i-1 | и фиксируем время гибели нц для j от k до n | цикла вычисления всех x[j]=0 | остальных, нулевых значений прибыли кц | конец блок обработки погибшего предприятия если х[i+1]=х[i] | проверка стационарности прибыли то q:="капитал стационарен" | заменяем старое значение q кц кон.

Приведем программу на Паскале для имитационного моделирования (программа реализована для функции типа y=at+b, где a, b - коэффициенты потока инвестиций; структурированность и интерфейс программы "принесены в жертву" компактности, простоте и понятности программы).




Содержание  Назад  Вперед