Реферат: Изучение взаимно влияющих друг на друга математических параметров

ГОСУДАРСТВЕННАЯ АКАДЕМИЯ

СФЕРЫ БЫТА И УСЛУГ.

ИНСТИТУТ ЭКОНОМИКИ И УПРАВЛЕНИЯ.

КУРСОВАЯ РАБОТА.

Тема:”Изучение взаимно влияющих друг на

друга математических параметров”.

Выполнена студентом

Максименко Константином Викторовичем.

Группа ИД-1-1,

факультет ”Информационные системы

в экономике”.

Преподаватель:

Степанов Сергей Петрович.

Москва

1999

План работы:

1.Постановка задачи-стр.

2.Формализация задачи-стр.

3.Блок-схема программы-стр.

4.Листинг программы-стр.

5.Тестирование программы-стр.

1.Постановка задачи.

Очень часто при решении каких-либо задач на компьютере необ-

ходимо вычислять значения различных взаимозависимых переме-

нных. В частности, подобная задача может возникнуть при обра-

ботке экономической, производственной информации, вообще

любых данных, определяемых взаимозависимыми процессами.

Много подобных параметров в экономике.Для примера можно взять три основных рыночных показателя- спрос, предложение и

цену.В науке также немало взаимозависимых процессов. Именно поэтому столь большое значение будет иметь установление подоб-

ных взаимозависимостей. Поняв их, можно будет прогнозировать и будущее состояние системы этих параметров. А для рынка, для производства, для науки и многих других отраслей жизнедеятель-

ности человека такой прогноз развития просто необходим.

Поэтому в своей работе я решил исследовать данную область

компьютерных задач и понять механизм их решения в программ-

ном виде.

Для этого я взял небольшую задачу по прогнозу состояния

некоторой экосистемы.

Имеется зернохранилище с определённым изначальным количе-

ством зерна. Туда каждый сентябрь складывается урожай пшени-

цы и ежемесячно забирается некоторое количество зерна. Какую-

то массу зерна в конце года необходимо продать.

К сожалению, в зернохранилище водятся мыши. Если не контролировать их количество, они съедят всю пшеницу. Поэтому

туда пускают кошек, которые и должны уничтожать мышей. Но

мыши не исчезают полностью, а между количеством мышей и ко-

шек через некоторое время устанавливается равновесие. По задаче

требуется создать компьютерную модель данного равновесия при

наименьшем количестве мышей и наименьшем количестве кошек.

2.Формализация задачи.

Прежде всего, придётся ввести ряд ограничений- ведь модель и реальность- разные вещи. Основное ограничение- все процессы

в программе дискретны. Разумеется, в реальной жизни данные со-

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

дискретность.

Будем также считать, что запасы пшеницы пополняются лишь раз в году, в августе. Уменьшение идёт за счёт съеденного мышами зерна, за счёт зерна, ежемесячно забираемого из хранилища, а часть продаётся в декабре по усмотрению пользователя. В случае

если пшеница в хранилище кончается, то программа останавлива-

ется.

Каждая мышь съедает в месяц 2 кг зерна. Прирост их числа зависит от количества пшеницы в хранилище: если на мышь при-

ходится не менее двух кг зерна, то их популяция за месяц возрас-

тает в полтора раза. В противном случае прирост составит 10% в месяц. Естественная смерность мышей составляет 1/12 общего чи-

сла мышей в месяц, т.к. мышь живёт в среднем 1 год. Количество

уничтожаемых мышей определяется размером их популяции: ког-

да на одну кошку приходится более 60 мышей, то каждая кошка за месяц ловит в среднем по 40 мышей. При меньшем количестве

мышей один кот может поймать лишь 15 мышей в месяц. Полнос-

тью истребить мышей нельзя, т.к. при нулевом уровне мышиной

популяции с окрестных полей в хранилище за месяц приходит до 20 мышей.

Количество кошек также постоянно изменяется. При доста-

точном количестве мышей, т.е. более 60 мышей на кошку, каж-

дая кошка приносит в марте и в сентябре по 3 котёнка. Если мы-

шей меньше, чем по 20 на кошку, то прирост кошек равен нулю.

Если же значение мышиной популяции лежит между этими преде-

лами, то появляется всего 3-4 котёнка на всю кошачью популя-

цию. В случае полного отсутствия мышей в хранилище за месяц погибает 80% кошек. Естественная смертность среди кошек равна

1/120 части от их общего числа, если их более 120; иначе за ме-

сяц может умереть одна из кошек, то есть средняя продолжитель-

ность жизни кошки составляет около 10 лет. В случае гибели всех

кошек хозяева хранилища пускают туда определённое количество

кошек. Особую роль в определении числа кошек в хранилище иг-

рает так называемый предельно терпимое количество мышей- тот уровень их популяции, когда их количество начинает беспокоить хозяев зерна. В этом случае хозяева пускают внутрь хранилища некоторое дополнительное количество кошек и котов, в среднем по одному коту на 30 замеченных грызунов ежемесячно. Минима-

льно допустимое количество кошек- ещё один важный параметр. Он определяет сколько кошек нужно помещать в хранилище в случае их полного отсутствия там. Разумеется, чем больше значе-

ние данного параметра, тем больше затраты на их приобретение.

Правда, избыток кошек можно продать по установленной изнача-

льно цене.

Собственно говоря, все вышеперечисленные действия нуж-

ны для обеспечения максимальной сохранности урожая, а, следо-

вательно и для получения максимальной прибыли от продажи зер-

на. Цена на пшеницу определяется в начале каждого года. По ней в конце года продаётся необходимое количество зерна, определяе-

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

вателя.

Все процессы, описанные ранее, нуждаются в математичес-

кой формализации. Для пшеницы значимы 3 параметра: общее ко-

личество пшеницы в хранилище, ежемесячное изменение массы зерна и количество зерна, ежегодно выставляемое на продажу-

W, DW и WS соответственно. W меняется при прибавлении DW ежемесячно и при вычитании WS ежегодно, в декабре. DW в свою очередь изменяется ежемесячно, уменьшаясь из-за мышей, а так-

же увеличиваясь каждый год в августе, за счёт урожая. WS заново

устанавливается также ежегодно, в декабре, самим пользовате-

лем. Исключительным событием, прерывающим программу, для

W считается его неположительное значение- хозяева хранилища не проживут без запасов зерна.

Состояние мышиной популяции определяется более сложно.

Начальное количество определяется случайным образом на интер-

вале от 1 до 20 и обозначается символом M. Ежемесячное измене-

ние количества мышей DМ, от которого зависит М, в свою оче- редь определяется естественным приростом. Он описан выше, а математически выглядит следующим образом: если W >= 2M, то

DМ за данный месяц равно 1,5М. Если же W<2M, то DМ=0,1М.

Кроме того, DМ меняется под воздействием естественной смерт-

ности, составляющей ежемесячно 1/12 от М. Сильно влияет на по-

пуляцию грызунов и количество кошек в зернохранилище. Чем больше мышей приходится на кошку, тем больше их и погибает.

В формализованном виде это выглядит так: если М/С ( С-общее количество кошек и котов) больше 60, то за месяц гибнет 40*С мышей. Если М/С меньше или равно данному соотношению, то

ежемесячно уничтожается 15*С грызунов. Общее воздействие прироста, смертности и уничтожения мышей и определяет DМ.

DМ, в свою очередь, корректирует М.

Вершиной данной экологической пирамиды является популя-

ция кошек и котов в хранилище. Её состояние прямо зависит от численности мышей. Численность кошек С определяется как внут-

ренними параметрами- естественными смертностью и рождаемос-

тью,- но и внешним- субъективной оценкой целесообразности со-

держания данного числа мышеловов в хранилище, приводящей к покупке или продаже некоторого количества животных. И подчас решающим становится именно внешний, корректирующий равно-

весие между мышами и кошками, субъективный параметр. При

формализации характеристик популяции кошек нужно начать с определения минимально допустимого количества живущих в ам-

баре кошек. Это параметр внешний для этой экогруппы и опреде-

ляется он пользователем при оценке целесообразного размера ко-

шачьего присутствия в хранилище. Здесь допустим и нулевой уро-

вень, как наименее дешёвый. Но он же и наиболее рискованный ,

т.к. отсутствие кошек приведёт к всплеску численности мышей в амбаре. В математическом представлении он называется MNC.

Далее начинают действовать естественные, внутренние парамет-

ры, такие, как рождаемость и смертность кошек. Все эти парамет- ры составляют в суммарном воздействии Рождаемость зависит от количества мышей и в виде формул выглядит так: при M/C >60 DC=3C котят, при 20 < M/C < 40 DC=3 или 4 котёнка, при ещё меньшем – DС=0. Естественная смертность определяется общим количеством кошек. При С>=120 ежемесячно умирает С/120 ко-

шек, а при меньших значениях С – одна кошка или ни одной.Рас-

считать дополнительно необходимое количество мышеловов по-

могает предельно допустимое количество мышей – MN. Если

M > MN, то DС = DС + М/30, а DS = DS – ( М/30 ) * РС, где DS -

ежемесячное приращение годового дохода, а РС – цена одной кошки. Если же М<=MN, то DC= DC + ( МNС – С) и

DS=DS + PS * ( C – MNC ), т.е. количество кошек выравнивается по MNC с помощью продажи или покупки необходимого для это-

го числа кошек.

В конце программы высчитываются результаты взаимодейст-

вия всех экологических групп в кокретном финансовом выраже-

нии. Каждый декабрь программой выводится годовой баланс по-

купки и продажи кошек, прибыль от реализации зерна, проводи-

мой в том же месяце, а также общий доход хозяев хранилища. Об-

новляется и сумма общих денежных средств. Таким образом, сте-

пень оптимизации взаимовлияния и взаимоопределения парамет-

ров экологических групп прямо отражается на уровне доходов и расходов зерна и денежных средств.

Моя программа имеет, кроме того, обширные возможности для последующей модификации применительно к изменяемым па-

раметрам данной экосистемы. Можно, например, если возникнет такая необходимость, учесть множество новых характеристик с сохранением старых. Можно и сделать большинство изменяемых пользователем параметров более гибкими по времени и по состоя-

нию экосистемы. Ну и, разумеется, можно будет брать эту прог-

рамму за основу для составления новых программ, решающих другие задачи с взаимовлияющими математическими параметра-

ми.

Далее я приведу список переменных, использованных в программе :

BY – год начала прогнозирования ,

Y – текущий год прогноза ,

F – долгосрочность прогноза, лет,

MT – текущий месяц прогноза

BW – начальный запас зерна ,

W — общее количество зерна в хранилище,

H – ежегодный урожай пшеницы ,

DW – ежемесячное изменение общей массы зерна ,

J – рекомедуемая масса ежемесячно забираемой из хранилища пшеницы ,

DT – определяемое количество ежемесячно забираемого зерна в

зависимости от общей массы пшеницы ,

Т – реальное количество ежемесячно забираемой пшеницы ,

WS – масса зерна, продаваемого ежегодно ,

PW – цена продаваемого килограмма зерна ,

MN – предельно допустимое количество мышей в хранилище ,

DM – ежемесячное изменение популяции мышей ,

М – общая численность популяции мышей ,

MNC – минимально допустимое количество кошек ,

С – общее число кошек и котов в хранилище ,

DC – ежемесячное изменение популяции кошек и котов

РС – цена одной кошки ,

DS – ежемесячное изменение денежных запасов ,

S – общий годовой доход ,

ST – общая сумма денежных средств, обновляющаяся ежегодно ,

I – переменная-счётчик, осуществляющая остановку выполнения

программы.

4.Листинг программы.

'IMITATION OF <WHEAT-MICE-CATS> ECOSYSTEM

DEFDBL G-H, S

CLS

INPUT «Год начала наблюдений-»; by

INPUT «Количество лет наблюдений-»; f

INPUT «Начальная масса пшеницы в кг-»; bw

INPUT «Урожай пшеницы в кг-»; h

PRINT «Сколько кг зерна в месяц забирать?»

IF bw < h THEN j = bw / 8 ELSE j = h / 12

PRINT "(Желательно не брать больше"; INT(j); " кг)"

INPUT t

INPUT «Цена одной кошки в $-»; pc

INPUT «Минимально допустимое количество кошек»; mnc

INPUT «Предельно допустимое количество мышей-»; mn

PRINT

PRINT "(Все данные приводятся на конец текущего месяца)."

PRINT «YEAR=,MONTH=,WHEAT=,MICE=,CATS=,DWHEAT=,DMICE=,DCATS=»

PRINT "********************************************************"

st = 0: w = bw: m = INT(RND(1) * 20 + 1): y = 0: mt = 0: c = mnc

50 RANDOMIZE TIMER

mt = mt + 1

IF mt > 12 THEN s = 0 AND ws = 0

ds = 0

IF mt > 12 THEN y = y + 1

IF y > f THEN END

'ПРЕРЫВАНИЕ ПРОГРАММЫ

IF mt > 12 THEN PRINT "++++++++++++++++++++++++++++++++++++++++++++++++++++++"

IF mt > 12 THEN INPUT «Если введёте 999 то программа остановится-»; i

IF i = 999 THEN GOTO 3000

IF mt > 12 THEN mt = 1

IF mt = 1 THEN INPUT «Введите цену килограмма пшеницы в $-»; pw

'МЕСЯЦ СБОРА УРОЖАЯ ИЛИ НЕТ

dw = 0

IF mt = 8 THEN dw = dw + h ELSE dw = dw + 0

'ЕСТЕСТВЕННАЯ СМЕРТНОСТЬ МЫШЕЙ

dm = 0

dm = dm — 1 * INT(m / 12)

'ОПРЕДЕЛЕНИЕ КОЛ-ВА ПШЕНИЦЫ ЗА ВЫЧЕТОМ СЪЕД. МЫШАМИ

dw = dw — 2 * INT(m)

IF w <= 0 THEN END

'СКОЛЬКО ПШЕНИЦЫ ЗАБИРАЕТСЯ В МЕСЯЦ

IF w > t THEN dt = t ELSE dt = w

dw = dw — dt

'КОЛИЧЕСТВО МЫШЕЙ, СЪЕДЕННЫХ ЗА МЕСЯЦ

SELECT CASE INT(m)

CASE IS > 60 * c

dm = dm — 40 * c

CASE IS <= 60 * c

dm = dm — 15 * c

CASE 0

dm = dm + 0

END SELECT

'ПО КОЛ-ВУ ЗЕРНА ОПРЕДЕЛЯЕТСЯ ПРИРОСТ МЫШЕЙ

IF m <= w / 2 THEN dm = dm + INT(1.5 * m) ELSE dm = dm + INT(m / 10)

'ОПРЕДЕЛЯЕТСЯ НОВОЕ КОЛ-ВО МЫШЕЙ

m = m + dm

'ЕСТЕСТВЕНАЯ СМЕРТНОСТЬ КОШЕК

dc = 0

IF c > 120 THEN dc = dc — СINT(c / 120) ELSE dc = dc — CINT(RND(1))

IF c < 0 THEN c = 0

'ПРИРОСТ КОЛИЧЕСТВА КОШЕК

SELECT CASE mt

CASE 3, 9

GOSUB 1000

END SELECT

'ПРОДАЖА КОШЕК ЗА НЕНУЖНОСТЬЮ

IF m > mn THEN GOTO 80

60 dc = dc — c + mnc

70 ds = ds + pc * (c — mnc): GOTO 85

80 dc = dc + INT(m \ 30)

ds = ds — INT(m \ 30) * pc

85 s = s + ds

c = c + dc

'В СЛУЧАЕ ГИБЕЛИ ВСЕХ МЫШЕЙ ПРИХОДИТ ГРУППА МЫШЕЙ С ПОЛЯ

IF INT(m) <= 0 THEN m = INT(RND(1) * 20 + 1)

'ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА ПШЕНИЦЫ

w = w + dw

IF INT(w) < 0 THEN w = 0

IF INT(w) <= 0 THEN GOTO 3000

'ИНФОРМАЦИЯ, ВЫВОДИМАЯ НА ЭКРАН

PRINT «y=»; by + y; " ";

PRINT «mt=»; mt; " ";

PRINT «w=»; INT(w); " ";

PRINT «dw=»; INT(dw); " ";

PRINT «m=»; INT(m); " ";

PRINT «dm=»; INT(dm); " ";

PRINT «c=»; INT(c); " ";

PRINT «dc=»; INT(dc); " ";

PRINT «ds=»; ds

'СОБЫТИЯ ДЕКАБРЯ

IF mt = 12 THEN GOSUB 2500

GOTO 50

'ПРИРОСТ КОШЕК

1000 SELECT CASE INT(m)

CASE IS > 60 * c

dc = dc + 3 * c

CASE IS < 20

dc = dc + 0

CASE 0

dc = dc — .8 * c

CASE ELSE

dc = dc + СINT(RND(1)) + 3

END SELECT

RETURN

'СОБЫТИЯ ДЕКАБРЯ

2500 PRINT "*********************************************************"

'ОПРЕДЕЛЕНИЕ ГОДОВЫХ РАСХОДОВ НА КОШЕК

PRINT «Годовой доход от продажи кошек=»; INT(s); "$ "

'РЕАЛИЗАЦИЯ ЗЕРНА С УЧЁТОМ ГОДОВЫХ РАСХОДОВ

INPUT «Сколько кг пшеницы продать»; ws

'РАСЧЁТ ПРИБЫЛИ ОТ РЕАЛИЗАЦИИ ЗЕРНА И ИЗЛИШКА КОШЕК

dw = dw — ws

w = w + dw

ds = ws * pw

s = s + ds

st = st + s

'ГОДОВОЙ БАЛАНС

PRINT «Годовой доход с продажи зерна=»; pw * ws; "$ "

PRINT «Общий годовой доход=»; INT(s); "$"

PRINT «Общая накопленная сумма=»; INT(st); "$"

IF st < 0 THEN GOTO 3000

RETURN

3000 END

5.Тестирование программы.

В связи с тем, что программу протестировать очень сложно из – за большого количества взаимозависмых параметров, при те-

стировании, я использую реакцию программы на исключительные

значения. За год начала прогнозирования я беру 1999 г. Длитель-

ность прогнозирования определяю как равную двум годам. Для того, чтобы прекратить работу программы на прогнозировании второго года, необходимо соответствующим образом задать зна-

чения переменных BW, H и T. Например, чтобы запасы зерна ис-

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

16000 кг, H также равнялось 16 тоннам, а ежемесячно забиралось

2 тонны пшеницы ( т.е. Т = 2000 кг ).

И действительно программа нашла что, при “содействии” мышей

примерно в 250 кг съеденной за год пшеницы и при затратах на кошек ещё в 20 кг проданной, запасы зерна закончились в марте

второго года прогнозирования.Разумеется, вред, наносимый мышами не учитывать невозможно, но и учесть трудно, т.к. при определении изначального и переопределении нулевого уровня численности мышиной экогруппы используется генератор псевдослучайных чисел и циклическая инициация генератора – RND и RANDOMIZE соответственно. Но приблизительно срок должен совпадать.Кроме того, зная данные за какой – либо ме- сяц, можно по формулам подсчитать значения соответствующих параметров в следующем месяце. Допустим, что MNC=3, М в первом месяце прогноза = 27, а BW, H и T взяты из предыдущего примера. Предельно терпимое количество мышей я взял равным 5.

За месяц меняется только DM, а М остаётся постоянным.Поэтому

в начале месяца DM = 0, M = 27. Далее рассчитывается естест- венная убыль мышей DM = DM – INT ( M/12 ), т.е. DM = = 0 – INT ( 27/12 ) = 0 – 2 = -2. Потом считается естественный прирост DM = DM + INT ( 1.5*M ) = -2 + INT ( 40.5 ) = -2 + 40 =

= 38. В последнюю очередь считается количество уничтоженных

за месяц мышей: DM = DM – 15*C = 38 – 45 = — 7.

Именно эти данные при тестовом запуске выдала программа.

Таким образом, программа действительно годится для прогнози-

рования и изучения состояния системы взаимовлияющих матема-

тических параметров.

еще рефераты
Еще работы по информатике, программированию