175
004 К63 В.В. ЕГОРОВ В .А. КРИВОРУЧКО Н.Н. ШПИГАРЬ О.П. ЗАРЕЧНАЯ ч, КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ НОВОСИБИРСК ОАО "НОВОСИБИРСКОЕ КНИЖНОЕ ИЗДАТЕЛЬСТВО"

КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

004К63

В.В. ЕГОРОВ В .А. КРИВОРУЧКОН.Н. ШПИГАРЬО.П. ЗАРЕЧНАЯ

ч ,

КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ

НОВОСИБИРСКОАО "НОВОСИБИРСКОЕ КНИЖНОЕ ИЗДАТЕЛЬСТВО"

Page 2: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

г!

0 0 4р е ъ

Егоров В.В., Криворучко В Л , Шпигарь Н.Н., Заречная ОЛ.

КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ

ИНовосибирск

Новосибирское книжное издательство 2009

Page 3: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

УДК 004.94(07) ББК 32.973в6я7

Е 30 Егоров В.В., Криворучко В.В., Шпигарь Н.Н., Заречная О.П.Компьютерное моделирование и вычислитель­ный эксперимент. — Новосибирск: ОАО «Ново­сибирское книжное издательство», 2009. — 173 с.

ISBN 978-5-7620-1361-1

В книге рассматривается моделирование как один из ос­новных методов познания, предлагается классификация инфор­мационных моделей и их типы, проводится исследование инфор­мационных моделей и вычислительный эксперимент на компью­тере из различных предметных областей (физики, экологии, био­логии, экономики и др.). Построение компьютерных моделей ре­шаемых примеров и задач проводится в трех средах: с использо­ванием языка Visual Basic, в электронных таблицах MS Excel и Visual Basic for Applications.

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

УДК 004.94(07) ББК 32.973в6я7

Рецензенты

5^°

Кариев С.К., д-р пед. наук, профессор; Брейдо И.В., д-р техн. наук, профессор

ISBN 978-5-7620

С.Торайғыроа атындағы ПМУ-лің

академик С.Бейсем^- этындағы ғылымм

КІТАПХАНАО1361 - 1 © Егоров В.В., Криворучко В.А.,

Шпигарь Н.Н., Заречная О.П., 2009 ОАО «Новосибирское книжное издательство», 2009

Page 4: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Введение

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

Компьютерное моделирование — это новый и довольно сложный курс в цикле информационных дисциплин, т.к. он является междисциплинарным. Для его успешного освоения требуется наличие самых разнообразных знаний в выбран­ной предметной области. Если мы моделируем физические процессы, то должны обладать определенным уровнем зна­ния законов физики, моделируя экологические процессы — биологических законов, моделируя экономические процес­сы — знанием законов экономики, кроме того, т.к. компью­терное моделирование базируется на математическом аппа­рате, предполагается знание основных математических дис­циплин. Для решения математических задач на компьютере необходимо владеть численными методами. И, конечно же, предполагается свободное владение современными инфор­мационными технологиями, знание языков программирова­ния.

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

3

Page 5: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

тельный эксперимент имеет ряд преимуществ перед так на­зываемым натурным экспериментом:

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

— существенное сокращение временных затрат на экс­перимент;

— возможность свободного управления параметрами, произвольного их изменения, вплоть до придания им нереальных, неправдоподобных значений;

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

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

4

Page 6: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ

1. Моделирование как метод познания. Формализация

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

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

Модели и моделирование применяются по следующим основным и важным направлениям:

- Обучение (как моделям, моделированию, так и самих моделей).

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

5

Page 7: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

- Прогнозирование (выходных данных, ситуаций, со­стояний системы).

- Управление (системой в целом, отдельными подсис­темами системы, выработка управленческих решений и стратегий).

- Автоматизация (системы или отдельных подсистем системы).

Слово «модель» происходит от латинского modus (ко­пия, образ, очертание).

Модель несет системообразующую и смыслообразую­щую роль в научном познании. Каждый объект имеет большое количество различных свойств. Модель стремится как можно более ярко выразить структуру явления, его главные аспекты, является концентрированным выражени­ем сущности предмета или процесса, выделяя только его основные черты. Знания — это модели окружающего мира, фиксируемые человеком в его мозге или на технических но­сителях. Модели обладают повышенной наглядностью, вы­деляя главные аспекты сущности, и активно используются в процессах познания и обучения. Так, модель самолета должна иметь геометрическое подобие оригиналу, модель атома — правильно отражать физические взаимодействия, архитектурный макет города — ландшафт и т.д.

Таким образом, моделирование — это метод познания, состоящий в создании и исследовании моделей. При моде­лировании происходит замещение некоторого объекта А другим объектом Б. Замещаемый объект А называется ори­гиналом, или объектом моделирования, а замещающий Б — моделью.

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

6

Page 8: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ние некоторых свойств оригинала, когда натуральный экс­перимент невозможен, дорог, опасен, долговременен.

Например, поскольку исследование Луны небезопасно для человека, то используют Луноход как модель исследо­вателя. Поскольку эксперимент над экономикой страны до­рог по своим последствиям, то используют математическую модель экономики для изучения последствий управляющих решений. Поскольку процесс обработки металлов взрывом скоротечен во времени, то его изучают на модели в увели­ченном масштабе времени, а процесс коррозии — в умень­шенном, атом — в увеличенном масштабе пространства, а космогонические процессы — в уменьшенном масштабе пространства. Поскольку при проектировании объекта он попросту не существует, то исследование его будущих свойств ведется на модели.

Однако разные науки исследуют объекты и процессы под разным углом зрения и строят различные типы моделей. В физике изучаются процессы взаимодействия и движения объектов, в химии — их внутреннее строение, в биоло­гии — поведение живых организмов и т.д.

Возьмем в качестве примера человека, в разных науках он исследуется в рамках различных моделей. В рамках ме­ханики его можно рассматривать как материальную точку, в химии —ч как объект, состоящий из различных химических веществ, в биологии — как систему, стремящуюся к само­сохранению и т.д.

С другой стороны, разные объекты могут описываться одной моделью. Так, в механике различные материальные тела (от планеты до песчинки) могут рассматриваться как материальные точки.

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

7

Page 9: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Приведем некоторые основные определения:Формализация — процесс построения информацион­

ных моделей с помощью формальных языков.Объект — некоторая часть окружающего мира, рас­

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

Параметр — признак или величина, характеризующая какое-либо свойство объекта и принимаемая различные значения.

Среда — условие существования объекта.Операция — действие, изменяющее свойство объекта.Система — совокупность взаимосвязанных объектов,

воспринимаемая как единое целое.Структура — состав системы, свойства её элементов,

их отношения и связи между собой.

Основные требования к модели

1. Полнота модели должна быть такой, чтобы имелась возможность получить набор оценок характеристик систем S с требуемой точностью и достоверностью.

2. Модель должна быть гибкой, чтобы пользователь имел возможность воспроизводить различные ситуации пу­тем изменения структуры, алгоритмов и параметров систе­мы.

3. Длительность разработки и реализация модели боль­шой системы должна быть по возможности минимальной. При этом должны учитываться ограничения на имеющиеся ресурсы (время, финансирование, вычислительная техника).

4. Структура модели должна быть блочной и модуль­ной, т.е. модель должна допускать возможность добавления, замены и исключения некоторых частей без изменения всей системы.

Page 10: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

5. Информационное обеспечение модели должно давать возможность пользователю эффективно работать с БД сис­тем некоторого определенного класса.

6. Программные и технические средства должны обес­печивать эффективную машинную реализацию модели и удобный интерфейс для пользователя (критерием эффек­тивности может быть быстродействие компьютера и затра­ты памяти).

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

Модель всегда строится с определенной целью, которая оказывает влияние на то, какие свойства объективного яв­ления оказываются существенными, а какие — нет. Модель представляет собой как бы проекцию объективной реально­сти под определенным углом зрения. Иногда, в зависимости от целей, можно получить ряд проекций объективной ре­альности, вступающих в-противоречие. Это характерно, как правило, для сложных систем, у которых каждая проекция выделяет существенное для определенной цели из множест­ва несущественного.

Целью моделирования является получение, обработка, представление и использование информации об объектах, которые взаимодействуют между собой и внешней средой; модель здесь выступает как средство познания свойств и закономерности поведения объекта.

Моделирование является неотъемлемым компонентом общечеловеческой культуры и мощным методом познания. В науке «Информатика» из всех видов моделирования до­минируют информационное и компьютерное математиче­ское моделирование. Именно появление компьютерной тех­ники дало ощутимый толчок развитию вычислительной ма­

9

Page 11: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

тематики и компьютерного математического моделирова­ния.

Математическая модель выражает существенные черты объекта или процесса языком уравнений и других матема­тических средств. Собственно говоря, сама математика обя­зана своим существованием тому, что она пытается отра­зить, т.е. промоделировать, на своем специфическом языке закономерности окружающего мира.

Компьютеры при математическом м од елировани и ис­пользуются не только для численных расчетов, но и для аналитических преобразований. Результат аналитического исследования математической модели часто выражен столь сложной формулой, что при взгляде на нее не складывается восприятие описываемого ею процесса. Эту формулу нужно протабулировать, представить графически, проиллюстриро­вать в динамике, т.е. проделать то, что называется «визуа­лизацией абстракций». При этом компьютер — незамени­мое техническое средство.

Процесс моделирования состоит из трех стадий:- формализации (переход от реального объекта к моде­

ли);- моделирования (исследование и преобразования мо­

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

в область реальности).

Формализация

Моделирование

Интерпретация

ЭкспериментСинтезАнализ

Изучениемодели

10

Page 12: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Таким образом, можно сделать вывод, что модель не­обходима для того, чтобы:

1. Понять, как устроен конкретный объект — каковы его структура, основные свойства, законы развития и взаи­модействие с окружающим миром.

2. Научиться управлять объектом или процессом и оп­ределить наилучшие способы управления при заданных це­лях и критериях (оптимизация).

3. Прогнозировать прямые или косвенные последствия реализации заданных способов и форм воздействия на объ­ект.

Вопросы1. В каких случаях используется моделирование?2. Что такое модель?3. Может ли объект иметь несколько моделей? Приведи­

те пример.4. Могут ли различные объекты описываться одной и той

же моделью? Если да, приведите пример.5. Что представляет собой процесс моделирования?6. Перечислите основные требования, предъявляемые к

модели.

2. Классификация моделей

Виды классификации распространяются по признакам:1. По области использования:— учебные — используются при обучении;— опытные — это уменьшенные или увеличенные ко­

пии проектируемого объекта. Используют для исследования и прогнозирования его будущих характеристик;

— игровые — репетиция поведения объекта в различ­ных условиях;

11

Page 13: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

- имитационные — отражение реальности в той или иной степени (это метод проб и ошибок);

- научно-технические — создаются для исследования процессов и явлений.

2. По учету в модели временного фактора:- динамические модели — описывают процессы изме­

нения и развития системы (изменения объекта во времени). Примеры: описание движения тел, развития организмов, процесс химических реакций;

- статистические модели — описывают состояние системы в определенный момент времени (единовременный срез информации по данному объекту). Примеры моделей: классификация животных, строение молекул, список поса­женных деревьев, отчет об обследовании состояния зубов в школе и т.д.

3. По отрасли знаний — это классификация по отрасли деятельности человека: биологические, исторические, со­циологические и др.

4. По способу представления моделей:- материальные (предметные): натурные, физические,

математические. Это предметные (физические) модели. Они всегда имеют реальное воплощение. Отражают внешнее свойство и внутреннее устройство исходных объектов, суть процессов и явлений объекта-оригинала. Это эксперимен­тальный метод познания окружающей среды. Примеры: детские игрушки, скелет человека, чучело, макет солнечной системы, школьные пособия, физические и химические опыты.

- информационные: наглядные, знаковые, математиче­ские. Не имеют реального воплощения. Их основу составля­ет информация. Это теоретический метод познания окру­жающей среды.

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

12

Page 14: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

форме. Модели информационные представляют объект и процессы в форме рисунков, схем, чертежей, таблиц, фор­мул, текстов и т.д. В школе вы часто используете такие мо­дели* как: карта и глобус (география), муляжи, рисунок цветка (биология), периодическая система элементов Д.И. Менделеева и модели кристаллических решеток (химия), электрическая схема (физика), блок-схема алгоритма (ин­форматика), формула (математика) и т.д.

Материальные натурные модели — это реальные объ­екты, процессы и системы, над которыми выполняются экс­перименты научные, технические и производственные.

Материальные физические модели — это макеты, му­ляжи, воспроизводящие физические свойства оригиналов (кинематические, динамические, гидравлические, тепловые, электрические, световые модели).

Материальные математические dst это аналоговые, структурные, геометрические, графические, цифровые и ки­бернетические модели.

Информационные наглядные модели — это схемы, кар­ты, чертежи, графики, графы, аналоги, структурные и гео­метрические модели.

Информационные знаковые модели — это символы, ал­фавит, языки программирования, упорядоченная запись, то­пологическая запись, сетевое представление.

Информационные математические модели — это ана­литические, функциональные, имитационные, комбиниро­ванные модели.

В приведенной классификации некоторые модели име­ют двойное толкование (например — аналоговые). Все мо­дели, кроме натурных, можно объединить в один класс мысленных моделей, т.к. они являются продуктом абст­рактного мышления человека.

Остановимся на одном из наиболее универсальных ви­дов моделирования — математическом, ставящим в соот-

13

Page 15: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

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

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

Вопросы

1. Какие классы моделей существуют?2. По каким признакам можно классифицировать моде­

ли?3. Какие модели относятся к классу материальных на­

турных, физических, математических моделей?4. Какие модели относятся к классу информационных

наглядных, знаковых, математических моделей?5. В чем смысл математического моделирования?6. Приведите примеры применяемых в вашей школе

учебных моделей.7. Можно ли стратегическую компьютерную игру на­

звать игровой моделью? Чему учат такие игры?

14

Page 16: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

3. Информационное моделирование

Информационные модели отражают процессы возник­новения, передачи, преобразования и использования ин­формации в системах различной природы.

Экземпляром будем называть представление предмета реального мира с помощью некоторого набора его характе­ристик, существенных для решения данной информацион­ной задачи (служащей контекстом построения информаци­онной модели). Множество экземпляров, имеющих одни и те же характеристики и подчиняющихся одним и тем же правилам, называется объектом.

Таким образом, объект есть абстракция предметов ре­ального мира, объединяемых общими характеристиками и поведением.

Информационная модель какой-либо реальной системы состоит из объектов. Каждый объект в модели должен быть обеспечен уникальным и значимым именем (а так же иден­тификатором, служащим ключом для указания этого объек­та, связи его с другими объектами модели). Таким образом, обозначение, наименование объекта — это элементарная процедура, лежащая в основе информационного моделиро­вания.

Абстракция Студент

Имя, фамилияФакультет, специальностьКурсГруппаАдрес

Рис. 1. Пример абстрагирования при построении информа­ционной модели

15

Page 17: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Объект представляет собой один типичный (но не оп­ределенный) экземпляр чего-то в реальном мире и является простейшей информационной моделью.

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

- реальные объекты;- роли;- события;- взаимодействия;- спецификации.Реальный объект — это абстракция физически сущест­

вующих предметов. Например, на автомобильном заводе это кузов автомобиля, двигатель, коробка передач; при пе­ревозке грузов это контейнер, средство перевозки.

Роль — абстракция цели и назначения человека, части оборудования или учреждения (организации). Например, в университете как в учебном заведении это студент, препо­даватель, декан; в университете как в учреждении это при­емная комиссия, отдел кадров, бухгалтерия, деканат.

Событие — абстракция чего-то случившегося. Напри­мер, поступление заявления в приемную комиссию универ­ситета, сдача экзамена.

Взаимодействия — объекты, получаемые из отноше­ний между другими объектами. Например, сделка, заключе­ние договора между двумя сторонами, свидетельство об об­разовании.

Объекты спецификации используются для представле­ния правил, стандартов или критериев качества. Например, перечень знаний, умений и навыков выпускника математи­ческого факультета, рецепт приготовления фотопленки.

Дня каждого объекта должно существовать его описа­ние — короткое информационное утверждение, позволяю­щее установить, является ли некоторый предмет экземпля­ром объекта или нет. Например, описание объекта «абиту-

16

Page 18: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

риент университета» может быть следующим: человек в возрасте до 35 лет, имеющий среднее образование, подав­ший в приемную комиссию документы и заявление о прие­ме. у

Предметы реального мира имеют характеристики (та­кие, например, как имя, название, регистрационный номер, дата изготовления, вес и т. д.). Каждая отдельная характери­стика, общая для всех экземпляров объекта, называется ат­рибутом. Для каждого экземпляра атрибут принимает оп­ределенное значение. Так, объект Книга имеет атрибуты: Автор, Название, Год издания, Число страниц.

У каждого объекта должен быть идентификатор — множество из одного или более атрибутов, значения кото­рых определяют каждый экземпляр объекта. Для Книги ат­рибуты Автор и Название совместно образуют идентифика­тор. В то же время Год издания и Число страниц идентифи­каторами быть не могут, так как не определяют объект. Объект может иметь и несколько идентификаторов, каждый из которых составлен из одного или нескольких атрибутов. Один из них может быть выбран как привилегированный для соответствующей ситуации.

Объект может быть представлен вместе со своими ат­рибутами несколькими различными способами. Графически объект может быть изображен в виде рамки, содержащей имя объекта и имена атрибутов. Атрибуты, которые состав­ляют привилегированный идентификатор объекта, могут быть выделены (например, символом * слева от имени ат­рибута):

Книга* Автор* Название Год издания Количество страниц С.Торайғыров

Рис. 2. Графическое представление о& |екійТЫНАағы ПМУ-лің(академик С.Бейсем*'

17 I зтындағы ғылыми

ь

Page 19: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

В эквивалентном текстовом представлении это может иметь следующий вид: Книга (Автор, Название, Год изда­ния, Количество страниц).

Привилегированный идентификатор подчеркивается.Можно классифицировать атрибуты по принадлежно­

сти к одному из трех различных типов:- описательные;- указывающие;

вспомогательные.Описательные атрибуты представляют факты, внут­

ренне присущие каждому экземпляру объекта. Если значе­ние описательного атрибута изменится, это говорит о том, что некоторая характеристика экземпляра изменилась, но сам экземпляр остался прежним.

Указательные атрибуты могут использоваться как идентификаторы экземпляра. Если значение указывающих атрибутов изменится, то это говорит лишь о том, что новое имя дается тому же самому экземпляру.

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

Рассмотрим пример:Автомобиль: *гос.номер, *марка, цвет, владелецАтрибут «цвет» является описательным, атрибуты

«гос.номер» и «марка»— указательными, атрибут «владе­лец» — вспомогательным, служащим для связи экземпляра объекта Автомобиль с экземпляром объекта Автолюбитель. Если значение вспомогательного атрибута изменится, это говорит о том,\что теперь другие экземпляры объектов свя­заны между собой.

Таким образом, информационная модель — набор ве­личин, характеристик, закономерностей, содержащих необ­ходимую информацию об объекте, процессах, явлении, си­туациях и т.п.

18

Page 20: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Вопросы1. Что гакое объект?2. Перечислите категории объектов и их характеристики.3. Что такое идентификатор объекта?4. Приведите пример объекта, перечислите его атрибуты.5. Какие существуют способы представления объектов?6. Что гакое информационная модель.7. Школьные учебники истории содержат схемы воен­

ных сражений. Можно ли их нажать моделями? К ка­кому гипу моделей их можно отнести?

8. Что такое математическая модель? Приведите приме­ры.

9. Можно ли назвать поясняющий чертеж к задаче моде­лью? Поясните ответ.

4. Основные типы информационных моделей (табличные, иерархические, сетевые)

4.I. Табличные информационные моделиОдним из наиболее часто встречающихся типов ин­

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

В этой интерпретации каждый экземпляр объекта явля­ется строкой в таблице, а значения атрибутов, соответст­вующих каждому экземпляру, — клетками строки.

19

Page 21: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Т а б л и ц а 1 Представление в виде таблицы

АвторКнига

Название Годиздания

Числостраниц

Грин А. Бегущая по волнам 1988 279Стивенсон Р. Остров сокровищ 1992 269Скотт В. Ричард Львиное Сердце і 1993 349Гончаров И. А. Обрыв 1 1986 598

С помощью таблиц могут быть выражены кақ статиче­ские, так и динамические информационные модели. Напри­мер, рассмотрим компьютер с точки зрения стоимости от­дельных устройств и изменения его цены во времени. Для этого построим статистическую информационную модель (см. табл. 2), отражающую стоимость отдельных устройств компьютера, и динамическую информационную модель (см. табл. 3), отражающую процесс изменения цены по го­дам.

Статистическая информационная модель «Цены от­дельных устройств компьютера» организована следующим образом. В первом столбце таблицы содержится перечень объектов (устройств), входящих в состав компьютера, а во втором в форме числа отражено свойство объектов «Цена».

Т а б л и ц а 2 Цены отдельных устройств компьютера

Наименование устройства Цена (в у.е.)1 2

Системная плата 100Процессор Pentium (300 МГц) 200Память 16 Мб 30Жесткий диск 4 Гб 150

20

Page 22: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

1 2Дисковод 3.5" 20Видеоплата 4 Мб 30Монитор 15" 200Звуковая карта 16 бит 30Дисковод CD-ROM х 32 50Корпус 25Клавиатура 10Мышь 5

Динамическая информационная модель «Изменение цены компьютера» содержит в первом столбце наименова­ние свойств объекта «Цена компьютера Pentium П», а в трех других столбцах — изменяющееся значение этого свойства по годам.

Т а б л и ц а 3 Изменение цены компьютера

Годы1997 1998 1999

Цена компьютера Pentium П 1800 1200 800

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

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

21

Page 23: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Табличные информационные модели проще всего строить и исследовать на компьютере с помощью электрон­ных таблиц и баз данных.

4.2. Иерархические информационные модели

И ерархические — объекты распределены по уров­ням. Каждый элемент высокого уровня состоит из элемен­тов нижнего уровня, а элемент нижнего уровня может вхо­дить в состав только одного элемента более высокого уров­ня.

Нас окружает великое множество различных объектов, каждый из которых обладает определенными свойствами. Однако некоторые группы объектов имеют одинаковые об­щие свойства, которые отличают их от объектов других групп.

Например, все существующие в мире компьютеры ис­пользуются для обработки информации и их целесообразно объединить в группу объектов «Компьютеры», в то время как автомобили предназначены для перемещения в про­странстве и их объединяют в другую группу объектов — «Автомобили».

Группа объектов, обладающая одинаковыми общими свойствами, называется классом объектов.

Внутри класса могут быть выделены подклассы, объек­ты которых обладают некоторыми особенными свойствами, в свою очередь подклассы могут делиться на еще более мелкие группы и т.д. В процессе классификации строятся информационные модели, которые имеют иерархическую (древовидную) структуру.

Рассмотрим процесс построения информационной мо­дели, которая позволяет классифицировать современные компьютеры. Класс Компьютеры можно разделить на три

22

Page 24: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

семейства: Суперкомпьютеры, Рабочие станции и Персо­нальные компьютеры.

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

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

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

Семейство Персональные компьютеры делится в свою очередь на три разновидности: Настольные, Портативные и Карманные.

Представим эту модель графически (рис. 3.).

Полученная информационная структура напоминает дерево, которое растет сверху вниз (именно поэтому такие

23

Page 25: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

информационные модели называют иногда древовидными). В структуре четко просматриваются три уровня, от первого верхнего, имеющего один элемент Компьютеры, мы спуска­емся до третьего, нижнего, имеющего три элемента На­стольные, Портативные, Карманные. Основное отношение между уровнями состоит в том, что элементы нижнего уров­ня входят в состав одного из элементов верхнего уровня.

В иерархической информационной модели объекты и их свойства распределены по уровням, причем элементы нижне­го уровня входят в состав элементов более высокого уровня.

Выше мы построили иерархическую статистическую информационную модель, однако довольно часто иерархи­ческие структуры применяются и для описания процессов. Так, для описания исторического процесса смены поколе­ний семьи используются динамические информационные модели в форме генеалогического дерева. В качестве при­мера можно рассмотреть модель формирования казахского ханства с середины XV в. до начала XVIII в.

Рис. 4. Формирование казахского ханства с середины XV в. до начала XVIII в.

24

Page 26: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Рассмотренные выше информационные модели мы изобразили в виде графов. Вершины графа (овалы) отобра­жают элементы системы. Элементы верхнего уровня нахо­дятся в отношении «состоять из» к элементам более низкого уровня. Такая связь между элементами отображается в форме дуги (направленной линии в форме стрелки). Графы, в которых связи между объектами несимметричны, называ­ются ориентированными.

Граф — удобный способ наглядного представления структуры информационной модели.

Графы позволяют формализовать информационные мо­дели, записанные на естественном языке, можно сказать, они позволяют «увидеть» структуру его объектов и отно­шений. Простейший язык состоит из имен объектов и имен отношений между этими объектами. Например, фраза «Принтер подключен к компьютеру» говорит о том, что объект «принтер» находится в отношении «подключен к» с объектом «компьютер». С помощью графа эту фразу можно представить следующим образом:

Иерархические структуры широко применяются для построения классификационных информационных моделей. В биологии весь животный мир рассматривается как иерар­хическая система (тип, класс, отряд, семейство, род, вид), в информатике используется иерархическая файловая система и т.д.

подключен к

принтер

Рис. S. Представление фразы с помощью графа

25

Page 27: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

4.3. Сетевые информационные моделиСетевые информационные модели применяются для

отражения таких систем, в которых связь между элементами имеет сложную структуру. Например, различные части гло­бальной компьютерной сети Интернет (американская, евро­пейская, российская и т.д.) связаны между собой высоко­скоростными линиями связи. При этом какие-то части (аме­риканская) имеют прямые связи со всеми региональными частями, в то время как другие могут обмениваться инфор­мацией между собой только через американскую часть (на­пример, российская и японская)

Построим граф, который отражает систему Интернет. Вершинами графа являются региональные сети. Связи меж­ду вершинами носят двусторонний характер и поэтому изо­бражаются ненаправленными линиями (ребрами), а сам граф называется неориентированным.

Представленная сетевая информационная модель явля­ется статической моделью. С помощью сетевой динамиче­ской модели можно, например, описать процесс передачи мяча в коллективной игре (футболе, баскетболе и т.д.).

Рис. 6. Сетевая структура глобальной сети Интернет

26

Page 28: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ВопросыТ. Каковы характерные особенности табличных инфор­

мационных моделей?2. Приведите примеры табличных информационных мо-

' дел ей.3. Каковы основные характерные особенности иерархи­

ческих информационных моделей?4. Приведите примеры иерархических информационных

моделей.5. Что такое граф?6. Каковы основные элементы графа?7. Каковы основные характерные черты сетевых инфор­

мационных моделей?8. Приведите примеры сетевых информационных моде­

лей.9. Какие системы объектов целесообразно и возможно

представлять с помощью сетевых моделей?

5. Этапы решения задач с помощью компьютера

Использование компьютера для исследования инфор­мационных моделей различных объектов и систем позволя­ет изучить их изменения в зависимости от значения тех или иных параметров. Компьютерное моделирование, от поста­новки задачи до получения результатов, проходит следую­щие этапы:

1. Содержательная постановка задачи. Создание опи­сательной информационной модели:

- сбор информации о задаче;- формулировка условия задачи;- определение конечных целей решения задачи;- определение формы выдачи результатов;

27

Page 29: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

- описание данных (их типов, диапазонов величин, структуры и т.д.).

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

2. Формулировка гипотез, построение, исследование модели. Создание формализованной модели:

- построение математической модели;- анализ существующих аналогов;- анализ технических и программных средств;- разработка структур данных.С помощью формул, уравнений, неравенств фиксиру­

ются формальные соотношения между начальными и ко­нечными значениями, накладываются ограничения.

3. Построение алгоритма и программы моделирования. Преобразование формализованной модели в компьютерную модель:

- выбор метода проектирования алгоритма;- выбор формы записи алгоритма (блок-схема, псевдо­

код и др.)- выбор тестов и метода тестирования;- проектирование алгоритма решения задачи и его ко­

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

одного из приложений.4. Проведение вычислительного (компьютерного) экс­

перимента.Чтобы дать жизнь новым конструкторским разработ­

кам, внедрить новые технические решения в производство или проверить новые идеи, нужен эксперимент. Экспери­мент — это опыт, который производится с объектом или моделью. Он заключается в выполнении некоторых дейст­вий и определении, как реагирует экспериментальный обра­зец на эти действия.

28

Page 30: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

В школе проводятся опыты на уроках биологии, химии, физики, географии.

Эксперименты проводят при испытании новых образ­цов продукции на предприятиях. Обычно для этого исполь­зуется специально создаваемая установка, позволяющая провести эксперимент в лабораторных условиях, либо сам реальный продукт подвергается всякого рода испытаниям (натурный эксперимент). Для исследования, к примеру, экс­плуатационных свойств какого-либо агрегата или узла его помещают в термостат, замораживают в специальных каме­рах, испытывают на вибростендах, роняют и т.п. Хорошо, если это новые часы или пылесос — не велика потеря при разрушении. А если самолет или ракета?

Лабораторные и натурные эксперименты требуют больших материальных затрат и времени, но их значение, тем не менее, очень велико.

С развитием компьютерной техники появился новый уникальный метод исследования — компьютерный экспери­мент. В помощь, а иногда и на смену экспериментальным образцам и испытательным стендам во многих случаях при­шли компьютерные исследования моделей. Этап проведения компьютерного эксперимента включает две стадии: состав­ление плана эксперимента и проведение исследования.

План эксперимента должен четко отражать последова­тельность работы с моделью. Первым пунктом такого плана всегда является тестирование модели.

Тестирование — процесс проверки правильности по­строения модели.

Тест набор исходных данных, позволяющий опре­делить правильность построения модели. Чтобы быть уве­ренным в правильности получаемых результатов моделиро­вания, надо:

- проверить разработанный алгоритм построения мо­дели;

29

Page 31: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

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

Например, если вы используете при моделировании расчетные формулы, то надо подобрать несколько вариан­тов исходных данных и просчитать их «вручную». Это тес­товые задания. Когда модель построен^, вы проводите тес­тирование с теми же вариантами исходных данных и срав­ниваете результаты моделирования с выводами,-получен­ными расчетным путем. Если результаты совпадают, то ал­горитм разработан верно, если нет — надо искать и устра­нять причину их расхождения. Тестовые данные могут со­вершенно не отражать реальную ситуацию и не нести смы­слового содержания. Однако полученные в процессе тести­рования результаты могут натолкнуть вас на мысль об из­менении исходной информационной или знаковой модели, прежде всего в той ее части, где заложено смысловое со­держание.

Чтобы убедиться, что построенная модель отражает свойства оригинала, которые учитывались при моделирова­нии, надо подобрать тестовый пример с реальными исход­ными данными.

Проведение исследованияПосле тестирования, когда у вас появилась уверенность

в правильности построенной модели, можно переходить не­посредственно к проведению исследования.

В плане должен быть предусмотрен эксперимент или серия экспериментов, удовлетворяющих целям моделиро­вания. Каждый эксперимент должен сопровождаться

30

Page 32: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

осмыслением итогов, что служит основой анализа результа­тов моделирования и принятия решений.

Для проведения компьютерных экспериментов необхо­дима предварительная подготовка: определение цели моде­лирования и задач компьютерного эксперимента.

Обычно основной целью моделирования является по­строение (получение) информационной модели объекта, причем в модель знаний включают лишь ту информацию, которая нам необходима.

Задачи компьютерных экспериментов можно разделить на следующие направления:

- проведение расчетов при различных исходных дан­ных;

- оптимизация параметров при подходящем подборе совокупности данных;

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

- наблюдение за демонстрацией процесса (в физиче­ских моделях).

Все эти задачи позволяют получить новые сведения, знания о моделируемом объекте в соответствии с выбран­ной постановкой.

В зависимости от возникающих задач легко определя­ется блок исходных данных.

Следующей проблемой становится этап обработки и представления результатов компьютерного эксперимента. Существуют различные способы представления результатов исследований — таблицы, диаграммы, графики, формулы и т.п. Таким образом, компьютерный эксперимент протекает по следующей схеме:

Цель Задача Исходные Экспе­ Информа­ционнаяданные римент модель

31

Page 33: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

5. Анализ полученных результатов и корректировка ис­следуемой модели:

- отладка семантики и логической структуры;- тестовые расчёты и анализ результатов тестирования;- совершенствование программы;- анализ результатов решения задачи и уточнение в

случае необходимости математической модели с по­вторным выполнением этапов 2 — 4 , перечисленных выше.

6. Модификация (развитие) модели:V- сопровождение программы;- доработка программы для решения конкретных за­

дач;- составление документации к решенной задаче, мате­

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

Рассмотрим процесс решения задачи на конкретном примере.

Пример 1. Через иллюминатор корабля требуется вы­тащить сундук с драгоценностями. Удастся ли это сделать?

Содержательная постановка задачи

- синтаксическая отладка;

Дано:R — радиус иллюминатора,а, Ь, с — размеры сундука, dl, d2, сП> — диагонали боко­вых поверхностей сундука. Найти: удастся ли выта­щить сундук?

32

Page 34: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

Сундук можно вытащить через иллюминатор одной из трех боковых граней, следовательно, достаточно, чтобы диаметр иллюминатора оказался больше одной из трех диа­гоналей боковых граней сундука, т. е. истинным было хотя бы одно из условий: диаметр > d\ или диаметр > с!2 или диаметр > db.

Обозначим диаметр иллюминатора d, тогда d = 2R. Имеем: d l y j b 2 +с2 ,

d2^yja2+c2 , d3:=yla2+b2 .Построение алгоритма и программы моделированияМетод решения задачи фактически указан в постановке

задачи. Однако если в описании методов формулы могут быть записаны в любом порядке, то в алгоритмах необхо­димо, чтобы всякая переменная получала свое значение до использования ее в других операциях.

алг Задача о сокровищах (арг веш R, а, Ь, с) нач вещ d l, d2, d3, d

ввод R, a, b, с d>=2Rdli=Jb2+c2d 2 - J a 2+c2

d3:=yja2+b2если d >dl или d >d2 или d >d3

то вывод Да иначе вывод Нет

всекон

Операция записи алгоритма на языке программирова­ния называется кодированием.

33

Page 35: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

T-.iqJ.xJ

Длина сундука. а Щ :::: I

Компьютерный эксперимент

Ширина сунхука. b

Высота сунхука. с

ЩРадиус иллюминатора. R

|ИДлина сундука, а

Компьютерный экспер

ШЯШЯШШЩЩтЯШШирина сунхука Ъ

Высота сунхфка. с

JSiвведите значение ширины сундука ОК

ПараметрыДиаметр иллюминат ера

Диагональ сундука d1Диагональ сундука d2Диагональ сундука d3Результат

и ж ш ш ш

Радиус иллюминатора R

Длина сундука, а

Ширина сундука b |

Высота сундука, с Р~

Компьютерный эксперимент

(Параметры 1| Диаметр иллюминатора 24.0

10.7717.2

Да

| Диагональ сундука dlI Диагональ сундука 62I Диагональ сундука d3I Результат

Расчет

И

Продолжим эксперимент?

ST. "Я ЙОТ

34

Page 36: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Примерный код

Dim г, d, а, b, с, d l, d2, d3, m, k, I As Double Private Sub Command I Click() i- \l1: r * ІпршВохСВведите значение радиуса иллюминатора” Text І.Text - г d * 2 • га - InputВох("Введите значение длины сундука") Text2.Text = аb - lnputBox("Введите значение ширины сундука ")Тех t3.Text = bс = InputBox(" В ведите значение высоты сундука ")Text4.Text ~ сdl = Sqr(b Л 2 + с л 2)d2 = Sqr(a л 2 -ь с л 2)d3 = Sqr(a л 2 + b л 2)g rl.TextMatrix(0, i) = Format$(i)grl.TextMatrix(l, i) = Format$(d, '’#0.0#")grl.TextMatrix(2, i) — Format$(dl, "#0.0#")grl .TextMatrix(3, i) = Format$(d3, "#0.0#")grl.TextMatrix(4, i) = Format$(d4, "#0.0#")If d > d l Or d > d2 Or d >d3 Then grl.Col = i: grl.Row = 5: grl.Text = "Да"Elsegrl.Col = i: grl.Row = 5: grl.Text = "Нет"End If1 = MsgBox( "Продолжим эксперимент?", 4 + 32)If 1 = 6 Then i “ i + 1 grl.Cols = i + 1 GoTo 1 Else End

35

Page 37: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

End If End Sub

Private Sub Command2_Click() EndEnd Sub

Private Sub Form_Load()Text 1.Text = ""Text2.Text =Text3.Text = ""Text4.Text = ""grl.Rows = 6grl .ColWidth(O) = 2000grl.Col = 0: grl .Row = 0: grl .Text = "Параметры" grl.Col = 0: grl.Row = 1: grl.Text = "Диаметр иллюми­натора"grl.Col = 0: grl.Row = 2: grl.Text = "Диагональ сундука dl" grl.Col = 0: grl.Row = 3: grl.Text = "Диагональ сундукаd2" grl.Col = 0: grl.Row — 4: grl.Text = "Диагональ сундука d3" grl.Col = 0: grl.Rowщ 5: grl.Text = "Результат"End Sub

Отладка и тестирование программы Основная цель этапа отладки — выявление и исправ­

ление ошибок в программе.По существующим оценкам, на отладку программист

затрачивает от 20 до 40% времени, отводимого на разработ­ку программы. Поэтому овладение приемами и средствами отладки программ важно для программиста.

Ошибки, возникающие при реализации программы, бы­вают синтаксическими и логическими (алгоритмическими).

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

36

Page 38: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

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

Проведение вычислительного (компьютерного) экс­перимента

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

Подготавливаются исходные данные задачи и вводятся в компьютер.

Проводится вычислительный эксперимент. Это экспе­римент, осуществляемый с помощью модели на компьютере с целью распределения, прогноза тех или иных состояний системы, реакции на те или иные входные сигналы (данные).

Анализ полученных результатов и корректировка исследуемой модели

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

На основании анализа вырабатываются соответствую­щие решения, рекомендации.

Вопросы1. Перечислить основные этапы в составлении программ

для решения задач на компьютере.2. Зачем нужна постановка задачи?3. Какие ошибки могут возникать на этапе отладки про­

граммы?37

Page 39: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

6. Исследование на компьютере информационных моделей из различных предметных областей

6.1. Физические модели

Графическое представление физических объектов и процессов

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

Примеры физических моделей: в астрономии — плане­тарий, в гидротехнике — лотки с водой, моделирующие ре­ки и водоёмы, в архитектуре макеты зданий, в самолёто­строении — модели летательных аппаратов и т. п.

Построение информационной модели движения те­ла, брошенного под углом к горизонту

Пример 2. Тело брошено с некоторой высоты Һ с на­чальной скоростью Vo, направленной под углом а к гори­зонту. Определить дальность полета S, время движения t и максимальную высоту Н, на которую поднимется тело, зная вышеуказанные начальные данные.

Содержательная постановка задачи1. Найти время движения тела при заданном угле бро­

сания и начальной скорости.2. Найти дальность и максимальную высоту подъема

тела.3. Получить траекторию движения тела, брошенного

под углом а к горизонту с начальной скоростью VQ. Сопро­тивлением воздуха можно пренебречь.

38

Page 40: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Построение математической модели и ее исследова­ние

Запишем законы изменения координат X и Y , проекций скорости на эти оси в функции от времени.

a i 1УІО = Уо + V0yt + Hr" => Уо = 0 => х0 = 0 => ау = - g => ах = 0;

a t 2x(t) = x0 + V0x+-^— =>V0x=V0 cosa=>V0y=V0-sina.

После подстановки получаем закон движения:

y(t) j Г0 sm а ■ Vy | V0 sin а - gt;

x(f) = V0co s a t=> VX=V0cosor.Исключая время, получим уравнение траектории дви-

жениеятела:хt -

V cos а

у(х) = V0 sin а gV0cosa 2 V0 -cos a

- tga • x - gx2V0 cos a

39

Page 41: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Траектория — парабола, ветви которой направлена вниз. В верхней точке траектории т. А вертикальная ско­рость становится равной нулю.

Vy =0=>V0 s i n a - g t = Q=>tnod = fo_'smarg

время подъема на высоту Н.

И = Y(t = tnod ) = V0 sin a . - ° - Ш a - g • -*£sm_2 а = К 8̂ аg 2 g 2 g

В точке падения тела на Землю (т. В) y(t = tmu) = 0 =>x(.t - tmii) = S> где S — дальность полета, tпол— полное время полета, которое в случае бросания с по­верхности Земли в 2 раза больше времени подъема на мак­симальную высоту. В случае, если тело бросают с некото­рой высоты, то дальность полета и полное время определя­ют по координатам т. В.

В нашей задаче дальность равна„ 2-Vnsma K2-sin2 аS = V0c o sa -------- 2— — = - 2 --------------- .

g gНаправление вектора скорости, который направлен по

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

т, т, • _ К K sina-gtV = V0sm а - gt =>tgam =“ ■="“ ------ —,Vx V0 cos a

a m — текущее значение угла наклона вектора скорости.Угол /? — угол, под которым тело падает на Землю,

может быть определен при подстановке t = taaa. Модуль полной скорости V = yjv* + Vy .

Радиус кривизны траектории также изменяется в поле­те. Ускорение свободного падения или его проекция на на­правление, перпендикулярное вектору скорости, является

40

Page 42: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

центростремительным ускорением. В верхней точке траек-V2 cos2 сстории радиус кривизны R =;^=--------- .

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

(компьютерной модели движения тела) с использовани­ем среды объектно-ориентированного программирова­ния Visual Basic

На основе формальной модели, описывающей движе­ние тела, брошенного под углом к горизонту, создадим компьютерную модель с использованием среды объектно- ориентированного программирования Visual Basic. Практи­ческая значимость модели заключается в создании базы экспериментальных данных зависимости движения бро­шенного тела от некоторых постоянно изменяющихся пара­метров.

Этапы построения компьютерной модели:1. Спроектируем интерфейс приложения. Для этого на

форме установим:

41

Page 43: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

- графическое поле Picturel для построения графика зависимости координаты у от координаты х;

- таблицу для вывода результатов эксперимента: зна­чений заданного угла а, начальной скорости v<* вре­мени подъема тела на максимальную высоту /, даль­ности полета S, высоты подъема Н\

- полосы прокрутки для задания значений угла вылета а и скорости вылета vq\

- текстовые поля для отображения выбранных пара­метров а и vo;

- три кнопки Бросок, Очистка, Выход.2. Примерный программный код:

Dim alfa, х, tt, у, h, t, Ю, s, VO As DoubleDim n, i As IntegerPrivate Sub HScrolll_Scroll()HScroll l_Change End Sub

Private Sub HScroll IChangeO Textl I HScroll 1.ValuePicturel.Line (0 ,0)-(Cos(alfa), Sin(alfa)), RGB(255,255,255)alfa = HScroll 1.Value * 3.14 / 180Picturel.Line (0, 0)-(Cos(alfa), Sin(alfa)), RGB(0, 0,0)Picturel.Line (0 ,0)-(0, 5)Picturel.Line (0 ,0)-(5,0)Picturel.Line (5 ,2)-(5, -2)Picturel.Line (2 ,5)-(-2, 5) n = 1For i = 1 To ПТ Picturel.Line (I>n)-(-l, n) n = n + 1 Next i n = l

42

Page 44: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

For i = 1 To 10 Picturel.Line (n, l)-(n, -1) n = n+ 1 Next i End Sub

Private Sub HScroll2_Scroll()HScroll2_Change End Sub

Private Sub HScroU2_Change()Text2 = HScroll2. Value VO = HScroll2.Value End Sub

Private Sub Command4_Click()EndEnd Sub

Private Sub Command3_Click()Form_Activate End SubPrivate Sub Text2_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then HScroll2. Value = Val(Text2.Text)End If End Sub

Private Sub Text l_KeyPress(KeyAscii As Integer)If KeyAscii = 13 ThenHScroll 1 .Value = Val(Text 1 .Text)End If End Sub

Private Sub Form_Activate()

43

Page 45: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Text 1.Text = ""Text2.Text = ""Grl.Rows = 2 Grl.Cols = 6 Grl.TextMatrix(l, 0) = ""Grl.TextMatrix(l, 1) = ""Grl.TextMatrix(l, 2) = ""Grl .TextMatrix( 1,4) = ""Grl .TextMatrix( 1, 5) = ""Grl.TextMatrix(l, 3) = ""

Picturel.Scale (-5,105)-(205, -5)Picture 1 .BackColor = RGB(255,255,255)/Picturel.Line (0,0)-(200,0)Picturel.Line (0,0)-(0,100)Picturel.Circle (0,0), 10, RGB(200, 200,200), 0, 1.57 n —10Fori = 1 To 20 Picturel.Line (n, 3)-(n, -3) n = n+ 10 Nexti n = 5For i = 1 To 20 Picturel.Line (n, 2)-(n, -2) n = n + 10 Next i n = 1For i = 1 To 200 Picturel.Line (n, l)-(n, -1) n = n + 1 Nexti n= 10For i = 1 To 10 Picturel.Line (3, n)-(-3, n)

44

Page 46: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

n = n+ 10 Next i n = 5Fori = 1 To 10Picture 1.Line (2, n)-(-2, n)n = n+ 10Nextin= 1Fori = 1 To 100 Picturel.Line (1, n)-(-l, n) n = n+ 1 Next ialfa = HScrolll.Value * 3.14 / 180Picturel.Line (0,0)-(Cos(alfa), Sin(alfa)), RGB(0,0,0)End Sub

Private Sub CommandlClickO Static к As Integer k = k+ 1alfa = HScrolll.Value * 3.14/180 VO = HScroI12. Value s = VO л 2 * Sin(2 * alfa) /9.81 h = VO л 2 * (Sin(alfa))A 2 / (2 * 9.81) tt = s / (VO * Cos(alfa)) -

Траектория движения For t = 0 To tt Step 0.001 x = VO * Cos(alfa) * t у = VO * Sin(alfa) * t — 9.81 * t A2/ 2 Picturel.PSet (x, y), QBColor(k)Next'Вывод результатов в таблицуGrl.Rows = k + 1Grl .TextMatrix(k, 0) = kGrl .TextMatrix(k, 1) = Text 1 .T ext

45

Page 47: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

I

Grl.TextMatrix(k, 2) = Text2.Text Grl.TextMatrix(k, 4) = Format$(x, "#0.00#")Grl.TextMatrix(k, 5) = Format$(h, "#0.00#")Grl.TextMatrix(k, 3) = Format$(tt, "#0.00#")End SubPrivate Sub Form_Load()Grl.ColWidth(O) = 350Grl.Col = 1: Grl.Row = 0: Grl.Text = "a"Grl.Col = 2: Grl.Text = "V0"Grl.ColWidth(l) = 1000 Grl.ColWidth(2) = 1000 Grl.Col = 3: Grl.Text = "t"Grl.ColWidth(3) = 1000 Grl .Col = 4: Grl .Text = "S"Grl.ColWidth(4) = 1000 Grl.Col - 5: Grl.Text = "H"Grl .ColWidth(5)= 1000 End Sub

3. Запустите проект, поэкспериментируйте с различны­ми значениями параметров скорости и угла.

46

Page 48: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

- о подводной охоте (под каким углом следует выстре­лить охотнику, если акула находится от него на рас­стоянии 1 метра);

- о теннисном шарике. Какой должна быть высота крытого корта, если угол а, под которым теннисист отправляет шарик, заключен в диапазоне от он до аг? Если начальная скорость теннисного шарика vo (ко­торая зависит от силы ударов по нему) заключена в диапазоне от voi до V02?

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

Качественная описательная модельСначала построим качественную описательную модель

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

- мячик мал по сравнению с Землей, поэтому его мож­но считать материальной точкой;

- изменение высоты мячика мало, поэтому ускорение свободного падения можно считать постоянной вели­чиной g = 9,8 м/с2 и движение по оси OY можно счи­тать равноускоренным;

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

47

Page 49: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Формальная модельДля формализации модели используем известные из

курса физики формулы равномерного и равноускоренного движения. При заданных начальной скорости v# и угле бро­сания а значения координат дальности полета х и высоты у от времени можно описать следующими формулами:

x = v0*cos at;

g t2 (Оv = vn • sin a t - ——.0 2

Пусть мишень высотой Н будет размещаться на расстоянииS. Из первой формулы находим время, которое понадобится мячику, чтобы преодолеть расстояние:

I----- 1---1 I (2)v0 cosor

Подставляем это значение для t в формулу для у. Полу­чаем L — высоту мячика над землей на расстоянии S:

L = S - tg a ~ - ■ ( 3 )2v0cos2 а

Формализуем теперь условие попадания мячика в ми­шень. Попадание произойдет, если значение высоты L мя­чика будет удовлетворять условию в форме неравенства: 0< К Н .

Если L<0, то это означает «недолет», а если L>H — «перелет».

Построение компьютерной модели движения тела в электронных таблицах Microsoft Excel

Этапы построения компьютерной модели:1. Построим основную пользовательскую таблицу на

листе Excel для ввода определенных значений времени t с заданным интервалом и вычисления значения координат х и

48

Page 50: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

у брошенного тела, для этого воспользуемся формулами (1) а З Д

2. Построим вспомогательную таблицу на листе Excel для ввода значений начальной скорости vp, угла а, ускоре­ния свободного падения g, расстояния до мишени S.

3. Визуализируем модель, построив график зависимо­сти координаты у от координаты х.

4. Исследуем модель, вычисляя высоту брошенного те­ла над землей по формуле (3) и определяя с заданной точно­стью значение угла бросания а, которое обеспечит попада­ние тела в мишень, находящуюся на определенной высоте Н и расстоянии S.

При построении компьютерной модели можно приме­нить встроенные функции Excel. Поиск функций в Excel упрощается благодаря возможности выбора нужной функ­ции из списка Мастера функций. Обратиться к Мастеру функций можно при помощи команды Вставка -> Функция.

В Excel функции могут входить одна в другую, напри­мер, для преобразования значений углов из градусов в ра­дианы используется функция РАДИАНЫ:

С08(РАДИАНЫ($Ғ$2)).В данном случае функция РАДИАНЫ используется как

аргумент функции COS и считается вторым уровнем вло­женности. Такие функции-называют вложенными. Формула Excel может содержать до семи вложенных функций. Чтобы облегчить ввод формул, содержащих вложенные функции, можно воспользоваться Панелью формул окна Excel.

Если функция отсутствует в раскрывающемся списке Панели формул, то необходимо выбрать пункт меню Другие функции... и в диалоговом окне Мастер функций найти функцию.

49

Page 51: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

i'iJ &*! {км* *u etUPf» •№ «■ DM 0> B*«*«j :;u : :л > х л . . ^ « f f i f l !— J k j t l ЖвЖяИИУжвРЯ̂ ИИИВвЖЙ-' j - • __,lu ■t l* я «■*■■* » v;ІЙИЬ*?_aCOSO~c T"o~T' E~T~

■Ч.ал>-А-»1CM:l.'.lTS

Технология построения компьютерной модели1. Введите в ячейки листа Excel подписи столбцов ос­

новной таблицы:в ячейку А1 — t (с); в ячейку В1 — х — v0 - cos а/;

лв ячейку С1 —- у =0 -sinat —gt

2. Постройте вспомогательную таблицу и введите зна­чения начальной скорости vo=18 м, угла а= 35 градусов, ускорения свободного падения g = 9,8 м/с2.

3. Заполните диапазон А2:А15 значениями времени t отО до 2,6 с интервалом 0,2.

4. Введите:а) в ячейку В2 формулу =$Ғ$1*С08(РАДИА-

НЫ($Ғ$2))*А2 для определения значения координаты х брошенного тела и скопируйте формулу с помощью марке­ра заполнения в диапазон ВЗ:В15. В формуле используется абсолютная усылка на ячейку Ғ2. Для обозначения абсо­лютной ссылки перед номером строки и буквой столбца на­жатием клавиши Ғ4 указывается знак $. Абсолютные ссыл-

50

Page 52: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

I'

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

б) в ячейку С2 формулу=$Ғ$ 1 *8ЩРАДИАНЫ($Ғ$2))* А2-

($Ғ$3 *СТЕПЕНЬ( А2 ;2))/2, для определения значения координаты у брошенного тела и скопируйте формулу с помощью маркера заполнения в диа­пазон СЗ:С 15.

-Ц і* . М ІЙЩ . M l і рхшгтя , - - 0 х

І М Ш Ж іТ « * Л А Ш 9 ш т ж % т м й : * ■9 L & - J k z M 1

РЭ щШ Ш Ш эвf Л -vVR v s - j r . - H ...I, 1 i t к 1 L ± u g

l i i l M )Xsy0 • COSg.' t ,!x=V0'

VH(Ufc) і 18.0Һ г о 0.0 0.0 а (град) 135.0Й 0 . 2 2.9 ____ 1.9 q (м/с2) I 9.8ІГ71 е й 5.9 а зПи о.б 8.8 4,4Ы 0, 8 11»8 . 5.1Ш ! 1 14.7 [ 5.4Ш 1,2 17,7 5.3»91 1,4| 20.8І 4.9[mi 1,6! 23.ӨІ 4.0Ы 1,8 26.5 2,71Щ 2 29.5 1.0!Ш 2,2 3Z4I •-1,0[t4j 2.4 _________3 M | -3.41, 2.6 [ 3 fta |

ш I_

5. Постройте точечную диаграмму зависимости коор­динаты у от координаты х со значениями, соединенными сглаживающими линиями для визуализации модели.

*

Page 53: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

6. В ячейку F4 введите значение расстояния до мишениS, равное 30 м.

7. В ячейку F5 введите формулу=F4*TAN (Р АДИАНЫ(Ғ2))-

(ҒЗ *Ғ4А2)/(2*Ғ 1 А2*(С08(РАДИАНЫ(Ғ2))Л2)) для вычисления высоты L брошенного тела над землей.

8. Определите значение угла бросания а, которое обес­печит попадание тела в мишень, находящуюся на опреде­ленной высоте Һ (0-1 метр). Для этого воспользуемся мето­дом Подбор параметра, который позволяет изменять зна­чение в ячейке аргумента функции до тех пор, пока значе­ние в ячейке самой функции не возвращает нужный резуль­тат:

— выделите ячейку F5, содержащую значение высоты брошенного тела;

— выполните команду Сервис —> Подбор параметра...;- в появившемся диалоговом окне введите в поле Зна­

чение: наименьшую высоту мишени, равную 0.- в поле Изменяя значение ячейки: введите адрес ячей­

ки F2, содержащей значение угла бросания.

П одбор парам етра

Установить в ячейке:

Значение: Tq

Изменяя значение ячейки:^ $ғ$2

ire

ок 3 с

38ИЯ

В ячейке F2 появится значение 32,6. Это и есть мини­мальный угол бросания мячика, которое обеспечивает по­падание в мишень при заданных начальных условиях.

9. Повторите процедуру подбора параметра для макси­мальной высоты попадания в мишень, равной 1 метр.

Таким образом, исследование компьютерной модели в электронных таблицах Excel показало, что существует диа-

52

Page 54: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

пазон значений угла бросания тела, в котором обеспечива­ется попадание в мишень высотой от 0 до 1 м, находящуюся на расстоянии 30 м, мячиком, брошенным со скоростью 18 м/с.

Компьютерная модель движения тела с использова­нием языка Visual Basic Visual Basic for Applications

Рассмотрим этапы построения компьютерной модели:1. Сконструируем графический интерфейс проекта

(диалоговое окно), используя форму UserForm. Разместим на форме объекты для ввода значений начальной скорости, угла бросания мячика, расстояния до мишени, ее высоты; для вывода результата броска мячика (высота) на заданном расстоянии и текстового сообщения о результатах броска.

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

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

4. Определим диапазон углов, обеспечивающий попа­дание в мишень брошенного тела.

Технология построения компьютерной модели

1. Откройте новую книгу Excel.2. Перейдите в интегрированную среду разработки

Visual Basic for Applications, для этого выполните команду Сервис —> Макрос Редактор Visual Basic.

3. Создайте графический интерфейс проекта, для этого выполните команду Insert (Вставка) —> UserForm (Форма) и вызовите пользовательскую форму.

4. Поместите на форму кнопку (CommandButtonl), над­писи (Label), текстовые поля (TextBox) для ввода значений

53 Л

Page 55: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

5. Создайте для кнопки (CommandButtonl) событийную процедуру, в которой: объявите вещественные константы одинарной точности (Const Pi As Single = 3.14, Const G As Single = 9.8) и вещественные переменные двойной точности (Dim VO, S, H, L As Double).

6. Создайте программный код, при выполнении которо­го изменяется размер столбцов в создаваемой базе данных на листе Excel, вводятся подписи столбцов, закрепляется строка заголовка, переменным присваиваются значения, введенные в текстовые поля.

7. В процедуру добавьте формулу для вычисления вы­соты брошенного тела над землей в зависимости от значе­ний S, Vo, угла а, проверьте условие попадания брошенного тела в мишень с использованием управляющей структуры Select Case. Примерный код процедуры может выглядеть следующим образом:

Private Sub CommandButtonl_Click()Const Pi As Single = 3.14 Const G As Single = 9.8

i User Formt Wjначальная слооост*Шуголбросдея(градус*-)расстояние до нишеннфО

• ; рву

1у ль га ты броска • • ’ ■

высота (и) бросок | ;;|т

54

Page 56: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Dim VO, a, S, H, L As Double ' изменение ширины столбца ActiveSheet.Range("A:A").ColumnWidth =15 ActiveSheet.Range("B:B").ColunmWidth =15 ActiveSheet.Range("C:C").ColumnWidth =15 ActiveSheet.Range("D:D").ColumnWidth = 15 ActiveSheet.Range("E:E").ColumnWidth = 15 ActiveSheet.Range("F:F").ColumnWidth =15 'заполнение строки заголовка ActiveSheet.Range(,,Al") = "начальная скорость" ActiveSheet.Range("Bl") = "угол бросания" ActiveSheet.Range("Cl") = "расстояние до мишени" ActiveSheet.Range("Dl") = "высота мишени" ActiveSheet.Range("E 1") = "результат броска" | Range("2:2").Select ActiveWindow.FreezePanes = True 'закрепление строки заголовка 'переменной номерСтроки присваивается значение 'на единицу больше, чем число непустых ячеек номерСтроки =Application.CountA(ActiveSheet.Columns( 1))+ 1I заполнение ячеек листа значениями текстовых окон СеШ(номерСтроки, 1).Value =Val(TextBoxl.Text) 'начальная скоростьСеІЦномерСтроки, 2).Value = Val(TextBox2.Text) 'угол бро­санияСе1І8(номерСтроки, 3).Value = Val(TextBox3.Text) Се1І8(номерСтроки, 4).Value = Val(TextBox4.Text) 'высота мишени' присвоение переменным значений текстовых окон VO = Val(TextBoxl .Text) 'начальная скорость а = Val(TextBox2.Text) 'угол бросания S = Val(TextBox3.Text) 'расстояние до мишени Н = Val(TextBox4.Text) 'высота мишени

55

Page 57: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

'формула вычисления высоты брошенного тела над землей ’ в зависимости от значений S, УО.угла а L=S * Tan(a * Pi / 180) — (G * S л 2 )/(2 ♦ V0 л 2 * (Cos(a * Pi / 180)) л 2)TextBox5.Text = L

'проверка условия попадания брошенного тела в мишень Select Case L Case Is < 0TextBox6.Text — "недолет"Case Is > HTextBox6.Text = "перелет"Case ElseTextBox6.Text = "попал"End SelectCells(H0MepCip0KH, 5).Value = L 'заполнение результатами броска ячеек листаСеІЦномерСтроки, 6).Value = TextBox6.Text End Sub

8. На листе Excel установите управляющий элемент Кнопка и назначьте ей процедуру открытия формы:

Private Sub CommandButtonl_Click()UserForm 1. Show End Sub

9. Проверьте правильность работы модели для различ­ных значений начальной скорости, угла бросания мячика, расстояния до мишени и высоты мишени.

10. Введите значения, обеспечивающие попадание бро­шенного тела в мишень, например, скорость бросания — 18 м/с, угол бросания — 35 градусов, расстояние до мише­ни — 1м и высота мишени — 1м. Проанализируйте ре­зультат, скорректируйте модель.

56

Page 58: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

11. Модернизируйте проект так, чтобы можно было для каждого значения скорости бросания тела получить с за­данной точностью диапазон значений углов, обеспечиваю­щих попадание тела в мишень. Для этого добавьте на поль­зовательскую форму кнопку (CommandButton2), кнопку (CommandButton3), надписи (Label), текстовые поля (TextBox) для ввода точности определения диапазона углов и вывода значений диапазона углов.

UserForml

начальная скорость (м/с)

угол бросания (градусы)

расстояние до мишени (и)

высота мишени (и)

точность (град)

результаты броска

диапазон углов обеспечивающих попадание

12. Создайте программный код событийной процедуры для кнопки (CommandButton2).Private Sub CommandButton2_Click()Const Pi As Single = 3.14 Const G As Single = 9.8 Dim VO, S, H, L As Double Dim a, P As Integer VO = Val(TextBoxl .Text)

57

Page 59: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

а == Val(TextBox2.Text)S = Val(TextBox3.Text)H = Val(TextBox4.Text)P = Val(TextBox7.Text)TextBox8.Text = ""For a = 0 To 90 Step PL = S * Tan(a * Pi / 180) — (G * S л 2)/(2 * VO A2 * (Cos(a * Pi / 180)) A 2)If 0 < L And L < H Then TextBox8.Text = TextBox8.Text + Str(a)' Str — функция преобразования строки в вещественноечислоEnd IfNextEnd Sub

13. Назначьте для кнопки (CommandButton2) процедуру очистки текстовых полей.Private Sub CommandButton3_ClickQ TextBoxl.Text = ""TextBox2.Text = ""TextBox3.Text =""TextBox4.Text = ""TextBox5.Text = ""TextBox6.Text = ""TextBox7.Text = ""TextBox8.Text =End Sub

14. Запустите проект и введите скорость бросания мя­чика, расстояние до мишени и ее высоту, а также точность определения значений углов. В результате приходим к вы­воду, что существуют два диапазона углов от 33 до 36 гра­дусов и от 56 до 57 градусов, которые обеспечивают попа-

58

Page 60: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

дание тела, брошенного со скоростью 18м/с, в мишень, на­ходящуюся на расстоянии 1 м и на высоте 1 м.

6.2. Экологические моделиЭкология — одно из слов, появившихся сравнительно

недавно у всех на устах и на страницах газет и журналов. Еще в 60-х годах XX столетия почти никто, кроме узких специалистов, его не знал, да и большинство из тех, кто знал, использовал в таком смысле, который вряд ли спосо­бен заинтересовать широкую общественность. А между тем, термину более 120 лет.

В 1869 г. немецкий естествоиспытатель Эрнст Геккель предложил составной термин «экология» («эко» — дом, жилище, местопребывание и «логос» — наука, знание) как название раздела биологии, ставшего самостоятельным. Классическая экология — наука о взаимодействии организ­мов и окружающей среды. Сегодня, говоря об экологии, чаще всего имеют в виду не классическую, а, так называе­мую, социальную экологию, оформившуюся как научное направление и направление общественно-политической деятельности на 100 лет позднее и занимающуюся пробле­мами охраны окружающей среды, взаимодействием с ней человеческого сообщества.

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

59

Page 61: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

которые цели создания математических моделей в класси­ческой экологии:

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

2. Модели выступают в качестве «общего языка», с по­мощью которого может быть описано каждое уникальное явление, и относительные свойства таких явлений становят­ся более понятными.

3. Модель может служить образцом «идеального объек­та» или идеализированного поведения, при сравнении с ко­торым можно оценивать и измерять реальные объекты и процессы.

4. Модели действительно могут пролить свет на реаль­ный мир, несовершенными имитациями которого они явля­ются.

При построении моделей в математической экологии используется опыт математического моделирования меха­нических и физических систем, однако с учетом специфиче­ских особенностей биологических систем:

— сложности внутреннего строения каждой особи;— незамкнутости экологических систем;— огромного диапазона внешних характеристик, при

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

границы моделирования экологических процессов. С одной стороны, появилась возможность всесторонней реализации сложных математических моделей, не допускающих анали­тического исследования, с другой — возникли принципи­ально новые направления, и прежде всего — имитационное моделирование.

60

Page 62: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Пример 4. Построить экологическую модель «Опреде­ление количества углекислого газа, выдыхаемого населени­ем планеты».

За последние 200 лет человечество увеличило содержа­ние окиси углерода (СОг) в атмосфере на 25% за счет сжи­гания ископаемого топлива, истребления лесов, увеличения численности населения. Это привело к тому, что замедляет­ся отток тепла в космос, и благодаря создаваемому таким образом парниковому эффекту (окись углерода создает 50% парникового эффекта) увеличивается температура воздуха на земле. Если нынешние темпы использования угля, нефти и стремительный прирост населения останутся без измене­ния, потепление среднегодовой температуры на планете на 5-10 градусов Цельсия в ближайшие 50 лет станет весьма вероятным. Такое повышение температуры повлечет за со­бой огромный экологический, экономический и социальный взрыв. Это станет причиной того, что уровень воды подни­мется на 1—2 метра из-за тающих полярных льдов и часть суши будет поглощена морем.

Из справочной литературы: выбросы СОг от сжигания ископаемого топлива составляют на душу населения 3,88 тонн в год. Население Земли в 2000 году составило 5,3 миллиарда человек. Каждый человек в среднем делает 18 дыхательных движений в минуту, пропуская каждый раз 500 см3 воздуха, выдыхаемый человеком воздух содержит4 % СО2 (углекислого газа). Плотность СОг — 0,00198 г/см .

Содержательная постановка задачи

Составить программу, определяющую, какое количест­во СОг (в тоннах) будет выделяться населением Земли к 2030 году, если каждый год населения становится на 1,8% больше.

61

Page 63: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Математическое описание модели

S — население планеты Е — % ежегодного увеличе­ния населения планеты

А — количество пропускае­мого воздуха за 1 дыхатель­ное движение (см )В — количество дыхательных движений за 1 минуту L — количество пропускаемо­го воздуха человеком за 1 час К — количество пропускае­мого воздуха населением пла­неты за 1 часV — содержание углекислого газа в выдыхаемом воздухе F — количество углекислого газа, выдыхаемого населени­ем планеты за 1 час W — плотность СС>2 в г/см М — количество выделяемого углекислого газа за 1 час на­селением планеты к 2030 году (тонн)

53000000000,018%S=S+S* Е — изменение численности населения 500

Т=60*В — количество дыха­тельных движений за 1 час L=A*T

K=L*S

0,04 %

F=S*A*T*V/100

0,00198M=F*W/1000000

Построение компьютерной модели определения ко­личества углекислого газа с использованием языка Visual Basic

Этапы построения компьютерной модели: Спроектируем интерфейс приложения. Для этого на

форме установим:

62

Page 64: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

— таблицу для ввода исходных данных: количества на­селения планеты к 2000 году, ежегодный % увеличе­ния населения планеты, количества пропускаемого воздуха за 1 дыхательное движение (см ), количества дыхательных движений за 1 минуту, % содержание углекислого газа в выдыхаемом воздухе, плотности СОг в г/см3;

— таблицу для вывода результатов эксперимента: коли­чества населения планеты к 2030 году, количества пропускаемого воздуха человеком за 1 час, количест­ва пропускаемого воздуха населением планеты за 1 час, количества углекислого газа, выдыхаемого на­селением планеты за 1 час, количества выделяемого углекислого газа за 1 час населением планеты к 2030 году (тонн);

— три кнопки Расчет, Изменение параметров, Выход.

Необходимо определить

сколько углекислого газа

(С02) будет выделяться населением

планеты к 2030 году.

Расчет ( Изменить параметры |

Выход

63

Page 65: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

(

« iS J x jИсходные данные IЕжегодно население планеты увеличивается на 0 018 Z

Население планеты к 2000 году 5300000000 человек

Количество пропускаемого человеком воздуха за 1 дыхательное 500 смЗ

Количество дыхательных движений 18 за 1 минуту

Выдыхаемый воздух содержит уг лекислого газа 0.04 гПлотность С02 0.00198 смЗ

Необходимо определить

сколько углекислого газа

(С02) будет выделяться населенней

планеты к 2030 году.

Расчет Изменитьпараметры

Выход

Решение

Население планеты к 2030 году человек

Количество дыхательных движении 1 человеком за 1 час

Количество пропускаемого воздуха 1 человеком эа 1 час

Количество пропускаемого воздуха за 1 час населением планеты ісмЭ

Количество выдыхаемого углекислого газа за 1 час населением планеты

смЗ

Количество вьоыхаемого углекислого газа за 1 час населением планеты к 2003 году

тонн

2. Примерный программный код:

Dim a, s, b, v, t, w, е, m, f, 1, k As Double Dim aa, ss, bb, w , tt, ww, ее As Variant Private Sub Command2_Click()EndEnd SubPrivate Sub Command l_Click() s = Val(Grl.TextMatrix(2, 1)) a = Val(Grl.TextMatrix(3, 1)) b = Val(Grl.TextMatrix(4, 1))

64

Page 66: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

t = 60 * b vGr2.TextMatrix(2, 1) = Format$(t, "#0.00#") v = Val(Grl.TextMatrix(5,1)) e = VaI(Grl.TextMatrix(l, 1)) w = Val(Grl.TextMatrix(6,1))For у = 2001 To 2030 s = s + s * e Next ,f = s * a * t * v / 100Gr2.TextMatrix(5, 1) = Format$(f, "#0.00#")Gr2.TextMatrix(l, 1) = Format$(s, "#0.00#") m = f * w / 1000000Gr2.TextMatrix(6,1) = Format$(m, "#0.00#") l = a * tGr2.TextMatrix(3, 1) = Format$(l, "#0.00#") к = 1 * sGr2.TextMatrix(4, 1) = Format$(k, "#0.00#")End Sub

Private Sub Form_Load()Grl.Cols = 3Grl.Rows = 7Grl .ColWidth(O) - 3000For i = 1 To 6Grl .RowHeight(i) = 500NextGrl .ColWidth( 1) = 1000 Grl .ColWidth(2) = 1000 Grl .TextMatrix(0,0) — "Исходные данные"Grl .TextMatrix( 1,0) = "Ежегодно население планеты увели­чивается на"Grl.TextMatrix(l, 1) = "0.018"Grl .TextMatrix( 1, 2) = "%"Grl .TextMatrix(2,0) = "Население планеты к 2000 году"

65

Page 67: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Grl .TextMatrix(2,1) = "5300000000"Grl.TextMatrix(2,2) = "человек"Grl.TextMatrix(3,0) = "Количество пропускаемого челове­ком воздуха _ за 1 дыхательное движение" Grl.TextMatrix(3,1) = "500"Grl.TextMatrix(3,2) = "смЗ"Grl.TextMatrix(4,0) = "Количество дыхательных движений

Grl.TextMatrix(4,1) = "18"Grl.TextMatrix(4,2) = "за 1 минуту"Grl.TextMatrix(5,0) = "Выдыхаемый воздух содержит угле­кислого газа"Grl.TextMatrix(5,1) т "0.04"Grl.TextMatrix(5,2) = "%"Grl.TextMatrix(6,0) = "Плотность С02"/Grl.TextMatrix(6,1) = "0.00198"Grl.TextMatrix(6,2) = "смЗ"Gr2.Cols = 3 Gr2.Rows = 7 Gr2.ColWidth(0) = 3000 For i = 1 To 6 Gr2.RowHeight(i) = 650 NextGr2.ColWidth(1) = 2500 Gr2.ColWidth(2) = 1000 Gr2.TextMatrix(0, 0) = "Решение"Gr2.TextMatrix(l, 0) = "Население планеты к 2030 году" Gr2.TextMatrix(l, 2) = "человек"Gr2.TextMatrix(2,0) = "Количество дыхательных движений 1 человеком |Gr2.TextMatrix(2,2) = "за 1 час"Gr2.TextMatrix(3,0) = "Количество пропускаемого воздуха 1 человеком гҮ;Gr2.TextMatrix(3,2) = " за 1 час "

66

Page 68: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Gr2.TextMatrix(4, 0) = " Количество пропускаемого воздуха за 1 час _населением планеты 11 Gr2.TextMatrix(4, 2) = "смЗ"Gr2.TextMatrix(5, 0) = "Количество выдыхаемого углекисло­го газа за 1 час населением планеты"Gr2.TextMatrix(5,2) = "смЗ"Gr2.TextMatrix(6, 0) = " Количество выдыхаемого углеки­слого газа за 1 час населением планеты к 2003 году " Gr2.TextMatrix(6,2) = "тонн"End Sub

Private Sub Command3_Click()ее = InputBox("% ежегодного увеличения населения плане­ты ", _"Ввод данных", "0.018")Grl.TextMatrix(l, 1) = ееss = 1прШ:Вох("Население планеты", " Ввод данных ", "5300000000")Grl.TextMatrix(2, 1) = ssаа = ІприіВох("Количество пропускаемого оздуха за 1 дыха­тельноедвижение", " Ввод данных ", "500")Grl.TextMatrix(3, 1) = ааbb = ІприіВох("Количество дыхательных движений за 1 мин", _"Ввод данных ", "18")Grl.TextMatrix(4, 1) = bbw = 1прШВох("Выдыхаемый воздух содержит углекислого газа(%)", _"Ввод данных ", "0.04") tt = 60 * bbGrl.TextMatrix(5, l) = w

67

Page 69: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ww = I n p u t B 0 x ( " r L i 0 TH 0 CTb углекислого газа г/смЗ", " Ввод данных ", "0.00198")Grl .TextMatrix(6, 1) = ww End Sub

Ежёгсидо I желание планеты . .ремчеавгсяна____ ____ •Ыасеяенм» п л а т ы к 2000г о д

Количество прстесьммого ’«ломком воздухе м 1 амшталыяе

Количество дыхательных движений

Выаыхзеьый аоащу содержит уявкмоеого газа

Плотность СО2

0.018 *

6600000000

500]смЗ

18 м 1

оо< * а отав ыз

і планеты к 2003 года

Щ ШИасовиыевмме 1Ежегодно населите планеты jgejenoaercw на 0018 X

Население планеты к 2000 гаду 5300000000 -елоаек

Ко/мчество пропускаемого человеком еоаа^а за 1 дыхательное 500 смЗ

Количество дыхательных движений 18 за 1 минуту

Вьяьомемыі воздух содержит углекислого газа 004 X

Плотность С02 000198 смЗ

Необходимо определить

сколько углекислого газа

(СО?) будет выделяться населенней

планеты к 2030 году.

Изменить ]параметры (

ВьовэаРешемм , Ш . . . . . 1

Население планеты к 2030 rcnif 9051263528.797 человек

Количество оьмтвяьмзм движений 1 человеком 1080,00; за 1 час

Количество пропускаемого воздуха 1 человеком 54000000; м 1 час

Количество пропускаемого воздуха га 1 час населением планеты 4887682305550290,00: смЗ

Количестве выдыхаемого углекислого газе за 1 час насело» мин планеты

1955072922220.12'смЗ

Количество еыпьмаемого углекислого га »а за 1 час насел»! нем планеты к 2003п а я

3871 044 тонн

Необходима определить

сколько углекислого геэа

(С02) будет выделяться населенней

планеты к 2030 году.

Расчет Изменить | параметры I

Ртавит . . |

Население планеты к 2030 году человек

Коаічвсіво д> «агель* *>« движений 1 человеком аа 1 час

(количество цюпус* и» юго еоэдоа 1 івяоееком зэ1 час

Количество прспугеамого воаауа аа 1. час н и а д т с и планеты смЗ

К ст т сгъо выдыхаемого ytnaw cnoro rasa da 1 чае йасёленнвм плаиггы

ісмЗ

ф гш »кю го гам за 1 час т о т

Количество пропускаемого ооздДО sal дькател&ное движение

Cancel

68

Page 70: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ЕТШІНШ ЙЩШИсходные данные щ .............Ежегодно население планеты увеличивается на 0.018 2

Население планеты к 2000 году 6500000000 человек

Количество пропускаемого человеком воздухе за 1 дыхательное 500* смЗ

Количество дыхательных движений 18 за 1 минуту

Выдыхаемый воздух содержит углекислого газа 0.05!%

Плотность С02 0.00198 смЗ

Необходимо определить

сколько углекислого гаэа

(002) будет выделяться населением

планеты к 2030 году.

і Расчет } Изменить Iпараметры ]

Выход

Решение I

Население плаісггы к 2030 году 11100606214.562: человек

Количество дыхательных движений 1 человеком 1080.00 за 1 час

Количество пропускаемого воздуха 1 человеком 540000.00 за 1 час

5994327355863570.00 смЗКоличество пропускаемого воздуха за 1 час населением планеты

Количество выдыхаемого углекислого газа за 1 час населением планеты

2997163677931.78 смЗ

Количество выдыхаемого углекислого газа за 1 час населением планеты к 2003 годушшваашшйшшшавшашшшж

5334.384 тонн

6.3. Биологические модели развития популяций

Рассмотрим процедуру моделирования отношений «хищник — жертва» в природном сообществе, через по­строение эколого-биологической модели развития популя­ции сайгаков.

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

69

Page 71: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

то же время и занимающих определенную территорию. И, наконец, сообщество — это совокупность совместно сосу­ществующих популяций.

В классической экологии рассматриваются взаимодей­ствия нескольких типов:

- взаимодействие организма и окружающей среды;- взаимодействие особей внутри популяции;- взаимодействие между особями разных видов (между

популяциями).

Содержательная постановка задачи

Сайгак — парнокопытное животное семейства полоро­гих антилоп, проживают в Киргизских степях, преимущест­венно у Аральского моря.

Начальная численность популяции сайгаков (жертвы) составляет 1000 (S) особей. Сайгаками питается волк (хищ­ник). Выжившая к концу каждого года часть популяции сай­гаков увеличивает свою численность на 30% (PR S). На­чальная численность популяции волков составляет 15 (V) особей, один волк потребляет по 30 (S V) сайгаков ежегод­но, годовой прирост популяции волков составляет 10% (PR V)- Смертность сайгаков по иным причинам равна ну­лю. Смертность волков равна нулю.

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

Задача 1. Рассчитайте изменения численности сайгаков через 1, 3, 5 и 10 лет при полном отсутствии хищников.

Задача 2. Рассчитайте численность сайгаков через 1,3, 5 и 10 лет, если начальная численность хищников состав­ляет N особей, она не изменяется на протяжении указанно­го периода времени, и каждый волк съедает в среднем по К сайгаков в год.

70

Page 72: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Задача 3. Рассчитайте численность сайгаков через 1,3,5 и 10 лет, если начальная численность волков составля­ет N особей и возрастает на М % ежегодно и каждый волк съедает в среднем по К сайгаков в год.

Математическое описание модели

В данной задаче необходимо описать модель процесса изменения численности популяции сайгаков:

— прирост популяции сайгаков на конец года можно найти следующим образом: численность сайгаков на начало года умножить на процент прироста;

— численность сайгаков через 3, 5, 10 лет (при полном отсутствии хищников) можно найти, выполнив сле­дующие вычисления: к численности сайгаков на на­чало года прибавить прирост популяции сайгаков за год;

— аналогично можно вычислить изменение численно­сти волков;

— численность сайгаков через 3, 5, 10 лет (если чис­ленность хищников составляет N особей, она не из­меняется на протяжении указанного периода време­ни, и каждый волк съедает в среднем по К сайгаков в год) можно найти, выполнив следующие вычисле­ния: от изменения численности популяции отнять количество жертв, которое съедает N хищников;

— численность сайгаков через 3, 5, 10 лет (если на­чальная численность волков составляет N особей и возрастает на М % ежегодно, и каждый волк съеда­ет в среднем по К сайгаков в год) можно найти, вы­полнив следующие вычисления: от изменения чис­ленности популяции отнять количество жертв, кото­рое съедает N хищников (с учетом роста их количе­ства).

71

Page 73: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Построение компьютерной модели развития попу­ляции с использованием языка Visual Basic

Практическая значимость модели заключается в созда­нии базы экспериментальных данных зависимости числен­ности сайгаков от некоторых постоянно изменяющихся па­раметров (процент прироста сайгаков, количество сайгаков, потребляемых хищником, начальная численность хищни­ков, процент прироста хищников).

Этапы построения компьютерной модели:1. Спроектируем интерфейс приложения. Для этого на

форме установим:- таблицу для ввода данных эксперимента: начальная

численность жертвы, процент прироста жертвы, ко­личество жертв, потребляемых одним хищником, на­чальная численность хищников, процент прироста хищников;

- таблицу для вывода результатов эксперимента: изме­нение численности сайгаков при полном отсутствии хищников; изменение численности сайгаков, если численность хищников N особей (она не изменяется на протяжении указанного периода времени, и каж­дый волк съедает в среднем по К сайгаков в год); изменение численности сайгаков, если начальная численность волков составляет N особей и возрас­тает на М % ежегодно, и каждый волк съедает в среднем по К сайгаков в год;

- шесть кнопок Расчет, Эксперимент, Выход, Диа­грамма, Диаграмма!, Диаграмма2.

72

Page 74: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Результат эксперимента

2. Примерный программный код:

Dim i, N, N1 As IntegerDim x, у, Pi As DoubleDim S As Integer' численность сайгаковDim V As Integer' численность волковDim IZ_P, IZ PP, IZ PPP As Single ' изменение численностисайгаковDim IZ_ V As Single ' изменение численности волков Dim PR_S, PR_V As Single 1 прирост популяции сайгаков и волковDim S_V As Integer' количество сайгаков, съедаемых одним волком

Private Sub Command l_Click()Gr2.Rows — 12 For i = 0 To 10Gr2.TextMatrix(i + 1,0) = i ' заполнение периода от 0 до 10 года

73

Page 75: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

NextFor i = 2 To 11IZ_P = Int(Gr2.TextMatrix(i -1 ,1 ) + Gr2.TextMatrix(i -1 ,1 )* PR_S/ 100)Gr2.TextMatrix(i, 1) = Format$(IZ_P, "#0#")NextFor i = 2 To 11IZPP = Int((Gr2.TextMatrix(i -1 ,2 ) + Gr2.TextMatrix(i - 1,2) *PR_S /100) - Grl.TextMatrix( 1,4) * Grl.TextMatrix(l, 3)) Gr2.TextMatrix(i, 2) = Format$(IZ_PP, "#0#")NextFori = 2 To ИIZ_V = Int(Gr2.TextMatrix(i -1 ,4 ) + Gr2/T extMatrix(i -1 ,4 )* PR_V / 100)Gr2.TextMatrix(i, 4) = Format$(IZ_V, "#0T)NextFori = 2 To 11IZPPP= Int((Gr2.TextMatrix(i -1 ,3 ) + Gr2.TextMatrix(i - 1,3)* PR S/100) - Gr2.TextMatrix(i - 1,4) * Grl.TextMatrix(l, 3))Gr2.TextMatrix(i, 3) = Fonnat$(IZ_PPP, "#0#")NextFori = l To 11g(i) = Gr2.TextMatrix(i, 1)SS = SS + g(i)NextPrivate Sub Command2_Click() m = MsgBox("IloBTopHM", 4 + 32)If m = 6 Then Grl .Rows = 2 Grl.Cols = 6 \For i = 0 To 5 Grl.TextMatrix(l, i) = ""Next

74

Page 76: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

G t2 .R o w s = 2 Gr2.Cols = 5 For i = 0 To 4 Gr2.TextMatrix(l, i) = ""NextFonn_ActivateElseCommand 1 .Enabled = False Command2.Enabled = False End If End Sub

Private Sub Command3_ClickO EndEnd Sub

Private Sub Form_ActivateOS = InputBox( "Начальная численность жертвы", "Ввод дан­ных")Grl.TextMatrix(l, 1) = SPR S = 1прШВох("Процент прироста жертвы ", " Ввод дан­ных ")Grl.TextMatrix(l; 2) = PR_SS_V = 1прШВох("Количество жертв, потребляемых одним хищником", _ " Ввод данных ")Grl.TextMatrix(l, 3) = S_VV = ІприіВох("Начальная численность хищников", " Ввод данных ")Grl.TextMatrix(l, 4) = VPR_V = 1прЩВох("Процент прироста хищников", " Ввод данных ")Gr 1 .Тex tMatri х( 1, 5) = PR_V Gr2.TextMatrix(l, 1) = S Gr2.TextMatrix(l, 2) = S

75

Page 77: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Gr2.TextMatrix(l, 3) = S Gr2.TextMatrix(l, 4) = VGr2.TextMatrix(0,2) = "Изменение численности сайгаков, если _численность хищников" + Str(V) + " особей" Gr2.TextMatrix(0, 3) = " Изменение численности сайгаков, если _численность хищников " + Str(V) + " особей и возрастает на " + _ Str(PR_V) + "% ежегодно"End Sub

Private Sub Form Load()Grl .Rows = 2 Grl.Cols = 6 Grl.ColWidth(O) = 500 Grl .RowHeight(0) = 1200 For i = 1 To5 Grl.ColWidth(i) = 1200 Next iGrl.TextMatrix(0, 1) = | Начальная численность жертвы, S" Grl.TextMatrix(0,2) Щ | Процент прироста жертвы, PR_S" Grl .TextMatrix(0, 3) = " Количество жертв, потребляемых одним _хищником, S_V"Grl .TextMatrix(0,4) = " Начальная численность хищников, V"Grl .TextMatrix(0, 5) = | Процент прироста хищников,PR_V"Gr2.Rows = 2Gr2.Cols = 5Gr2. ColW idth(0) = 500Gr2.RowHeight(0) 1 1500Gr2.TextMatrix(0, 0) = "Год"For i = 1 To 4

76

Page 78: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Gr2.ColWidtfc(i) = 1800 Next iGr2.TextMatrix(0,1) = " Изменение численности сайгаков при полном _ отсутствии хищников "Gi2.TextMatrix(0,2) = " Изменение численности сайгаков, если _численность хищников N особей"Gr2.TextMatrix(0,3) = " Изменение численности сайгаков, если __численность хищников N особей и возрастает на М % еже­годно"Gr2.TextMatrix(0,4) — " Изменение численности хищников" End Sub

Private Sub Command2_Click() m - MsgBox("noBTopHM", 4 + 32)If m = 6 Then Grl.Rows = 2 Grl.Cols = 6 For i = 0 To 5 Grl .TextMatrix(I, i) = ""NextGr2.Rows = 2 Gr2.Cols = 5 For i = 0 To 4 Gr2.TextMatrix(l, i) = ""NextForm_ActivateElseCommand 1 .Enabled = False Command2.Enabled = False End If End Sub

77

Page 79: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Private Sub Command3_Click()Call gistr(Picturel, 1)End Sub

Private Sub Command4_Click()EndEnd Sub

Private Sub Command5_Click()Call gistr(Picturel, 2)End Sub

Private Sub Command6_Click()Call gistr(Picturel, 3)End Sub

'Процедура строит гистограмму на объекте Area Sub gistr(Area As Object, k)Dim h, w As Double Dim max As Double

For i = 1 To 11g(i) = Gr2.TextMatrix(i, k)Next'определение наибольшего количества сайгаков max = g(l)For i = 1 To 11If max < g(i) Then max = g(i)Next i'проверка введенных данных If (g(l) — 0) Of (max = 0) Then Exit Sub ' координаты задаются в пикселях Area.ScaleMode = vbPixels h - Area.ScaleHeight / 3.5

78

Page 80: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

w = Area.ScaIeWidth / 3.5 'очистка области от графики Area.Cls'установка размера шрифта Area.Font.Size = 8 i = lWhile i <= 11'вывод гистограммы на область AreaArea.Line (30 * i, h)-Step(20, -h * (g(i) / max) * 0.2), ncolor(i),BFArea.CurrentX = 30 * iArea.CurrentY = h * (1 - (g(i) / max) * 0.3) - 5 Area.Print Format(g(i), "#0#")ntext(i) = Left(Gr2.TextMatrix(i, 0), Len(Gr2.TextMatrix(i, 0)))Area.CurrentX = 30 * iArea.CurrentY = h / 3.5 + 120Area.Print Format(ntext(i))i = i + lWendEnd Sub

ириииищиищищри ІШІЩ0

Page 81: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

3. Запустите проект, поэкспериментируйте с различны­ми значениями изменяемых параметров: начальная числен­ность жертвы, процент прироста жертвы, количество жертв, потребляемых одним хищником, начальная численность хищников, процент прироста хищников.

Page 82: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Анализ данных

При сравнении трех графиков можно судить о влиянии количества волков на популяцию сайгаков.

При отсутствии хищников количество особей в попу­ляции стремительно растет (задача №1), так как рост чис­ленности сайгаков ничем не сдерживается.

При наличии небольшой популяции волка (15 особей) популяция сайгаков на протяжении четырех лет уменьшает­ся, а затем исчезает. Здесь играет роль достаточно большое количество волков. 15 волков вполне способны истребить в течение 4 лет популяцию сайгаков из 1000 особей, несмотря на то, что годовой прирост популяции сайгаков — 30 %, а годовой прирост популяции волка равен нулю.

При годовом приросте численности волков в 10 %, кри­вая популяции зайцев стремительно исчезает после 3 лет.

81

Page 83: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Построение компьютерной модели отношений «хищник — жертва» в природном сообществе в элек­тронных таблицах

При использовании формул Excel для построения ком- \ пьютерной модели отношений «хищник — жертва» в при­родном сообществе пользователю необходимо знать поня- j тие и принципы использования абсолютных, относитель­ных и смешанных ссылок в формулах MS Excel.

В зависимости от задачи на ячейки могут устанавли­ваться абсолютные, относительные или смешанные ссылки.Для адресации ячеек в формулах Excel используются отно­сительные ссылки, позволяющие при копировании формул автоматически изменять адреса относительно ячеек, в кото­рые происходит копирование. Относительные ссылки запи­сываются простым указанием номеров строк и букв столб­цов ячеек, например А2, С38, AD23.

Абсолютные ссылки противоположны относительным.Они используются, когда необходимо сохранение адресов ячеек при копировании формулы в другую ячейку. Для обо­значения абсолютной ссылки перед номером строки и бук­вой столбца нажатием клавиши F4 указывается знак $. На­пример, абсолютная ссылка на ячейку А1 будет выглядеть следующим образом: $А$1.

Сочетанием абсолютных и относительных ссылок яв­ляются смешанные ссылки. Их используют, когда при копи­ровании формулы нужно сохранять фиксированным только один параметр, то есть номер строки или букву столбца.При этом перед сохраняемым параметром адреса пишется знак $, а перед изменяемым — нет. Например, для ссылки $В8 номер столбца при копировании меняться не будет, а номер строки будет автоматически изменяться согласно по­ложению ячейки с формулой. Ссылка, у которой фиксиро-

82

Page 84: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ванным остается номер строки, а номер столбца меняется, выглядит следующим образом: В$8.

Рассмотрим примеры использования различных ссылок в формулах. Допустим, что в диапазоне А1:ВЗ введены чи­словые данные, а в ячейки C1,D1,E1,F1,G1 — формулы с применением относительных, абсолютных и смешанных ссылок.

г- а I в г • с г-, ур: •. 1 _ ғ j . м I:;ту■ 15 5 *Л1+В1 =$А$1+$8$1 =$А$1*В1 =А$1*В1 =$А1*В1В 23! б 29 20 21" _ 21" 29

7' 41’ 48 Ш ~~5в1 56 484

[ ..[ '

Объясним результат вычислений в ячейках при копиро­вании введенных формул по вертикали:

1. В ячейку С1 введена формула =А1+В1 с использова­нием относительных ссылок, поэтому при копировании формулы адреса ячеек автоматически изменились относи­тельно ячеек, в которые произошло копирование.

пр ' ■ Г4 ;.! .!:> - . u .. . • :1 *6- —«А1+В12 2& -—е——*А2+В23 *——*4-—«АЗ+ВЗ

ш т2. В ячейку D1 введена формула =$А$1+$В$1 с исполь­

зованием абсолютных ссылок, поэтому при копировании формулы адреса ячеек не изменились относительно ячеек, в которые произошло копирование.

А В Ш г D1 =$А$1+$В$12 23 1 +$В$ 1

' 3 7 41 =^$1+$В$14 |

83

Page 85: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

3. В ячейку El введена формула =$А$1+В1 с использо­ванием абсолютной ссылки только на ячейку $А$ 1, поэтому при копировании формулы адрес ячейки А1 не изменился, а адрес ячейки В1 изменился относительно ячеек, в которые произошло копирование.

4. В ячейку F1 введена формула =А$1+В1 с использо­ванием смешанной ссылки на ячейку А$1, здесь при копи­ровании остается фиксированным только один параметр номер строки.

А В ! F1 3ft$1+B12 І 23 Т» ^ £ * $1+В23 j 7 44— «*$1+ВЗ 1 jятдч- .. ----—---------------

Проанализировав данный случай, можно увидеть, что результаты вычислений в столбце F аналогичны результа­там в столбце Е. Поэтому при копировании по вертикали достаточно устанавливать абсолютные ссылки только на номер строки, а при копировании по горизонтали только на номер столбца.

Т.е. если в ячейку G1 ввести формулу =$А1+В1 с фик­сированным номером столбца А и выполнить копирование по вертикали, то результаты вычисления в столбце G не бу­дут отличаться от результатов в столбце С.

Для решения задачи построения компьютерной модели отношений «хищник — жертва» в природном сообществе

4 |

84

Page 86: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

средствами Excel необходимо выполнить следующие дейст­вия:

1. Оформите пользовательскую таблицу на рабочем листе Excel. В ячейках В2 и D2 установите процентный формат ячейки, выполнив команду Формат —> Ячейки... —> Число —> Процентный.

2. Введите в диапазон ячеек А1:Е2 начальные парамет­ры численности, а также процент ежегодного прироста хищников и жертвы.

3. Заполните диапазон ячеек А5:А15 обозначениями временного периода в 10 лет. В экологии «начальным» го­дом принято считать «нулевой» год, поэтому период в 10 лет начинаем с 0 года.

4. Для решения задачи № 1:- присвойте ячейке В5 значение $А$2, где $А$2 — аб­

солютный адрес ячейки А 1, в которой хранится начальная численность популяции сайгаков;

- введите в ячейку В6 формулу = ЦЕЛОЕ(В5 + В5*$В$2) для определения изменения численности сайгаков через 1 год при полном отсутствии хищников (в формуле используется функция ЦЕЛОЕ, т.к. количество животных не может быть дробным и абсолютная ссылка на ячейку $В$2, где хранятся данные о проценте прироста жертвы);

- скопируйте формулу в диапазоне В6:В15 с помощью маркера заполнения (чтобы скопировать содержимое выде­ленного диапазона в соседние ячейки, можно навести ука­затель мыши на черный квадрат в углу выделенного диапа­зона (маркер заполнения) и, как только он примет вид чер­ного крестика, зажать левую кнопку мыши и переместить маркер в нужном направлении).

5. Для решения задачи № 2:- присвойте ячейке С5 значение $А$2, где $А$2 — аб­

солютный адрес ячейки А1, в которой хранится начальная численность популяции сайгаков;

85

Page 87: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

- введите в ячейку С6 формулу =С5-$С$2*$Е$2 + С5*$В$2 для определения изменения численности сайгаков через 1 год, учитывая наличие хищников ($С$2*$Е$2 — ко­личество сайгаков, потребляемых волками ежегодно);

- скопируйте формулу в диапазоне С6:С15.6. Для решения задачи № 3:- присвойте ячейке D5 значение $С$2, где $С$2 — аб­

солютный адрес ячейки С2, в которой хранится начальная численность популяции волков;

- введите в ячейку D6 формулу = D5+D5*$D$2 для оп­ределения изменения численности волков через 1 год ($D$2 — процент прироста хищников);

- скопируйте формулу в диапазоне D6: D15;- присвойте ячейке Е5 значение $А$2, где $А$2 — на­

чальная численность популяции сайгаков;...... А .... В с ; D Е

12

численностьсайгаков(жертва)

%ежегодногоувеличениячисленности

сайгаковчисленность

волков (хищник)

% ежегодного увеличения численности

волков

жертв потребляемых

одним хищником в

год2000 40% 15 15% 30

3

изменение изменениечисленности | численности изменение численности

І сайгаков при сайгаков, если сайгаков, если численность полном численность волков составляет 15 особей и

отсутствии хищников 15 особей возрастает на 20% ежегодно

4год

задача 1 задача 2

изменениечисленностиволков задача 3

5 0 год 2000 2000 15 20006 1 год 2800 2350 17 2290ГВ

2 год 3920 2840 19 26363 год 5488 3526 21 3060

9 4 год 7683 4486 24 3565ТО І5 год 10756 5830 27 418011 6 год 15058 7712 31 49231217 год 21081 10346 35 584213 |8 год 29513 14034 40 697814 |9 год 41318 19197 46 838915 '10 год 57845 26425 52 10185

- введите в ячейку Е6 формулу = Е5+Е5*$В$2 - D6*$E$2 для расчета численности сайгаков через 1 год, ес­

8 6

Page 88: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ли начальная численность волков возрастает на 15% еже­годно (Е5+Е5*$В$2 — численность сайгаков при росте по­пуляции на 40%, D6*$E$2 — потребление сайгаков при росте популяции волков на 15%).

7. Отобразите полученные данные графически, для этого:- выделите несмежные диапазоны А4:А15, В4:В15,

С4:С15, Е4:Е15;- выполните команду Вставка Щ Диаграмма для вы­

зова Мастера диаграмм;- на шаге 1 Мастера диаграмм выберите тип диаграм­

мы Гистограмма;- на шаге 2: источник данных в диаграмме выберите

Ряды в: строках.

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

S8000 56000 54000 52000 50000 48000 40000 44000 42000 40000 38000 Э6000 34000 32000 30000 28000 28000 24000 22000 20000 18000 18000 14000 12000 10000 8000 8000 4000 2000 ft

задач» 1 задача 2 задача 3

87

Page 89: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Построение компьютерной модели биологической модели развития популяции с использованием языка Visual Basic for Applications

Примерный интерфейс приложения и примерный код

Private Sub CommandButtonl_ClickO Dim S As Integer' численность сайгаков Dim V As Integer' численность волков Dim P R S As Single * процент увеличения численности сай­гаковDim PR_V As Single1 процент увеличения численности вол­ков

Dim S_V As Integer * ежегодное потребление волками сайга­ковRange("A:A").ColumnWidth = 5 Range(" 1:1 ").RowHeight = 40 Range("B:B").ColumnWidth = 20 Range( "С: С "). ColumnW idth = 20 Range("D:D").ColumnWidth = 20 ' установка процентного формата в ячейке Range("E:E").NumberFormat = "0%" Range("E:E").ColumnWidth = 20 ' установка процентного формата в ячейке Range("G:G").NumberFormat = "0%" Range("G:G").ColumnWidth = 20 Range("F:F").ColumnWidth = 15 Range("H: Н "). ColumnW idth = 15 ' перенос слов по словам в диапазоне ячеек Range("A 1:Н 1"). WrapText = TrueRange("Al:Hl").Value = Аггау(Тод”, "изменение численно­сти жертвы цри отсутствии хипщиков", "изменение числен­ности жертвы при наличии хипщиков”, "изменение числен­

Page 90: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ности жертвы при наличии роста хищников", "% увеличе­ния численности жертвы'*", "численность хищников", "% увеличения численности хищников", "количество жертв, потребляемых одним хищником в год")Range("2:2").Select ActiveWindow.FreezePanes = True Range("a2").Select' заполнение диапазона А2:А12 обозначениями периода от Одо 10 годаFor j = 1 То 11Cells(j + 1, l).Value = j - 1Next' присвоение переменным значений из текстовых оконWith UserFormlS = .TextBoxl.TextV = .TextBox2.TextPR_S = .TextBox3.TextPR_V = .TextBox4.TextS_V = .TextBox5.TextEnd With1 присвоение ячейкам таблицы значений переменныхWith ActiveSheet.Cells(2, 2).Value = S.CeUs(2,3).Value = S.Cells(2,4). Value = S.Cells(2, 5).Value = PR_S /4.00.Cells(2, 6).Value = V.Cells(2, 7).Value = PR_V / 100.Cells(2, 8).Value = S_VEnd With' изменения популяции сайгаков через год TextBox6.Text = Int(S + S * PR_S / 100)Cells(3,2).Value = TextBox6.Text

1 изменения популяции сайгаков через три года

89

Page 91: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

For i = 4 To 6Cells(i, 2).Value = Int(Cells(i - 1,2).Value + Cells(i - 1,2). Value * PR_S / 100)ListBox 1.Addltem Cells(i, 2).Value 'заполнение спискаNextEnd Sub

Вопросы

1. Какое моделирование называют физическим?2. Приведите примеры физических моделей.3. Каковы цели создания математических моделей в класси

ческой экологии?4. В каком случае используются абсолютные, относи

тельные и смешанные ссылки?

90

Page 92: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Задания для самостоятельной работы

1. Реализуйте решение примеров 2 и 4 с помощью при­ложения Microsoft Excel и среды Visual Basic for Applications.

2. Постройте компьютерные модели решения физиче­ских задач с использованием среды Visual Basic и Visual Basic for Applications, а также приложения Microsoft Excel:

2.1. Парашютист совершает затяжной прыжок с высоты Х—7 км с начальной скоростью V. Оценить, приблизительно через какое время парашютист должен раскрыть парашют. До земли должно остаться не менее X кон = 1 км и не менее 30 сек запаса времени. Его масса т= 70 кг, g=9,8 м/с2. Экс­периментально установлено, что сила сопротивления возду­ха Ftp=AV+BV3, где V — скорость, а коэффициенты равны следующим значениям: А=5Н с/м, В=10_2Нс3/м3.

2.2. Зная начальную скорость пули (Ко), коэффициент сопротивления воды (к) и ускорение пули (а), необходимо вычислить высоту, на которой должен находиться охотник, стреляющий в акулу.

2.3. Промоделировать падение тела в средах разной плотности (например, вода, бензол, этиловый спирт). Изу­чить влияние вязкости среды на характер движения. Соста­вить графики зависимости скорости движения от времени.

2.4. В начальный момент времени стержень длиной 5 м имеет температуру 20°. На левом конце стержня включается источник тепла, который моделирует температуру по закону и(0,/) = 20 +10 sin w t .

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

2

вплоть до значения времени t = 5Іү- . Есть ли качествен-

91

Page 93: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ные отличия в процессе при быстрой ( w » I — ) и медлен-

2.5. Тело брошено вертикально вверх с некоторой вы­соты. Определить, через какое время тело упадёт на по­верхность земли.

2.6. Тело брошено вертикально вверх с начальной ско­ростью vo = 3,13 м/с. Когда оно достигло верхней точки по­лета, из того же начального пункта с такой же начальной скоростью бросили второе тело. Определите, на каком рас­стоянии от точки бросания встретятся тела; сопротивление воздуха не учитывать.

2.7. Артиллерийское орудие расположено на горе высо­той Һ. Снаряд вылетает из ствола со скоростью ув, направ­ленной под углом а к горизонту. Пренебрегая сопротивле­нием воздуха, определите:

- дальность полета снаряда по горизонтальному на­правлению;

- скорость снаряда в момент падения;- угол падения;- начальный угол стрельбы, при котором дальность по­

лета наибольшая.3. Постройте компьютерные модели решения биологи­

ческих задач с использованием среды Visual Basic и Visual Basic for Applications, а также приложения Microsoft Excel.

3.1. Одноклеточная амеба каждые 3 часа делится на­двое. Построить модель роста численности клеток через 3,6, 9, 12... часов. Факторы, приводящие к гибели амеб, не учитываются.

3.2. Рассмотрите систему, в которой численность осо­бей популяции зависит только от естественной рождаемо-

I

Page 94: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

сти и смертности. Пищи в такой системе всем хватает, эко­логия не нарушена, жизни ничто не угрожает.

3.3. Рассмотрите систему, в которой численность попу­ляции зависит не только от рождаемости и смертности, но и от ограниченности пищевых и других ресурсов.

4. Постройте компьютерные модели решения экологи­ческих задач с использованием среды Visual Basic и Visual Basic for Applications, а также приложения Microsoft Excel.

4.1. С 1998 года павлодарские экологи привлекают внимание общественности и властей к угрозе экологическо­го бедствия для жителей Павлодара. Угроза исходит от тер­ритории электролизного цеха бывшего химического завода, где скопилось огромное количество ртути.

Павлодарский химический завод работал с 1975 по 1993 год, производил хлор и каустическую соду методом ртутного электролиза. Из-за несовершенства технологии и оборудования на полцеха ежегодно проливалось по 4 куби­ческих метра жидкого ядовитого металла — ртути. Завод закрыли, но ртуть осталась в стенах, в конструкциях, в зем­ле. Ртуть подобно раковой опухоли расползается под зем­лей, захватывая все большие территории, в данное время примерно шириной 200 м и длинной 150 метров.

Вся эта масса продвигается в сторону Иртыша на 55 метров в год. Расстояние до русла реки Иртыш от террито­рии химического завода *равно 4850 м. Летом при высокой температуре воздуха ртуть испаряется и в виде облака из ядовитых паров может достичь черты города. Ртуть проса­чивается в грунт на глубину 3 метра, и уровень ее в грунто­вых водах в 10 раз превышает допустимые нормы.

Пока павлодарцы взялись за промежуточный этап про­екта обезвреживания ртути. Суть идеи — окольцевать «под­земное озеро» ядовитого металла стеной из глины длиной 700 метров. Для этого в земле делаются глубокие — в 20-25 метров узкие надрезы, куда закачивается глиняный раствор.

93

Page 95: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Становясь твердым, как камень, он уже не пропускает ртуть (которая просачивается даже через бетон). За летний сезон 2000 года была выстроена стена длиной 130 м.

а) Разработайте проект, позволяющий определить:— а) количество скопившейся на месте электролизного

цеха ртути (в м3);— б) количество скопившейся на месте электролизного цеха

ртути (в тоннах);— в) через сколько лет ртуть может достигнуть Ирты­

ша?б) Разработайте проект, который определит, была изо­

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

в) Разработайте проект, который определит; какова бу­дет площадь зараженной ртутью земли через 5 лет, если не принять срочные меры по нейтрализации ртути. Ежегодно площадь увеличивается на 30 %. Превысит ли площадь пре­дельно допустимое значение в 50000 м2?

4.2. Уничтожение лесов является причиной выделения j объема двуокиси углерода на планете. Вследствие этого весьма вероятно потепление среднегодовой температуры на планете на 5-10 градусов Цельсия в ближайшие 50 лет. Та­кое повышение температуры повлечет за собой огромный экологический, экономический и социальный взрыв. Это станет причиной того, что уровень воды поднимется на 1-2 метра из-за тающих полярных льдов и часть суши будет по­глощена морем.

Лес не случайно называют «зеленым щитом» или «зе­леными легкими планеты». Именно листва деревьев погло­щает углекислый газ и выделяет кислород, тем самым, пре­дотвращая угрозу экологическому балансу окружающей среды.

94

Page 96: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

В 2001 году была принята большая программа по воз­рождению Баянаульского государственного национального природного парка и лесовосстановлению Чалдайского ре­ликтового соснового бора на юге области. Чалдайский бор в предшествующие годы значительно пострадал из-за плано­вых и самовольных вырубок, от усыхания и больших лес­ных пожаров, охвативших в лето 1999 года 2560 га площа­дей. Сегодня здесь требуется провести лесовосстановитель­ные работы на площади не менее 30 тысяч га. Управление охраны окружающей среды выделило на эти цели в 2000 году 19 миллионов тенге (посадка 1 га лесных культур сто­ит 30000 тенге).

а) Разработайте проект, определяющий:- сколько времени потребуется на восстановление тер­

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

вого бора.б) Разработайте проект, определяющий, возродится ли

сосновый бор в полном объеме к 2030 году, если сохранить прежние темпы восстановления леса. Определите процент выполнения восстановительных работ.

в) Для восстановления соснового бора в питомниках Чалдая и Бескарагая имеется 5 миллионов 30 тысяч сажен­цев. Разработайте проект, определяющий, какова будет вы­сота растения через 6 лет, если естественный ежегодный прирост составляет 5,5%? Высота саженца 20 см. Через сколько лет высота деревьев станет равной 5 м?

4.3. В ближайшие 50 лет весьма вероятно потепление среднегодовой температуры на планете на 5—10 градусов Цельсия. Такое повышение температуры повлечет за собой огромный экологический, экономический и социальный взрыв. Это станет причиной того, что уровень воды подни­мается на 1-2 метра из-за тающих полярных льдов и часть суши будет поглощена морем. Метан является причиной

95

Page 97: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

18 % глобального потепления. Источником выделяемого в атмосферу метана являются рисовые поля, скот и городские свалки. Свалки портят внешний вид городского пейзажа, почти постоянно горят, отравляя и без того загрязненный городской воздух, вредные вещества просачиваются сквозь слои почвы в подземные воды. По данным областного управления по экологии и биоресурсам под стихийные свалки в Павлодаре занято свыше 250 гектаров земли, при­годной для освоения. Объем бытовых и промышленных от­ходов составляет 186 кг на человека в год. Около 80 % всего мусора свозится на свалки.

На территории Павлодарской области накоплено около 4 миллиардов тонн твердых отходов производства, включая 1 миллион тонн отходов повышенной опасности. Уровень использования отходов относительно годового объема их образования составляет всего 0,5 %.

На ликвидацию тонны мусора город, имеющий мусо­роперерабатывающий центр, тратит в среднем 36 долларов, в то же время город, не имеющий такого центра, тратит по­рядка 120 долларов. Павлодарские экологи выступают за создание специализированной фирмы для переработки му­сора.

а) Разработайте проект, определяющий:- на сколько тонн в год увеличиваются свалки в городе

Павлодаре, если население г. Павлодара в 2000 году составило 296 000 человек;

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

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

96

Page 98: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

в) Разработайте проект, определяющий, на сколько тонн увеличатся свалки в городе Павлодаре к 2030 году, ес­ли рост мусора составляет 2,5 % в год.

7. Моделирование динамических процессов

Одна из классификаций моделей связана с фактором времени. Модели можно разделить на статические и дина­мические по тому, как отражается в них динамика происхо­дящих процессов.

Статическая модель — это единовременный срез ин­формации по данному объекту. Например, обследование учащихся в стоматологической поликлинике дает состояние их зубов на данный момент времени: соотношение молоч­ных и постоянных, наличие пломб, дефектов и т.п.

Динамическая модель представляет картину изменения объекта по времени. В примере с поликлиникой медицин­скую карту ученика, отражающую изменение состояния его зубов в течение многих лет, можно считать динамической моделью.

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

ВИДЫ МОДЕЛЕЙ

СТАТИЧЕСКИЕ ДИНАМИЧЕСКИЕ

—► ИМИТАЦИОННЫЕ

^ВЕРОЯТНОСТНЫЕ

97

Page 99: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

Как видно из примеров, один и тот же объект можно охарактеризовать и статической, и динамической моделью.

При построении моделей используют два принципа: дедуктивный (от общего к частному) и индуктивный (от ча­стного к общему). !

При первом подходе рассматривается частный случай общеизвестной фундаментальной модели. Здесь при задан­ных предположениях известная модель приспосабливается к условиям моделируемого объекта. Например, можно по­строить модель свободно падающего тела на основе извест­ного закона Ньютона ma=mg - Ғсопр и в качестве допусти­мого приближения принять модель равноускоренного дви­жения для малого промежутка времени.

Второй способ предполагает выдвижение гипотез, де­композицию сложного объекта, анализ, затем синтез. Здесь широко используется подобие, аналогичное моделирование, умозаключение с целью формирования каких-либо законо­мерностей в виде предположений о поведении системы. На­пример, подобным способом происходит моделирование строения атома. Вспомним модели Томпсона, Резерфорда, Бора.

7.1. Имитационное моделированиеМодель — имитационная, если она предназначена для

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

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

98

Page 100: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

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

К основным функциям компьютера при моделировании систем можно отнести:

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

— исполнение роли Средства постановки и решения но­вых задач, не решаемых традиционными средствами, алгоритмами, технологиями;

— исполнение роли средства моделирования для полу­чения новых знаний;

— исполнение роли «обучения» новых моделей (само­обучение модели).

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

Таким образом, имитационные модели не просто отра­жают реальность с той или иной степенью точности, а ими­тируют её.

99

Page 101: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

Подобный метод выбора правильного решения называ­ется методом проб и ошибок.

Построение имитационной модели «График квадра­тичной функции»

Функция — одно из важнейших математических поня­тий. Использование компьютерной модели графика функ­ции может оказать существенную помощь при изучении свойств функции.

Содержательная постановка задачиПостроить график функции у = ах1 + с — частный слу­

чай квадратичной функции (при Ь=0).Цели моделирования. Необходимо создать компью­

терную модель графика функции для его дальнейшего ана­литического исследования.

Формализация задачи и построение компьютерной модели средствами Visual Basic

При создании математической модели чаще всего ста­вится цель дальнейшего аналитического исследования мо­дели, поэтому используются аналитические решения, пред­ставленные формулами, выражающими результаты иссле­дования через исходные данные (аргументы).

Модель предстает перед нами в виде уравнения у = ах2 + с , где х — независимая переменная, а, с — неко­торые числа, причем а * 0. Построение графика любой функции начинается с табличного задания данной функции.

100

Page 102: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Для табличного задания функции необходимо выбрать диа­пазон и шаг изменения аргумента. Пусть аргумент х изме­няется в диапазоне от xj до х? с шагом Һ.

Этапы построения компьютерной модели:

1. Спроектируем интерфейс приложения. Для этого на форме установим:

- текстовые поля для ввода значений коэффициентов уравнения а и с, диапазона изменения аргумента хi и Х'2 , значения шага Л;

- таблицу для вывода значений переменных х и у на заданном диапазоне;

- таблицу для вывода результатов эксперимента: значе­ний коэффициентов уравнения а и с, цвета графика функции при заданных значениях коэффициентов а и с;

- графическое поле для построения графиков функции;- четыре кнопки Заполнение таблицы, Построение

графика, Продолжим, Выход.

101

Page 103: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

2. Примерный программный код:

Dim i As Integer Dim f As DoublePrivate a, h, n, xl, x2, c, m, q As Double Dim x(1000), y(1000) As Double

Private Sub Command lClickO a = Val(Textl.TextS) с = Val(Text2.Text) xl = Val(Text3.Text) x2 = Val(Text4.Text) h = Val(Text5.Text) i = 0n = ((x25 — xl) / h) + 1 Grl.Rows = n + 1 For k = 1 To nGrl.TextMatrix(k, 0) = Str(k)NextkWhile (xl <= x2) And (i <= n) i = i+ 1 x(i) = xly(i) = a * x(i) л 2 + сGrl .TextMatrix(i, 1) = Format$(x(i), "#0.00###") Grl .TextMatrix(i, 2) = Format$(y(i), "#0.00###") xl = x l + h Wend End SubPrivate Sub C&mmand3_Click()Static d As Integer d = d + 1Gr2.TextMatrix(d, 0) = d Gr2.TextMatrix(d, 1) = Text 1.Text Gr2.TextMatrix(d, 2) = Text2.Text

Page 104: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Gr2.Col = 3: Gr2.Row = d Gr2.CellBackColor = QBColor(q)Gr2.Rows = 0r2.Rows + 1 Textl.Text = "" : Text2.Text = ""TextB .Enabled = False Text4.Enabled = False Text5.Enabled = False w = MsgBox("IIoBTopHM", 4 + 32)If w = 6 Then For i = 1 To n Grl.TextMatrix(i, 0) = ""Grl.TextMatrix(i, 1) = ""Grl .TextMatrix(i, 2) = ""Next iGrl .Rows — 2Textl.SetFocusElseTextl.Enabled = False: Text2.Enabled = False End If End Sub

Private Sub Command6_(5lick()EndEnd Sub

Private Sub Form_Load()Textl.Text = ”"Text2.Text = ""Text3.Text-rt"Text4.Text = ""Text5.Text = ""Grl.ColWidth(O) = 500Grl .Col = 1: Grl .Row - 0: Grl .Text = "x"Grl.Col =2: Grl .Text - "y"

103

Page 105: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

V J I 1 .V_,U1 W 1 ) = 1 W U

Grl.ColWidth(2) = 1000Grl.Rows = 2Gr2.ColWidth(0) = 500Gr2.Col = 1: Gr2.Row = 0: Gr2.Text = "a"Gr2.Col = 2: Gr2.Text = "c"Gr2.ColWidth(l) = 1000 Gr2.ColWidth(2) 41000 Gr2.ColWidth(3) = 1000 Gr2.Rows = 2Gr2.Col = 3: Gr2.Text = "цвет"End Sub

Private Sub Command2_ClickO Static m As Integer m = m+ 1 q = mPicture 1.Line (-100,0H100,0)Picture 1.Line (0, -150)-(0,150)For i = 1 To n + 1Picturel.PSet (x(i) * 5, y(i) * 5), QBColor(m)NextEnd Sub

Private Sub FormlnitializeO Picture l.ForeColor = RGB(0,0,0)Picturel.Scale (-100,150H100, -150) Picture 1. AutoRedraw = True Picturel.Line Xr-100,0)-(100,0)Picture 1.Line (0, -150)-(0,150)End Sub

104

Page 106: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

3. Проведем эксперимент, проверим зависимость изме­нения графика функции при изменении исходных данных. При сравнении полученных результатов можно сформули­ровать основные свойства квадратичной функции.

4. В результате получилась динамичная модель, ото­бражающая варианты степени влияния величины х на ре­зультирующую величину у.

аг +£*вИ І І Й В #

Укажите интарввл «. «шиз.

105

Page 107: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Пример 5. Построить график функции, заданной систе­мой уравнений:

При этом выполняются условия: оси координат пересе­каются в точке (0,0); на осях X и Y должны отображаться значения, по которым строится график.

Цели моделирования. Необходимо создать компью­терную модель графика функции для его дальнейшего ана­литического исследования.

Формализация задачи и построение компьютерной модели средствами электронных таблиц Excel

При создании математической модели чаще всего ста­вится цель дальнейшего аналитического исследования мо­дели, поэтому используются аналитические решения, пред­ставленные формулами, выражающими результаты иссле­дования через исходные данные (аргументы).

Модель предстает перед нами в виде «системы уравне­ний». Построение графика любой функции в Excel начина­ется с табличного задания данной функции. К созданию таблицы данных следует отнестись внимательно, так как этот момент является ключевым.

1. Для табличного задания функции необходимо вы­брать диапазон и шаг изменения аргумента. Пусть аргумент х изменяется в диапазоне от -10 до 10 с шагом 1.

2. Заполним диапазон А2:А22 значениями аргумента с помощью маркера заполнения.

3. Выполнение задания предполагает табулирование функции, заданной условно. Воспользуемся функциями Excel и введем в ячейку В2 формулу:

106

Page 108: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

=ECJIH(A2>=0;3*SIN(A2)- CTEITEHb(COS(A2);2);3 *КОРЕНЬ (1 +СТЕПЕНЬ(А2;2»)

4. Для построения модели воспользуемся Мастером диаграмм (Вставка—> Диаграмма), а тип диаграммы выбе­рем-— Точечная диаграмма.

5. Затем следует собственно численный эксперимент, проверяется изменение графика функции при изменении исходных данных, например, как изменится поведение гра­фика функции, если значение аргумента х<0 (А2<0) в обоих случаях.

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

1аВВ

Для решения задач моделирования и последующего анализа построенных поверхностей в курсе стереометрии также можно воспользоваться средствами Excel.

Пример б. Создайте компьютерную модель объемной поверхности (полусферы).

107

Page 109: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

проекции по формуле х2 + у2 + z2 = г для диапазона от -4 до4 с шагом 0,5.

Построение компьютерной модели средствами элек­тронных таблиц Excel

Для построения поверхности необходимо:1. Заполнить диапазон ВЗ:В19 значениями аргумента х

от -4 до 4 с шагом 0,5, с помощью маркера заполнения.2. Заполнить C2:S2 значениями аргумента z от -4 до 4 с

шагом 0,5.3. В ячейку А1 ввести значение R. Например, 4.4. В ячейку СЗ ввести формулу для вычисления значе­

ний функции =КОРЕНЬ($А$1Л2-$ВЗЛ2-С$2Л2). В формуле необходимо предусмотреть использование смешанной адре­сации на ячейки ВЗ, С2 и абсолютной адресации на ячейку А1. Это необходимо для того, чтобы при горизонтальном копировании формулы ссылки на столбец В не менялись, а при вертикальном копировании формулы, не менялись ссылки на строку 2.

5. Скопировать (с помощью маркера заполнения) фор­мулу в диапазоне СЗ: S19.

6. Получив, таким образом, заполненный диапазон 17x17, удалить из него содержимое ячеек с указанием об ошибке. В ячейках, где под корнем получается отрицатель­ное значение, Excel выдает сообщение об ошибке — #ЧИСЛО!.

7. Выделить все данные таблицы для построения диа­граммы и выбрать тип диаграммы Поверхность.

108

Page 110: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ffll8. Полученная диаграмма будет выглядеть следующим

образом.

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

109

Page 111: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

7.2. Построение имитационной модели «Схема логических элементов»

Средствами Visual Basic можно создать имитационную интерактивную компьютерную модель логической схемы, работа которой основана на законах алгебры логики.

Алгеброй Буля называется аппарат, который позволяет выполнять действия над логическими высказываниями. Ка­ждое простое или составное высказывание можно выразить в виде формулы (логического выражения), в которую вой­дут логические переменные, обозначающие высказывания, и знаки логических операций, обозначающие логические функции. Для записи логических высказываний в виде ло­гических выражений на формальном языке (языке алгебры логики) в составном высказывании нужно выделить про­стые высказывания и логические связи между ними. Истин­ность или ложность составных высказываний можно опре­делять чисто формально, руководствуясь законами алгебры высказываний, не обращаясь к смысловому содержанию высказываний. Для реализации любых составных логиче­ских операций достаточно трех типов элементов, реали­зующих три основные логические операции:

1. Логическое отрицание (инверсия) — истинно, когда исходное утверждение ложно, и наоборот. Базовый логиче­ский элемент обозначается «НЕ».

2. Логическое умножение (конъюнкция) — это соедине­ние двух простых высказываний в одно с помощью союза «И». Результат операции — логическое произведение, ис­тинно только тогда, когда истинно А и В одновременно.

3. Логическое сложение (дизъюнкция) — это соедине­ние двух простых высказываний в одном с помощью союза «ИЛИ». Полученное высказывание истинно, когда или А или В — истинны, либо истинно и А и В одновременно, и ложно только тогда, когда предпосылки А и В — ложны.

110

Page 112: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Логические элементы — это электронные схемы с од­ним или несколькими входами и с одним выходом, через которые проходят электрические сигналы, представляющие цифры 0 и 1. Все логические элементы рассматриваются по следующим параметрам:

- схема;- описание логического элемента;- логическая функция, реализующая данный элемент;- таблица истинности.Логический элемент «НЕ»Схема, отражающая работу логического элемента

«НЕ», представлена на рисунке 7.

А А

Рис. 7. Схема логического элемента «НЕ»

Логика этого элемента заключается в том, что на выхо­де будет 1 тогда и только тогда, когда на входе будет 0. F(A) = А — логическая функция, соответствующая эле­менту НЕ. Таблица истинности, отражающая работу логи­ческого элемента «НЕ»:

А А0 11 0

Логический элемент «И»Схема, отражающая работу логического элемента «И»,

представлена на рисунке 8.

111

Page 113: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Рис. 8. Схема логического элемента «И»

Логика этого элемента заключается в том, что на выхо­де будет 1 тогда и только тогда, когда на оба входа подают­ся сигналы, равные 1. Логическая функция, соответствую­щая данному элементу, имеет вид F(A, В)— А&В. Таблица истинности, отражающая работу логического элемента «И»:

А В А&В0 0 01 1 11 0 00 1 0

Логический элемент «ИЛИ»Схема, отражающая работу логического элемента

«ИЛИ», представлена на рисунке 9.

Рис. 9. Схема логического элемента «ИЛИ»

112

Page 114: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Логика этого элемента заключается в том, что на выхо­де будет 0 тогда и только тогда, когда на оба входа будут поданы сигналы 0. Логическая функция элемента ИЛИ — F(A,B)~ A v В . Таблица истинности, отражающая работу логического элемента «ИЛИ»:

А В AVB0 0 00 1 11 0 11 1 1

Из логических элементов путем их комбинации строят­ся основные схемы компьютера:

— триггер — электронный прибор, имеющий два ус­тойчивых состояния, является типичным запоми­нающим элементом, способным хранить 1 бит ин­формации;

— регистр — совокупность триггеров, предназначен­ных для хранения .числа в двоичном коде;

— сумматор — устройство, обеспечивающее суммиро­вание двоичных чисел с учетом переноса из преды­дущего разряда.

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

Содержательная постановка задачиДана логическая схема, состоящая из базовых логиче­

ских элементов (рис. 10). Определить результат работы ло­гической схемы при всех возможных комбинациях исход­ных значений.

113

Page 115: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

А 1

Рис. 10. Схема логических элементов

Цели моделирования. Создание интерактивной ком­пьютерной модели логической схемы, состоящей из базо­вых логических элементов.

Формализация задачи и построение компьютерной модели средствами Visual Basic

Для создания интерактивной модели логической схемы средствами Visual Basic:

1. Спроектировать интерфейс программы.2. Определить, какую элементарную логическую функ­

цию выполняет каждый логический элемент.3. На основе таблиц истинности, соответствующих ка­

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

4. Проверить работу логических элементов, путем вво­да «1» или «0» на их входы.

114

Page 116: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Этапы построения компьютерной модели:1. Спроектируем интерфейс приложения. Для этого на

форме установим:— текстовые поля Textl, Text2, Text3 для отображения

элементов схемы;— текстовые поля Text4, ..., Text9 для ввода исходных

данных (Text4, Text5) и отображения результатов прохождения сигналов через логические элементы;

— таблицу для вывода исходных данных и результатов;— четыре кнопки Ввод данных, Результат, Повтор, Вы-

ход. .

Text4

Texts

ИText7

НЕ

Text6

или F Text9

Text8 ::::

1i f 1

B0° I Результат данных I

Повтор I Выход

2. Примерный код программы:

Dim f, kk As IntegerDim a, b As IntegerPrivate Sub Command l_Click()

115

Page 117: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Static к As Integer k = k+ 1a = Val(Text4.Text) b m Val(Text5.Text)Text6.Text = b Grl.TextMatrix(k, 1) = a Grl.TextMatrix(k, 2) = b kk = к End SubPrivate Sub Command2_Click()If kk = 4 Then Command3.Enabled = FalseIf a = 0 And b — 0 ThenText7.Text = 0Text8.Text = 1Text9.Text = 1Grl.TextMatrix(kk, 3) = 1End IfIf a= 1 And b = 0 Then Text7.Text = 0 Text8.Text = 1 Text9.Text = 1 Grl.TextMatrix(kk, 3) = 1 End IfIf a = 0 And b = 1 Then Text7.Text = 0 Text8.Text = 0

> Text9.Text Щ1Grl.TextMatrix(kk, 3) = 1 End IfIf a= 1 And b = I Then Text7.Text = 1 Text8.Text = 0 Text9.Text m 1 Grl .TextMatrix(kk, 3) = 1

116

Page 118: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

End If End Sub

Private Sub Command3_Click() Text4'.Text = ""Text5.Text = ""Text6.Text =Text7.Text =Text8.Text = ""Text9.Text =Text4.SetFocus End SubPrivate Sub Command4_Click() EndEnd SubPrivate Sub Form_Load() Text4.Text = ""TextS.Text = ""Text6.Text = ""Text7.Text = ""Text8.Text = ""Text9.Text = ""Grl.Cols = 4 Grl.Rows 5 For i — 0 To 3 Grl.ColWidth(i) = 500 NextGrl .TextMatrix(0,1) = "A"Grl .TextMatrix(0,2) = "B"Grl .TextMatrix(0,3) = "F" Text6.Enabled = False Text7.Enabled = False Text8.Enabled = False Text9.Enabled = False

117

Page 119: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

End Sub

Private Sub Text4_KeyPress(KeyAscii As Integer) If KeyAscii о 48 And KeyAscii о 49 Then MsgBox ("Вводите только 0 или 1")Text4.Text = ""Text4.SetFocusElseText5.SetFocus End If End Sub

Private Sub Text5_KeyPress(KeyAscii As Integer) If KeyAscii о 48 And KeyAscii о 49 Then MsgBox ("Вводите только 0 или 1")Text5.Text = ""Text5.SetFocusElseCommand 1 .SetFocus End If End SubPrivate Sub Form ActivateOText4.SetFocusEnd Sub

118

Page 120: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Ф орм ализация задачи и построение компьютерной модели средствами M icrosoft Excel

Для создания интерактивной модели логической схемы средствами Excel:

1. На листе Excel с помощью инструментов панели Ри­сования строится схема, состоящая из базовых логических элементов.

Г ~А~В С D Ё F rG' Н Г J К j L М N О Р ; Q R~1 1 Ги

3 | А 1

[ щ

2. Определяется, какую элементарную логическую функцию выполняет каждый логический элемент.

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

В данной схеме присутствуют три базовых логических элемента И, ИЛИ, НЕ. Для конструирования работы базо­вых логических элементов воспользуемся таблицами ис­тинности, соответствующими каждому базовому логиче­скому элементу, и функциями Excel.

119

Page 121: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

В обыденной и научной речи, кроме базовых логиче­ских связок «и», «или», «не», используются и некоторые другие: «если... то...», «тогда... и только тогда, когда...» и др. Соединение двух высказываний в одно с помощью оборота речи «если... то...» называется логическим следованием (им­пликацией). Логическая операция импликации «если ... то ....» в Excel реализуется с помощью функции ЕСЛИ и в данном случае будет иметь следующий вид — =ЕСЛИ(ЕЗ=1 ;ЕСЛИ(Е5=1; 1 ;0);0), т.е.

если утверждение А=1то если утверждение В=1

то высказывание (А=1 и В=1) Истинно иначе высказывание (А=1 и В=0) Ложно

всеиначе высказывание (А=0 и В=1) Ложно

все

4. Для конструирования формул, определяющих истин­ность или ложность высказываний можно воспользоваться функциями Excel.

Исходя из расположения базовых элементов на листе Excel, формула с рассмотренной выше функцией помещает­ся в ячейку 14. Аналогично, основываясь на таблице истин­ности соответствующей базовому элементу НЕ, формула Excel, отражающая работу этого элемента, примет вид — =ЕСЛИ(Е9=0;1;0). Соответственно формула помещается в ячейку 19. Формула для реализации логического высказыва­ния с помощью союза "ИЛИ" может иметь вид — =ЕСЛИ(І4=0;ЕСЛИ(І9= 1; 1 ;0); 1).

Введенные формулы можно посмотреть при включен­ном режиме отображения формул на листе Excel (Сервис —► Параметры —* вкладка Вид —> Параметры окна —*■ уста­новить флажок формулы)

120

Page 122: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

-ЕСПИ1ЕЗ» Т;ЕСПИ(Е5-1;1 .01:01• и и

или -—► -ЕСТ1 И(14=0:Е СЛИ(Кн1:1 Я}: 1)1

НЕ-ҒГЛИвЧМ>.1Л)

5. Проверяется работа логических элементов, путем ввода "1" или-"О" на их входы.

Таким образом, используя правила алгебры логики и возможности Excel, можно создать интерактивную модель работы логической схемы, состоящей из базовых логиче­ских элементов.

7.3. Вероятностные математические модели (метод Монте-Карло)

Методы Монте-Карло — общее название группы чис­ленных методов, основанных на получении большого числа реализаций случайного (стохастического) процесса, кото­рый формируется таким образом, чтобы его вероятностные характеристики совпадали с аналогичными величинами ре­шаемой задачи.

Случайные величины использовались для решения раз­личных прикладных задач достаточно давно. Например, в XVIII веке граф Жорж Луи Леклерк де Бюффон сформули­ровал задачу о нахождении вероятности того, что брошен­ная на разграфленный лист бумаги игла пересечет одну из линий. Оказалось, что, подсчитав долю отрезков пересе­кающих прямые, можно приближенно определить число л, а при увеличении количества попыток точность получаемого результата будет увеличиваться.

Идея была развита сначала Э. Ферми в 1930-х годах, а затем Джоном фон Нейманом и Станиславом Уламом. Улам задался вопросом, какова вероятность того, что пасьянс

121

Page 123: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

«сложится». Ему в голову пришла идея, что вместо того, чтобы использовать обычные для подобных задач сообра­жения комбинаторики, можно просто поставить «экспери­мент» большое число раз и, таким образом подсчитав число удачных исходов, оценить их вероятность. Он же предло­жил использовать компьютеры для расчетов методом Мон­те-Карло.

Теоретическая основа метода была известна давно. Од­нако до появления ЭВМ этот метод не мог найти сколько- нибудь широкого применения, ибо моделировать случайные величины вручную — очень трудоемкая работа. Появление первых электронных компьютеров, которые могли с боль­шой скоростью генерировать псевдослучайные числа, резко расширило круг задач, для решения которых стохастиче­ский подход оказался более эффективным, чем другие ма­тематические методы. После этого произошел большой прорыв, и метод Монте-Карло применялся во многих зада­чах, однако его использование не всегда было оправдано из- за большого количества вычислений, необходимых для по­лучения ответа с заданной точностью.

Годом рождения метода Монте-Карло считается 1949 год, когда в свет выходит статья Метрополиса и У лама «Метод Монте-Карло». Название метода происходит от на­звания города в княжестве Монако, широко известного своими многочисленными казино, поскольку именно рулет­ка является одним из самых широко известных генераторов случайных чисел.

Метод Монте-Карло является вероятностным методом. С помощью этого метода можно вычислять площади фигур, объёмы, решать системы уравнений, приближённо вычис­лять значение числа п .

Метод Монте-Карло чаще всего применяют при при­ближённом вычислении площадей геометрических фигур с точностью, достаточной для практики. Хотя ответ при таких

122

Page 124: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

Сущность этого метода в следующем. Предположим, у нас есть геометрическая фигура сложной формы, площадь которой необходимо вычислить. Пусть площадь нашей фи­гуры S1. Впишем эту фигуру в простую геометрическую фигуру, площадь которой вычисляется легко, например, в прямоугольник, круг или квадрат. В нашем случае прямо­угольник, площадь которого S2.

Представим, что площадь прямоугольника и площадь нашей фигуры покрываются слоем снега, как во время сне­гопада. В этом случае число снежинок которые упали в кон­тур фигуры N, и число снежинок М, которые упали в контур прямоугольника, пропорциональны, так как толщина снеж­ного покрова примерно одинакова.

SI N „Тогда можно записать пропорцию: — = — . Из этойS 2 М

Nформулы найдём: S\ = S2---- . Теперь, если количествоМ

«снежинок» N и М заменить точками, которые получены с помощью генератора случайных чисел (функция RND), можно решить любую задачу с использованием метода Монте-Карло.

123

Page 125: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Построение вероятностной модели вычисления чис­ла я = 3,141592653...

Содержательная постановка задачи

Пусть дан квадрат и вписанный в него круг единичного радиуса. Для вычисления площади круга проводят экспери­мент — случайным образом бросают точки в квадрат. Есте­ственно предполагать, что чем больше площадь фигуры, тем чаще в нее будут попадать точки. Таким образом, мож­но сделать допущение: при большом числе точек, наугад выбранных внутри квадрата, доля точек, содержащихся в данной фигуре, приближенно равна отношению площади этой фигуры и площади квадрата.

Цель моделирования: создать имитационную модель определения числа я методом Монте-Карло.

Построение математической модели и ее исследование

Для вычисления числа я с помощью метода Монте- Карло рассмотрим квадрат, вершины которого имеют коор­динаты (0,0), (0,2), (2,2), (2,0) и круг радиуса 1 с центром в точке (1,1) (рис. 11).

Рис. 11. Единичная окружность, вписанная в квадрат

124

Page 126: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Площадь круга вычисляется по формуле S = jiR2. Так как радиус круга равен 1, то площадь круга будет равна тс. Выберем внутри квадрата N случайных точек, определим их координаты — числа х и у. Число точек, попавших при этом внутрь круга, обозначим NKP, считая, что точка принадле­жит квадрату, если 0 < х < 2 и 0 < у <2. Исходя из того, что уравнение окружности с центром в начале координат имеет вид х2 + у2 — t, то в нашем случае точка попадает в круг, ес­ли (х— 1)2+(у—I)2 1 1, иначе она вне круга.

Это и есть математическое соотношение, позволяющее для каждой точки определить, лежит ли она в круге.

S NГеометрически очевидно, что — S2L_ = —2222.} отсюда^квадрата ^

С . Л Г 4 . д гС — квадрата круга a L 'круга Т _

дг т' е- Щ • 1аК как

4-W_aiSкруга = л ’ получаем п — — ■ (отношение числа удачных

исходов к общему количеству бросаний, умноженное на 4). Эта формула дает оценку.числа я. Чем больше N, тем боль­ше точность этой оценки.

Следует заметить, что данный метод вычисления пло­щади будет справедлив только тогда, когда случайные точ­ки будут не «просто случайными», а еще и «равномерно разбросанными» по всему квадрату. Для моделирования равномерно распределенных случайных чисел в интервале от 0 до 1 в языках программирования используется датчик случайных чисел — функция RANDOM.

Таким образом, суть компьютерного эксперимента за­ключается в обращении к функции RANDOM для получе­ния координат точки (х, у) N раз. При этом определяется, попадет ли точка с координатами (х, у) в круг единичного радиуса. В случае попадания увеличивается на 1 значение ВеЛИЧИНЫ N круга.

125

Page 127: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Построение алгоритма и компьютерной модели оп­ределения числа я с использованием языка Visual Basic

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

Рис. 12. Алгоритм нахождения числа л методом Монте- Карло

126

Page 128: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Этапы построения компьютерной модели:1. Спроектируем интерфейс приложения. Для этого на

форме установим:— таблицу для вывода результатов: количество точек N,

координат х и у, попадания точки в круг, количество попавших в круг точек N1, числа Pi;

— таблицу для вывода результатов эксперимента: коли­чество точек N, количество попавших в круг точек N1, число Pi;

— три кнопки Расчет, Эксперимент, Выход.

Результаты экспериментов

Для ввода исходных данных — количества точек N ис­пользуйте диалоговую функцию InputBox. Для продолже­ния эксперимента — диалоговую функцию MsgBox.

2. Примерный программный код:

Dim i, N, N 1 As Integer Dim x, у, Pi As Double

127

Page 129: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Private Sub Command l_Click()Randomize Timer N = Val(Grl.TextMatrix(l, 1))Grl. Rows = N + 1 For i = 1 To N Grl.TextMatrix(i, 0) = Str(i) x = Rnd * 2 у = Rnd * 2Grl .TextMatrix(i, 2) = Format$(x, "#0.00#") Grl .TextMatrix(i, 3) = Format$(y, "#0.00#") If (x - 1) л 2 + (у - 1) л 23S 1 Then N1 =N1 + 1Grl.TextMatrix(i, 5) = N1 Grl.TextMatrix(i, 4) = "попала"Else rGrl.TextMatrix(i, 4) = "не попала”End If NextPi = 4 * N l / NGrl .TextMatrix( 1, 6) = Format$(Pi, "#0.00#") End SubPrivate Sub Command2_Click()Static к As Integer k = k+ 1 Gr2.Rows = к + 1 Gr2.TextMa1rix(k, 0) = к Gr2.TextMatrix(k, 1) = N Gr2.TextMatrix(k, 2) = N1 Gr2.TextMatrix(k, 3) = Format$(Pi, "#0.00#") m = MsgBox("IIoBTopHM", 4 + 32)If m = 6 Then Grl .Rows = 2 Grl.Cols = 7 For i = 1 To 6

128

Page 130: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Grl.TextMatrix(l, i) = ,,nN1 = 0: N = 0NextForrnActivateElseCommand 1.Enabled = False Command2.Enabled = False End If End Sub

Private Sub Command3_Click()EndEnd Sub

Private Sub Form_Activate()t = 1прШВох("Введите количество точек", "Ввод данных") Grl.TextMatrix(l, 1) = t End SubPrivate Sub Form_Load()Grl .Rows = 2 Grl .Cols = 7 Grl.ColWidth(0) = 1000 Grl.RowHeight(0) = 1000Grl .Col = 1: Grl .Row = 0: Grl .Text = "Количество точек N" Grl .Col = 2: Grl .Text = "Координата X"Grl .ColWidth( 1) = 1000 Grl .ColWidth(2)= 1000 Grl .Col = 3: Grl.Text = "Координата Y"Grl .ColWidth(3) = 1000Grl.Col = 4: Grl.Text = "Попадание точки в круг"Grl .ColWidth(4) =1000Grl .Col = 5: Grl.Text = "Кол-во попавших в круг точек N1"Grl.ColWidth(5) = 1000Grl .Col = 6: Grl .Text = "Число Pi"

129

Page 131: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Grl .ColWidth(6) = 1000 Gr2.Rows = 2 Gr2.Cols = 4 Gr2.ColWidth(0) = 1000 Gr2.RowHeight(0) = 1000Gr2.Col = 1: Gr2.Row = 0: Gr2.Text = "Количество точек N" Gr2.ColWidth(l) = 1000 Gr2.ColWidth(2) = 1000 Gr2.ColWidth(3) = 1000Gr2.Col = 2: Grl.Row = 0: Gr2.Text = "Кол-во попавших в круг точек N1"Gr2.Col = 3: Grl.Row = 0: Gr2.Text = "Число Pi"End Sub

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

ШвШ

Количество тенек N

КоовОинягаX

КоординатаY

ПопаамюТО«йвW

Коя-ео попавши а к«гточВ* N1

Число Pi

1 2870 1.486 0.56 попала 1 3.147г 0.028 0.427 не попала3 0.195 1.876 не попала4 0248 1.763 не попала5 0.702 1-307 попала6 1.60 1.271 попала 37 1.982 0.552 не попала8 1.112 1.496 попала 49 1527 1.757 попала 510 0.469 1.006 попала 6І1 Ш 0.755 1.299 попала 712 0,67 0.428 попала 8ІЗ 0.913 0jD6i попала 914 1.186 0375 попала 1015 1.482 0,218 попала 11

Результаты экспериментовV

Page 132: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Построение компьютерной имитационной модели определения числа п методом Монте-Карло средствами языка программирования Visual Basic for Applications

Исходные данные при создании программного кода языка на языке программирования Visual Basic for Applications — это размер стороны квадрата, содержащего круг, и количество точек, которые мы будем случайным об­разом выбирать внутри квадрата. Результатом является чис­ло п.

Лист Excel используем для фиксирования «удачного попадания» точки в круг.

A в " С D 1 1 Ш . -2П2"ркол-во точек

количество попадание попавших вI 1 точек N координата X координата Y точки в круг крут N1 число Pij 2 30000 0.468254447 0,926619768 не попала 23572 3,14293331 3 0.858809352 0.31599021 попалаj 4 0.901959777 1 630386591 попала Ч В Ш М М Р Ш Н Н Ш М Н Н Ш Ш М Ш М Г З )’ 5 1,461597323 0,903134108 лопала

6 1.012941718 1.33357358 попалаj 7 0.548790612 0.568311453 не попалаI 8 0 965770583 0,482469797 попала N N1

9 1.070665132 1.460936308 попала Г ЖЯО Т - } АЯЯ! to 1.786266685 1,179614305 попалаJ i i 1.258425593 1,886672735 не попала12 0.161500335 0.183796167 попала

! 13 1.62500751 1.307434797 попала П

' 14 1.639791846 1,910054445 не попала Г Т Іе п т г в з

; 15 1.964276195 1.341386557 попала! 16 1.530711532 1 429678202 попала і Г ' ‘1; 17 0.351426959 0.762942076 не попалаI i e

ЛІ1 925079703 1.470206499 попала0.142905116 0.502765417 попала

20 0 694966674 1.4154284 попала21 0.976405978 0,647770643 попала

I 22 0493692756 0 305382967 не попала: 23

— fb . i i i*n i i1.770874858

/1.441121817 не попала

Примерный программный код для создания имитаци­онной модели:

Private Sub CommandButtonl_Click() Randomize Timer Range(" 1:1").WrapText = T rue Rows("l:l").Font.FontStyle = "полужирный"

131

Page 133: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ActiveSheet.Range("A:A").ColumnWidth =15 Acti veSheet. Range(" В: В "). ColumnW idth =15 ActiveSheet.Range("C:C").ColumnWidth =15 ActiveSheet.Range("D:D").ColumnWidth =15 ActiveSheet.Range("E:E").ColumnWidth =15 ActiveSheet.Range("F:F").ColumnWidth = 10

ActiveSheet.Range("Al") = "количество точек N" ActiveSheet.Range("Bl") = "координата X" ActiveSheet.Range("Cl") = "координата Y" ActiveSheet.Range("Dl") = "попадание точки в круг" ActiveSheet.Range("El") = "кол-во точек попавших в круг N1"ActiveSheet.Range("Fl") = "число Pi"

N = Val(TextBoxl.Text)ActiveSheet.Range("A2") = N

For i = 1 To NCells(i + 1,2).Value = Rnd * 2 Cells(i + 1,3).Value = Rnd * 2 x = Rnd * 2 у = Rnd *2If (x - 1) Л 2 + (у - 1) л 2 <= 1 ThenN1 =N1 + 1TextBox2.Text = N1Cells(i + 1,4). Value = "попала"ElseCells(i + 1,4). Value = "не попала"End If NextPi = 4 * Nl / N TextBox5.Text = Pi

132

Page 134: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ActiveSheet.Range("E2") = N1 ActiveSheet.Range("F2") = Pi End Sub

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

Результаты экспериментов приведены в таблице:

Количество точек N

Кол-во точек, попавших в круг N1 Число Pi

500 410 3,281000 795 3,1810000 7894 3,1576

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

Вопросы1. Приведите классификацию моделей, связанную с фак­

тором времени.2. Какая модель называется имитационной?3. Что такое имитационное моделирование?4. В каких случаях применяют имитационное моделиро­

вание?5. В чем сущность метода Монте-Карло?

Задания для самостоятельной работы5. Постройте имитационную модель «График функции»

(с использованием языков Visual Basic и Visual Basic for

133

Page 135: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Applications, а также приложения Microsoft Excel), если: a) y = ax2 +bx+c; 6) y = a-cosba; в) y = a-sinba.

6. Постройте интерактивную модель логической схемы средствами Microsoft Excel, Visual Basic и Visual Basic for Applications:

a)

8. Экономические модели (определение оптимальной стратегии производства

изделий с учетом ограничений и т.д.)

Существует множество форм деятельности предпри­ятий, которые связаны с распределением ресурсов. Эти ре­сурсы включают труд, сырье, оборудование и денежные средства. Поскольку обычно размеры ресурсов ограничены, возникают определенные проблемы. Если компания выпус­кает продукцию нескольких видов с использованием одного и того же оборудования и трудовых ресурсов, то ее админи­страция должна решить, какое количество продукции каж­дого вида производить. Принятое решение будет направле­но на удовлетворение определенной цели администрации.

134

Page 136: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

Аналогично, если компания обладает определенным капиталом для инвестирования ряда проектов, распределе­ние денежных сумм по каждому проекту будет подчинено некоторой цели. Она может заключаться в минимизации риска или максимизации темпов роста капитала. Перемен­ные решения в данном случае Щ, это денежные суммы, по­мещаемые в каждый проект.

В общем случае цель состоит в определении наиболее эффективного метода такого распределения ресурсов по со­ответствующим переменным, которое оптимизирует неко­торый результат функционирования системы. Очень часто полезным инструментом в процессе распределения ресур­сов являются методы моделирования. Существует ряд раз­личных методов, основанных на идеях математического программирования. Рассмотрим только один из них, кото­рый нашел наиболее широкое применение, — линейное про­граммирование.

Линейное программирование является подходящим ме­тодом для моделирования распределения ресурсов, если цель и ограничения на ресурсы можно выразить количест­венно в форме линейных взаимосвязей между переменны­ми.

Этот метод включает в себя ряд шагов:1. Необходимо осуществить математическую формали­

зацию задачи линейного программирования. Это означает, что нужно идентифицировать управляемые переменные и цель задачи. Затем с помощью этих переменных цель и ог-

135

Page 137: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

раничения на ресурсы описываются в форме линейных со­отношений.

2. После завершения формулировки задачи линейного программирования рассматриваются все допустимые соче­тания переменных. Из них выбирается то, которое оптими­зирует целевую функцию задачи. Если исследуемая задача содержит только две переменные, ее можно решить графи­чески. Однако в случае исследования задачи со многими переменными необходимо прибегнуть к одному из алгеб­раических методов решения задач линейного программиро­вания, для использования которых существуют пакеты при­кладных программ.

3. Когда оптимальное решение получено, производится его оценка.

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

Основная процедура постановки задачи оптимизации является общей для формулирования всех задач линейного программирования и включает следующие этапы:

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

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

136

Page 138: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

шаемой задачи. Всесторонняя оценка эффективности и ка­чества объекта возможна при использовании множества критериев, что приводит к многокритериальное™.

8.1. Решение задач на оптимизацию средствами Visual Basic

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

Пример 7. Завод выпускает обычные станки и станки с программным управлением, затрачивая на один обычный станок 200 кг стали и 200 кг цветного металла, а на один станок с программным управлением 700 кг стали и 100 кг цветного металла. Завод может израсходовать в месяц до 46 тонн стали и до 22 тонн цветного металла. Сколько станков каждого типа должен выпустить за месяц завод, чтобы объ­ём реализации был максимальным, если один обычный ста­нок стоит 2000 д.е., а станок с программным управлением 5000 д.е.

Математическое описание оптимизируемой модели

В задаче необходимо определить оптимальную (макси­мальную) прибыль предприятия от реализации обычных станков и станков с программным управлением. Она скла­дывается из суммы произведений стоимости одного станка на количество станков каждой категории.

Таким образом, целевая функция, суммарную стои­мость которой следует максимизировать, запишется так: f(x,y)=2000x+5000y, где X — количество обычных станков; Y — количество станков с программным управлением, 2000 д.е. — стоимость обычного станка; 5000 д. е. — стои­мость станка с программным управлением.

137

Page 139: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Ограничения:- положительность количества обычных станков:

Х>=0;- положительность количества станков с программным

управлением: Y>=0;- расходование стали в месяц — 46 тонн;- расходование цветного металла в месяц — 22 тонны.

Ғ(х, у) = 2000.x + 5000_у;200х + 700у< 46000;

« 200* + 100^ < 22000;

' Щ 0;х > 0.

Построение компьютерной модели

1. Спроектируем интерфейс приложения. Для этого на форме установим:

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

- таблицу для вывода результатов эксперимента: коли­чество обычных станков и станков с программным управлением, количество стали и цветных металлов в месяц, необходимых для производства указанного количества станков, прибыль предприятия;

- для ввода ограничений установите текстовые поля Textl-Text8;

138

Page 140: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

— для вывода результатов оптимизации — текстовые поля Text9- Textl 1;

— две кнопки Расчет, Выход.Для нахождения оптимального плана необходимо орга­

низовать перебор значений плановых показателей X — ко­личество обычных станков; Y — количество станков с про­граммным управлением, которые могут изменяться в сле­дующих диапазонах: 0 < X < 100 (если допустить, что стан­ков с ПУ не будет выпущено ни одного, то максимальное количество обычных станков не может превышать 110 штук, исходя из ограничений по стали и цветным метал­лам). Аналогично, 0 < Y < 65.

Г*■ Y

Исходные данные.slUi-Sl

_L

Ограничения

Сталь < 46000£ Р " f:> I 0 'І • g : j Металл £ [22000

Оптимальный план

Обычныхстанков

Станков с ПУ

Максимальнаяприбыль

2. Примерный программный код:

Private X, у, ST, ZM, zf, max As DoublePrivate i, n As IntegerPrivate Sub Command! ClickQ

139

Page 141: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

For X = 0 To 110 For у = 0 To 65z f= X * Val(Grl.TextMatrix(l, 7)) + у * Val(Grl.TextMatrix(l, 8»ST = X * Val(Grl.TextMatrix(l, 1)) + у * Val(Grl.TextMatrix(l, 3))ZM = X * Val(Grl.TextMatrix(l, 2» + у *Val(Gr 1 .TextMatrix( 1,4))If ST <= Val(Grl.TextMatrix(l, 5» And ZM <= Val(Grl.TextMatrix(l, 6)) Then n = n+ 1Gr2.TextMatrix(n, 0) = n Gr2.TextMatrix(n, 1) = X Gr2.TextMatrix(n, 2) = у Gi2.TextMatrix(n, 3) = ST Gr2.TextMatrix(n, 4) = ZM Gr2.TextMatrix(n, 5) = zf Gr2.Rows = Gr2.Rows + 1 End If Next у NextXmax = Gr2.TextMatrix( 1,5)For i = 2 To nIf Gr2.TextMatrix(i, 5) > max Then max = Gr2.TextMatrix(i, 5) m = i End If NextiText9.Text = Gf2.TextMatrix(m, 1)TextlO.Text = Gr2.TextMatrix(m, 2)Textl l.Text = max End Sub

Private Sub Command2_ClickO

140

Page 142: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

EndEnd Sub

Private Sub Form_Load() n = 0Textl .Enabled = False Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False Text5.Enabled = False Text6.Enabled = False Text7.Enabled = False Text8.Enabled = False Text9.Enabled = False Textl O.Enabled = False Textl 1 .Enabled = False Grl .Cols = 9 Grl.Rows = 2Grl .TextMatrix(0,0) = "№ nn"Grl.RowHeight(0) = 1500 Grl.ColWidth(O) = 400 Grl.ColWidth(l) = 1000 Grl .ColWidth(7) = 1000 Grl .ColWidth(8) = 1000 For i — 2 To 6 Grl .ColWidth(i) = 1300 Next iGrl.TextMatrix(0, 1) = "Количество стали в месяц на один обычный станок, кг"Grl.TextMatrix(0,2) = "Количество цветных металлов в ме­сяц на один обычный станок, кг"Grl .TextMatrix(0, 3) = "Количество стали в месяц на один станок с программным управлением, кг"

141

Page 143: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Grl.TextMatrix(0,4) = "Количество цветных металлов в ме­сяц на один _ станок с программным управлением, кг" Grl.TextMatrix(l, 1) = 200 Grl .TextMatrix( 1,2) = 200 Grl.TextMatrix(l, 3) = 700 Grl.TextMatrix(l, 4) = 100Grl.TextMatrix(0, 5) = "Количество стали в месяц, кг" Grl.TextMatrix(0,6) = "Количество цветных металлов в ме­сяц, кг"Grl.TextMatrix(l, 5) = 46000 Grl .TextMatrix(1,6) = 22000Grl.TextMatrix(0, 7) = "Стоимость обычного станка, д.е." Grl .TextMatrix(0, 8) = "Стоимость станка с программным управлением, д.е."Grl.TextMatrix(l, 7) т 2000 Grl .TextMatrix(1, 8) = 5000 Gr2.Cols = 6 Gr2.Rows = 2Gr2.TextMatrix(0,0) = "№ nn"Gr2.TextMatrix(0,1) = "Количество обычных станков, X” Gr2.TextMatrix(0,2) = "Количество станков с программным

управлением, Y"Gr2.RowHeight(0) = 1200 Gr2.ColWidth(0) = 600 For i = 1 To 5 Gr2.ColWidth(i) = 1200 NextiGr2.TextMainx(0, 3) = "Количество стали в месяц " Gr2.TextMatrix(0,4) = "Количество цветных металлов в ме­сяц"Gr2.TextMatrix(0, 5) = "Прибыль предприятия"End Sub

142

Page 144: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Анализ полученных результатов

Максимальная прибыль достигается при следующих значениях плановых показателей:

' - количество обычных станков — 90;- количество станков с программным управлением —

40;— максимальная прибыль — 380000.Примечание. Для решения данной задачи можно ис­

пользовать Симплекс-метод.

Пример 8. Для изготовления трех видов изделий А, В и С используется токарное, фрезерное, сварочное и шлифо­вальное оборудование. Затраты времени на обработку одно­го изделия для каждого из типов оборудования указаны в таблице. В ней же указан общий фонд рабочего времени

143

Page 145: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

Типоборудования

Затраты времени (стан ко- часы) на обработку одно­го изделия каждго вида

Общий фонд рабочего вре­мени оборудо­вания (часы)А В С

Фрезерное 2 4 5 120Токарное 1 8 6 280Сварочное 7 4 5 240Шлифовальное 4 6 7 360Прибыль (д. е.) 10 14 12

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

Математическое описание оптимизируемой модели

Предположим, что будет изготовлено xj единиц изде­лий вида А, х2 единиц вида В и хз единиц вида С.

Тогда для производства такого количества изделий по­требуется затратить 2х, + 4jc2 + 5х3 станко-часов фрезерно­го оборудования.

Так как общий фонд рабочего времени станков данного типа не может превышать 120, то должно выполняться не­равенство 2Ху + 4*2 + 5х3 < 120.

Аналогичные рассуждения относительно возможного использования токарного, сварочного и шлифовального оборудования приведут к следующим неравенствам:

144

Page 146: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

jc, + Sx2 + 6x3 < 280,7jc, + 4jc2 + 5x3 < 240,4jc, + 6x2 + 7Xj < 360.

При этом так как количество изготовляемых изделий не может быть отрицательным, то jc, > 0, х2 > 0, jc3 > 0.

Далее, если будет изготовлено xj единиц изделий вида А, Х2 единиц вида В и хз единиц вида С, то прибыль от их реализации составит F = 10х, +14х2 + \2х3.

Таким образом, линейная функция F, максимум кото­рой требуется определить, вместе с системой неравенств и условием неотрицательности переменных образуют матема­тическую модель исходной задачи:

F = Юл:,+14х2+12х32х, + 4х2 + 5х3 < 120,Xj + 8х2 + 6х3 < 280,7хх + 4х2 + 5х3 < 240,4xj + 6х2 + 7х3 < 360, x^x^xj^o.

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

Задание. Постройте компьютерную модель решаемой задачи и проанализируйте полученные результаты.

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

Пример 9. Фирма должна отправить некоторое количе­ство кроватей с трёх складов в пять магазинов. На складах

145

Page 147: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

г

имеется соответственно 15, 25 и 20 кроватей, а для пяти ма­газинов требуется соответственно 20, 12, 5, 8 и 15 кроватей. Стоимость перевозки одной кровати со склада в магазин приведены в таблице.

СкладыМагазины

В1 В2 ВЗ В4 В5

А1А2АЗ

Как следует спланировать перевозку, чтобы её стои­мость была минимальной?

Построение математической модели

Пусть Ху — количество кроватей, отправляемых со склада I в магазин j . Все Ху > 0, и в силу ограничений на возможности поставки со складов (предложение) и спрос в магазинах они удовлетворяют следующим условиям:

\ХП+Х12+Х13+Х1Л+Х15 =15, 1х21+х22+х23+х24 + х25 =25,(для предложения):

L*31 + *32 + *33 + *34 + * 3 5 = 2 ° -

(для спроса):

* 1 1 + * 2 1 + * 3 1 = 2 0 >

*12 Ш *22 + *32 = 1 2 ,

*,3+*23+^33 =5,

*14 + *24 *34 =

■*15 + *25 ■*" *35 = 1 5 .

146

Page 148: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Стоимость перевозок равна:F = l-x,j +0*х12 +3-д^з +4-дс14 +2'Х15 +.5’Х21 +... + 4-х34 +3-х35.

Таким образом, имеем следующую математическую модель:

F — l-xll + 0 ’Xj2 +3-xl3+4-x]4+2-xIS+5-x2l +.. .+4-х34 +Ъ-х35, xiX+xl2+xl3+x}4+xl5=l5,Х21 +х22+х23+х24+х25 = 25, х31 +х32 +Х33+х34 +х35 =20, хХІ+х2]+х3} = 20,

4

Х12+Х22 + х32 =12,

•*13 *23 *33 ~х14+х24+х34 =8,x 15 + x 25 + x 35 =15,ху > 0, 1 = 1,2,3; j = 1,2,3,4,5.

Для решения задачи можно использовать метод пере­бора или Симплекс-метод.

При решении транспортных задач используются и дру­гие методы, например, метод северо-западного угла (диаго­нальный), метод наименьшего элемента, метод потенциалов и другие.

8.2. Оптимизированное моделирование в экономике.Анализ данных средствами MS Excel

Существует три основных типа работ, выполняемых в Excel: ввод данных, их анализ и отображение результатов. Понимание и точное выполнение этих операций помогают аналитику правильно организовать данные, распознать тен­денции и, как правило, разобраться в любой ситуации, по причине которой пришлось собирать те или иные данные.

147

Page 149: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Функциональные возможности Microsoft Excel позво­ляют решать задачи оптимизации и составлять прогнозы с помощью анализа «что-если», т.е. в табличном процессоре можно пересмотреть различные варианты данных для дос­тижения оптимального результата. Метод прогнозирования «что-если» позволяет получить несколько возможных спо­собов решения и прогнозирования той или иной задачи. Каждое из них имеет определённое назначение, а их ис­пользование зависит от желаемого результата.

К средствам анализа «что-если» относят: Диспетчер сценариев, Поиск решения, Подбор параметра, Таблицы данных. Все эти средства позволяют легко и быстро анали­зировать зависимость и влияние одних данных на другие.

Использование надстроек Excel для анализа данных. Надстройка Поиск решения

Инструменты, предназначенные для глубокого анализа данных, эффективного сбора данных и отображения про­анализированных результатов реализованы в надстройках Excel. Надстройки Excel — это дополнительные програм­мы, расширяющие возможности Excel путем добавления специальных команд и новых функций.

Для проведения анализа «что-если» и решения задач оптимизации в надстройки Excel включен инструмент По­иск решения. Инструмент Поиск решения может применять­ся для решения задач, которые включают много изменяе­мых ячеек, и помогает найти комбинации переменных. Он также позволяет задать одно или несколько ограничений — условий, которые должны выполняться при поиске реше­ний.

Для открытия диалогового окна Поиск решения необ­ходимо в меню Сервис выбрать пункт Поиск решения.

148

Page 150: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Если надстройка Поиск решения отсутствует в меню Сервис, установите её, используя пункт Надстройки. Для этого:

1. Откройте меню Сервис.2. Выберите пункт Надстройки.3. Установите в окне Список надстроек флажок напро­

тив Поиск решения.4. Нажмите ОК — команда Поиск решения появится в

меню Сервис.Если надстройка Поиск решения отсутствует в диалого­

вом окне Надстройки, то необходимо установить надстрой­ки Excel с диска «Microsoft Office, профессиональный вы­пуск».

Какую бы задачу ни решал пользователь, он всегда пы­тается получить наилучшее (или, как принято называть, оп­тимальное) решение. При серьезном подходе к решению любой задачи (инженерной, экономической, социальной) встают три проблемы. Первая — формулирование критерия оптимальности. Вторая — формальное описание объекта оптимизации. Третья — выбор метода (алгоритма) нахож­дения оптимального решения.

Выделим этапы решения задач оптимизации со многи­ми неизвестными С помощью инструмента Поиск решения :

1. Анализ задачи, выделение параметров и ограниче­ний.

2. Математическое описание оптимизируемой моде­ли — введение обозначений, ограничений, определение це­левой функции (необходимой для нахождения требуемого в задаче оптимального значения), вспомогательных формул.

3. Поиск решения в Excel.Приведем пример решения задачи оптимизации дан­

ных, воспользовавшись надстройкой Excel Поиск решения.Пример 10. Ученики хотят купить в столовой: булочки

по 15 тенге, чай по 10 тенге, пиццу по 35 тенге. Какой оп-

149

Page 151: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

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

Для построения компьютерной модели с помощью над­стройки Поиск решения необходимо выполнить следующие действия:

1. Разместите исходные данные на рабочем листе книги Excel, для этого введите:

- в столбец Д наименование продуктов; |- в столбец В стоимость продуктов; І- в столбец С количество продуктов, равное нулевым

значениям;- в ячейку D2 вспомогательную формулу =В2*С2

(можно воспользоваться функцией ПРОИЗВЕДО для диапазона В2:С2) и скопируйте в диапазоне D3:D4;

- в ячейку D5 целевую функцию CYMM(D5:D7); 4- для удобства восприятия можно выделить изменяе­

мые ячейки синим цветом, значения целевой ячей­ки — красным цветом.

А ■ ■ ■ ■ • С [ • О1 |Наименование Цена Кол-во Сумма2Ибулочка 15 0 =В2*С23. I чай 10 0 =ВЗ*СЗ4 ■ пицца 35 0 =В4*С4

Ж =CVMM(D2:D4)

2. В меню Сервис выберите пункт Поиск решения.3. В появившемся диалоговом окне Поиск решения в

поле Установить целевую ячейку введите адрес ячейки, зна­чение которой необходимо оптимизировать — D5.

4. Укажите условие подбора значения, равное 85.5. В поле Изменяя ячейки отметьте адреса ячеек, кото­

рые будут изменяться в процессе поиска решения — $С$2:$С$4.

150

Page 152: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

6. Добавьте ограничения для ячеек в поле Ограничения, для этого:

— щелкните по кнопке Добавишь;— в появившемся диалоговом окне в первом поле Ссыл­

ка на ячейку введите диапазон ячеек, на которые де­лается ограничение — $С$2:$С$4;

— во втором поле выберите тип ограничения из спи­ска — цел',

(Д о б а в л е н и е о г р а н и ч е н и я НИ!Ссылка на ячейку: Ограничвһие:

|$С $2:$С $4 ^ f y f u e r [целое■ ■

ОК | Отмена j Добавить I Справка J— ажа____ ■.... .........«......................... .............

- нажмите Добавить, чтобы задать другое ограниче­ние;

- в первом поле Ссылка введите диапазон ячеек, на ко­торые ставится ограничение — $С$2:$С$4;

- во втором поле выберите тип ограничения из спи­ска— >=;

- в третьем поле установите ограничение — 1;- нажмите ОК, когда все ограничения установлены.Диалоговое окно Поиск решения примет вид:

Поиск решения

Установить целевую ячейку:

151

Page 153: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

7. Нажмите кнопку Выполнить. Когда решение найде­но, появится окно Результаты поиска решения.

щРешение найдено. Все ограничения и условияолтталъности выполнены. ]}in отчёта

Результаты Я Ш <♦ {Сохранить найденное решение1 • Устойчивость

“ ... ~ Т -------------------- ' ■ J ' - Пределы< Восстановить исходные значения

| ок — 1 Отмена | Сохражть сценарий... | Ораека I

8. Отметьте Сохранить найденное решение, чтобы за­менить существующие значения найденным, или Восстано­вить исходные значения, чтобы оставить прежние значе­ния.

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

Результатом решения задачи являются следующие оп­тимизированные значения количества продуктов:

> Ф С D Е |1{Наименование Цена Кол-во Суммаш[будочка 15] _2] 30ш[чай 10 _2| 20ш[пицца 35; 3 Щшш 85

С помощью рассмотренного выше метода можно ре­шать другие типовые задачи оптимизации, которые имеют широкое практическое применение.

Пример 11. Учебно-производственный комбинат еже­месячно принимает на курсы операторов ЭВМ, водителей, программистов — 15 студентов, 17 учащихся школ и других категорий 22 человека. Стоимость курсов для разных кате­горий слушателей следующая:

Р езультаты поиска решения

152

Page 154: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Категориислушателей

Группаоператоров ЭВМ водителей программистов

Студенты 100 150 200Учащиеся 50 100 . 150Другие категории 150 200 , 250

При этом существуют ограничения на количество чело­век в группах:

- в группу набирается не менее 3 человек от каждой категории;

- количество слушателей в группе операторов ЭВМ должно быть не более 12, в группе водителей не бо­лее 27, в группе программистов не более 21.

Определить, каким образом сформировать группы, что­бы прибыль была максимальная?

Математическое описание оптимизируемой модели

В задаче необходимо определить оптимальную (макси­мальную) суммарную стоимость одного часа занятий во всех группах. Она складывается из суммы произведений стоимости 1 часа занятии на количество слушателей каждой категории. Значит, целевая функция, суммарную стоимость которой следует максимизировать, запишется так:

Х1*100 + Х2*50 + Х3*150 + Х4*150 + Х5*100 + Х6*200 + Х7*200 + Х8*150 + Х9*250,

где переменные величины:XI, Х2, ХЗ — соответственно количество студентов,

учащихся и других категорий в группе операторов ЭВМ;Х4, Х5, Х6 — количество студентов, учащихся и дру­

гих категорий в группе водителей;Х7, Х8, Х9 — количество студентов, учащихся и дру­

гих категорий в группе программистов.

153

Page 155: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Ограничения:— на количество человек в группе операторов ЭВМ

можно определить следующим образом XI + Х2 + ХЗ <= 12; в группе водителей — Х4 + Х5 + Х6 <=27; в группе программистов — Х7 + Х8 + Х9 <= 21;

— на количество принимаемых на курсы слушателей по категориям можно смоделировать так: XI + Х2 + ХЗ = 15; Х4 + Х5 + Х6 = 17; Х7 + Х8 + Х9 = 22;

- количество слушателей (XI; Х2; ХЗ...Х9) — целые числа;

- в группу набирается не менее 3 человек от каждой категории (X I; Х2; ХЗ.. .Х9)>=3.

Технология построения компьютерной модели в Excel

Для решения данной задачи средствами Excel необхо­димо выполнить следующие действия:

1. Оформите пользовательскую таблицу на рабочем листе Excel

Категориислушателей

Группаоператоров

ЭВМГруппа

водителейГруппа

программистовВсего

кол-во по категори­ям слу­шателей

Общая стои­мость занятии

кол-в

о сл

уша­

теле

й по

кате

­го

риям

стои

мост

ь за

няти

я с

че­

лове

како

л-во

слуш

а­те

лей

по ка

те­

гори

ямст

оимо

сть

заня

тия

с че

­ло

века

кол-в

о сл

уша­

теле

йпо

кате

гори

ям

стои

мост

ь за

няти

я с

че­

лове

ка

СтудентыУчащиесяДругиекатегорииКоличество слушателей в группеСтоимость 1 занятия группы

154

Page 156: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

2. В диапазонах ВЗ:В5, D3:D5, F3:F5 разместите исход­ные данные — стоимость 1 часа занятия с человека.

3. Выделите изменяемые ячейки В2:В5; D2:D5; F2:F5 синим цветом; целевую ячейку 17 и ячейки С7, Е7, 0 7 - красным цветом.

4. Введите:— в ячейку В6 формулу =ВЗ + В4 + В5 для определения

суммарного количества слушателей в каждой группе и скопируйте ее в ячейки D6 и Ғ6;

— в ячейку НЗ формулу =ВЗ + D3 + ҒЗ для определения суммарного количества слушателей по категориям и скопируйте в диапазоне Н2:Н6;

— в ячейку С7 формулу =ВЗ*СЗ + В4*С4 + В5*С5 для расчета общей стоимости одного занятия каждой груп­пы и скопируйте в ячейки Е7, G7. Можно воспользо­ваться функцией СУММПРОИЗВ(ВЗ:В5;СЗ:С5), кото­рая перемножает соответствующие элементы задан­ных массивов, где массив 1 (диапазон ВЗ:В5) — ко­личество слушателей в группе по категориям с нуле­выми значениями, массив2 (диапазон СЗ:С5) — стоимость 1 часа занятий с человека.

— в целевую ячейку 17 формулу суммарной стоимости одного занятия во всех группах =С7 + Е7 + G7. Зна­чение целевой ячейки будет равно 0.

группа

операторов ЭВМ

группаводителей

группа

программистов всего кол-во по

категориям

слушателей

общаястоимость

ЭвнЯШИ

ГВ Н 0

utyui*m *e£ М д ее 'эрм м

стоимость

занятия с человека

гел-эослушателей

СТОИМОСТЬ

занятия с человека

з д « о слушателей

m категориям

стоимость занятия с

человека

S студенты 0 100 0 150 0 200 = вз« о э *ғэ

•учащиеся 0 50 0 10D 0 1S0 =В4*04+Ғ4

Upyroe'Категории 0 150 0 200 0 250 =B5+05+F5количество слушателей

в группе =834в4*Ө5 . 0 0 =06+D6+F6стоимость 1 занятия

группы ВСШИПРОИЗӨФІМ 0 0

155

Page 157: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

5. Выполните команду Сервис —► Поиск решения. В появившемся диалоговом окне:

- установите максимальное значение целевой функции;- укажите диапазон изменяемых ячеек $В$2:$В$5;

$D$2:$D$5; $F$2:$F$5;- введите ограничения:

1 ограничение: изменяемые значения количества слушателей в группах — целое число ($В$2:$В$5 = целое; $D$2:$D$5 = целое; $F$2:$F$5 = целое);2 ограничение: количество слушателей каждой кате­гории слушателей в группе не должно быть меньше 3 человек ($В$2:$В$5<=3; $D$2:$D$5<=3; $F$2:$F$5<=3);3 ограничение: количество студентов должно быть равно 15 ($Н$3=15); количество учащихся — 17 ($Н$4=17); количество слушателей других катего­рий— 22 ($Н$5=22);4 ограничение: количество слушателей в группе опе­раторов ЭВМ не должно превышать 12 человек ($В$6<=12), в группе водителей — 27 ($D$6<=27), в группе программистов — 21 ($F$6<=21).

Диалоговое окно Поиск решения примет вид:

г?ппПоиск решения

ІУстановить целевую ячейку:

Равной ,і* максимальному значению

Г" минимальному значению Изменяя ячейки:-------

J l | ;С значению;

Выполнить ]Закрыть

1 ̂ $В$3: $В$5; |F$3: $Ғ$5 Предположить: Ограничения; Параметры |

$В$3:$В$5 = целое $В$3:$В$5 >= 3 $В$6 <= 12 $D$3:$D$5 = целое $D$3:$D$5 >= 3 $D$6 <= 27

Добавить

ИзменитьВосстановить

валитьупраека

156

Page 158: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

6. Щелкните по кнопке Параметры и в окне Парамет­ры поиска решения, установите Линейную модель, т.к. в на­шей задаче значение целевой ячейки является линейной функцией от каждой переменной.

7. Нажмите кнопку Выполнить.8. Сохраните результаты решения задачи в виде имено­

ванного сценария.

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

8.3. Анализ данных «что-если» с помощью сценарияДополнительные возможности Microsoft Excel позво­

ляют организовать анализ «что-если» с помощью составле­ния сценариев. Сценариями в Excel называется набор значе­ний подстановки, используемый для прогнозирования пове­дения модели. Сценарии используются для поиска опти­мального подбора данных. Любое решение, основанное на выборе из нескольких возможных, является в этом смысле «оптимальным», поскольку ему отдано предпочтение перед другими.

С помощью инструмента Сценарии Excel выбирает наилучший способ решения задачи из нескольких вариан­

157

Page 159: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

тов. При этом для параметров задачи определяются различ­ные значения, организуются сценарии, а затем для каждого сценария Excel выполняет анализ «что-если». В Excel суще­ствует возможность создания, сохранения на листе различ­ных сценариев и переключения на любой из этих сценариев для просмотра результатов. При необходимости сценарии формируются в структуру или выводятся в виде сводной таблицы.

Приведем пример решения задачи поиска оптимально­го подбора данных с использованием сценариев.

Пример 12. Трем ученикам необходимо решить про­блему: какой набор продуктов купить в столовой, так чтобы уложиться в 100 тенге и потратить как можно меньше денег. Каким образом можно это сделать, если стоимость продук­тов: чай — 10 тенге, булочки -— 15 тенге, пирожки — 25 тенге?

Можно предложить различные сценарии приобретения продуктов:

Продукты Текущиезначения Сценарий 1 Сценарий2 СценарийЗ

Чай 3 2 3 3Булочки 3 1 1 2пирожки 3 3 2 1

В структуре сценария должно быть отображено не ме­нее 3-х сценариев при нахождении заданных требований.

Определим, какой из сценариев наилучший? Восполь­зуемся Диспетчером сценариев. Роль пользователя будет заключаться в выборе значений подстановок данных из имеющегося набора изменяемых данных модели. Этот вы­бор зависит от того, какой конечный результат предполага­ется получить. Предлагаем алгоритм определения наилуч­шего сценария:

158

Page 160: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

1. Составьте таблицу, которая демонстрирует, какая сумма будет потрачена, если будут куплены все продукты для всех учеников.

2. В меню Сервис выберите Сценарии.

8 ) 2 # » Праега 8иа В п р и Фсрмзг С д а м Данные Q mo £ ф а к * Ш і З 1

□ х ъ ш р *• - - 4 с ' Й 2 1 Ш Ш Щ г| Axial Cyt g j 10 г Ж А 3 K l l g V x n ' i . l Ф ? f f i - * * Д . - S г |

-Л Ж

ДІ

[продукты цева количество сумма[чай 10 3 =82X21 булочки 15 3 =83X 3[пирожки 25 3 =В«Х4

=CYMMiD2 D4]

Сцдири ие «зорвдапемь». fim

3. В диалоговом окне Диспетчер сценариев нажмите кнопку Добавить, чтобы создать сценарий.

4. Откроется окно Изменение сценария.5. Введите в поле Название сценария: варианті.6. Введите в поле Изменяемые ячейки: $С$2:$С$4.

Щелкните ОК.7. Установите флажок Запретить изменения, для того

чтобы запретить внесение изменений в сценарий другими пользователям и.

8. В появившемся диалоговом окне введите значения каждой изменяемой ячейки для варианта!. Щелкните по кнопке ОК.

1 Значения ячеек сценария ШШШЛІЫВведите значения каждой изменяемой ячейки. 1. ОК 1Һ « 0 2 12

Отменаг? $с$з |i а- $ач Гз

Добавить |

■ И Н Н

Page 161: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

9. Аналогично для сценариев вариант 2 и вариант 3 вы­полните пункты 3-8: введите названия сценариев а также значения каждой изменяемой ячейки для этих вариантов.

10. Нажмите кнопку Отчет. Выберите тип отчета структура. Введите адрес ячейки результата — D5. Щелк­ните по кнопке ОК.

Excel создаст новый лист Структура сценария, где представлены: структура, включающая несколько сценари­ев, результаты анализа, исходное значение. Из структуры сценария видно, что заданному условию оптимально отве­чает сценарий вариант2.

1 Структура сценарияТекущие знамения: вариант) еариант2 •аризнгЗІ

Иэвеняевые:102 ЗЖ -■ тШ 3 31С$3 3 ?§ t - | 1 ' '2$С$4 3 0 -3 2 ‘.1

Результат:mss 150 110 95 Ө5

Вопросы

1. Из каких этапов состоит процедура постановки задачи оптимизации?

2. Какие параметры принимаются в качестве критериев оптимальности?

3. Какие методы существуют для решения экономиче­ских задач?

4. Для чего используются Надстройки Excel?5. В каком случае применяется Инструмент Поиск реше­

ния?6. Какие команды необходимо выполнить для открытия

диалогового окна Поиск решения?7. Что необходимо сделать, если надстройка Поиск ре­

шения отсутствует в меню Сервис?

160

Page 162: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

8. Перечислите этапы решения задач оптимизации со многими неизвестными с помощью инструмента По­иск решения.

9. Что называется Сценариями в Excel?10, Для чего используются Сценарии в Excel?

Задания для самостоятельной работы7. Разработайте проекты для решения экономических

задач (примеры 7-9) с использованием Visual Basic, Visual Basic for Applications и Microsoft Excel.

8. Разработайте проекты для решения экономических задач (примеры 10, 11) с использованием Visual Basic, Visual Basic for Applications.

9. Постройте компьютерные модели решения экономи­ческих задач с использованием языков Visual Basic и Visual Basic for Applications, а также приложения Microsoft Excel:

9.1. На ферме разводят нутрий и кроликов. Доход от реализации одного кролика составляет 20 д.е., а от реализа­ции нутрии 25 д.е. Требуется вывести оптимальное количе­ство кроликов и нутрий с получением максимальной вы­ручки от их реализации ври заданных ресурсах:

Затраты белков, жиров, углеводов:

Кролик НутрияБелки 13 17Углеводы 15 11Жиры 7 5

Мах белки — 184, max углеводы — 152, max жиры —70

9.2. Для производства двух видов изделий А и В ис­пользуется три типа технологического оборудования. На изготовление одного изделия А оборудование первого типа

161

Page 163: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

используется в течение 5 часов, второго — в течение 3 ча­сов и третьего — 2 часа. На производство одного изделия В, соответственно, — 2 часа, 3 часа и 3 часа. В плановом пе­риоде оборудование первого типа может быть использовано в течение 505 часов, второго — 394 часа и третьего — 348 часов. Прибыль от реализации одного изделия А равна 2 д.е., изделия В — 4 д.е. Составить план производства, мак­симизирующий прибыль предприятия.

162

Page 164: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Указания к заданиям для самостоятельной работы

2.1. Уравнение движения имеет вид:m(d2X / d t 2) = mg-(AV + BV3) .

„ r, dX dV AV + BV3Приведем его к виду: V = ----, -----= е --------------- .dt dt т

Т.е. уравнение второго порядка свелось к двум уравне­ниям первого порядка. Приближенно заменим дифферен­циалы приращениями:

и зададим At, что дает возможность, зная Vn tn, найти V„+i t„+1 и> таким образом, получить зависимость V(t) в ви­де двух рядов чисел. Этот метод называется методом Эйле­ра первого порядка.

2.2. Исследуемые величины: а — начальный угол выстрела пули; г — расстояние от охотника до акулы.Постоянные величины: Vo = 100 м/с, к = 2, а = 10 м/с2. Расчетные формулы: расстояние: х = ktv0 cos а ;

2.3. Из условия задачи можно сформулировать сле­дующие предположения: если твёрдое тело находится внут-

і і і в Ш Ж І g -AV + В V3nп_____________ ■At,tn+l=tn+At

V т

время полета пули t =kv0 cos а

высота полета пули:

ах

163

Page 165: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ри жидкости или газа, то вся его поверхность соприкасается с частицами жидкости или газа.

На тело действуют три силы:- сила тяжести:- сила Архимеда:- сила сопротивления.Скорость падения будет иметь обратную зависимость

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

Для формализации модели используем известные из курса физики формулы и модели: FA - pvg (сила Архиме­да), Fm = mg (сила тяжести).

Для вычисления Силы сопротивления используем фор­мулу Стокса F = 6rj7trvc, где у — коэффициент сопротивле­ния жидкости, a vc— скорость падения тела.

Плотность р, кг/м3

Вязкость Q, кг/мх

Вода 0,00099823 10,5Бензол 0,000879 6,73Этиловый спирт 0,00079 12,2

2.4. Дано: 1=2,5 м; «(0,0 = 20+10sin wt\ Uo=20°C.Пусть стержень сделан из меди, т.е. коэффициент теп­

лопроводности а = 1,0*10"2л |/с f .Случай быстрой модуляции.Выберем величину w из следующего условия:

Ш . . . ; .

164

Page 166: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Пусть w=4-10 , тогда

Ш = 5i f— Т = 5Ш а щU vJ 12.5 J

= 510"

Случай медленной модуляции.Выберем величину w из следующего условия:

w « 4 - r

10'

0,25= 256 10"

Пусть w=4-10' , тогда

1_=5

«ПU11

Э\lw ) ,2,5 J = 5-10"

2.5. Движение по вертикали — равноускоренное, по­этому изменение координаты у в зависимости от времени описывается с помощью-формулы

,2І Ш ЩМ &

2.6. На чертеже отметим траекторию движения первого и второго тела. Выбрав начало отсчета в точке, указываем начальную скорость тел vo, высоту Һ, на которой про­изошла встреча (координа­ту y~h), и время ti и t2 дви­жения каждого тела до мо­мента встречи.

Уравнение перемеще­ния тела, брошенного вверх, позволяет найти ко- ш ш ш т г т

Page 167: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ординату движущегося тела для любого момента времени независимо от того, поднимается ли тело вверх или падает

at2после подъема вниз, поэтому для первого тела h = v0ti

Ktlа для второго h = v0/2

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

voного подъема: /, - t 2 = — .g

Решая систему трех уравнений относительно Һ, получа-

2.7. Решение.у

Прямоугольную систему координат выбираем так, что­бы ее начало совпало с точкой бросания, а оси были на-

166

Page 168: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

правлены вдоль поверхности Земли и по нормали к ней в сторону начального смещения снаряда. Изображаем траек­торию снаряда, его начальную скорость vo, угол бросания а, высоту Һ, горизонтальное перемещение S, скорость в мо­мент падения (она направлена по касательной к траектории в точке падения) и угол падения а (углом падения тела на­зывают угол между касательной к траектории, проведенной в точку падения, и нормалью к поверхности Земли).

Движение тела, брошенного под углом к горизонту, можно представить как результат сложения двух прямоли­нейных движений: одного — вдоль поверхности Земли (оно будет равномерным, поскольку сопротивление воздуха не учитывается) и второго — перпендикулярно поверхности Земли (в данном случае это будет движение тела, брошен­ного вертикально вверх).

Для замены сложного движения двумя простыми раз­ложим (по правилу параллелограмма) скорости v# и v на го­ризонтальные и вертикальные составляющие и найдем их проекции v0 cos а и v0 sin or — для скорости vo; vx и vy — для скорости v.

Нахождение дальности полета снаряда по горизонталь­ному направлению и сИорость снаряда в момент падения.

Составляем уравнение скорости и перемещения для их проекций по каждому направлению. Так как в горизонталь­ном направлении снаряд летит равномерно, то его скорость и координаты в любой момент времени удовлетворяют уравнениям: vx = v0 cos а (1), x = v0 cos a • t (2).

Для вертикального направления: vy = v0 sin a - gt (3), gt2^ = v0sm a- /“ (4).

В момент времени //, когда снаряд упадет на землю, его координаты равны: х = S’, y = -h (5) .

167

Page 169: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

В последнем уравнении перемещение Һ взято со знаком «минус», так как за время движения снаряд сместится отно­сительно уровня отсчета 0 высоты в сторону, противопо­ложную направлению, принятому за положительное.

Результирующая скорость в момент падения равна:

v -tfw , (6). 1 ;;В составленной системе уравнений пять неизвестных,

нам нужно определить 5 и у .

Из уравнений (4) и (5) находим время полета снаряда:v0 sin а + Vv02 sin2 а + 2gh

t \ = i • g

Подставляя выражения для tj формулы (2) и (3) с уче­том (5), соответственно получаем:

gvy = --y/v2 sin2 a + 2gh (8).

После этого из (6) с учетом (1) и (8) находим:

v = yfv[+2gh (9).Из полученных результатов можно сделать следующие

выводы.Если Һ = 0, то есть снаряды падают на уровне вылета,

то согласно формуле (7) дальность их полета будет равна:

c _Vo s n̂ 2 аи — —— — — — — тg

Если при этом угол бросания равен 45 (sin2a = 1), то при заданной начальной скорости vo дальность полета наи-

v 2большая: 5 ^ = - ^ .

gПодставив в выражение (9) значение Һ = 0, получим,

что скорость снаряда в момент его полета к уровню, с кото-

168

Page 170: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

роғо был произведен выстрел, равна его начальной скоро­сти: V = V0.

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

Нахождение угла падения и начального угла стрельбы, при котором дальность полета наибольшая.

Решая уравнения (2), (4) и (5) относительно начального уг­

ла бросания а, получим: tga =gS

( 1— г - ;f \ 2 Л

М М н &V ^ \

V1' V0 у

J

(Ю).

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

откуда еле-™ , + M + t e Y >>0, T.e.v° SIP S 8

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

о voVvo +2&Атальному направлению равно: = ■■— • --------.g

Подставляя выражение для S = Smax в формулу (10), по­лучим для угла а, при котором дальность полета наиболь-

Уп Voшая: tg a - — -—= ...g '̂max y V j + 2 gh

3.1. Формула изменения времени: Т(1 + 1) = Т(1) + 3. Формула для расчета числа клеток: К(1 + 1) = 2-К(1'), где К(1) — число клеток через I промежутков времени, К(1+1) —: количество клеток через 1+1 промежутков време-

169

Page 171: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

ни (т.е. спустя следующие 3 часа). Коэффициент размноже­ния КР=2.

3.2. Введем обозначение:KR — коэффициент рождаемости за один год.KS — коэффициент смертности за один год.Тогда рост численности с учетом рождаемости:

K(I+1 )=K(I)+K(I)*KR=K(I)*( 1+KR)Рост численности с учетом смертности:

K(I+1>=K(I)-K(I)*KS=K(I)*( 1-KS)Общее изменение численности:

K(I+1 )=K(I)*( 1+KR-KS)3.3. Пусть: K(I+1 )=К(1) *( 1+KR-KS) С- численность по­

пуляции.Обозначив через KF обобщенный коэффициент рож­

даемости и смертности (константа), имеем K(I+1)=K(I)*KF.Тогда К(І+1)=К(І)*Ғ(К)=К(І)*А*(1-В*К(І)), гдеА — обобщенный коэффициент устойчивости вида.Чем выше А, тем более плодовит вид и выше выживае­

мость.В — коэффициент среды обитания.Определяется параметрами среды обитания (площадь

обитания, количество пищи и др.)4. Построение компьютерных экологических моделей

4.1-4.2 аналогично решению примера 4, рассмотренного в п. 6.2.

4.1. Плановые показатели: а — кол-во кроликов, Ъ — кол-во нутрий.

Ограничения по ресурсам:17Ь + 13а <184 116 + 15а <152

\ 52>+7а<70 а> О b t О

170

Page 172: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Стоимость от реализации выведенных животных: кролик — 20 д.е., нутрия — 25 д.е.Целевая функция: 20а+25Ь — конечная прибыль от

реализации всех выведенных кроликов и нутрий.4.2.

1 2 3 Прибыльа 5ч Зч 2ч 2 д.е.b 2ч Зч 23ч 4 д.е.Всего 505 ч 394 ч 348 ч

Плановые показатели: X — изделие a, Y — изделие Ъ. Ограничения (во времени эксплуатации приборов):

5х+2уй 505 « Ъх+ЪуйЪ94 2х+3^^348

Целевая функция: / (х; у) = 2х+ 4у .

171

Page 173: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Содержание

Введение..... .................................................................... 3Компьютерное моделирование и вычислительный экс­перимент ........................ ........... ' і___. . . . . . ..... . ‘ 51. Моделирование как метод познания. Формализация. 52. Классификация моделей............................................ 113. Информационное моделирование.............................. 154. Основные типы информационных моделей (таблич­

ные, иерархические, сетевые)..... ............................... 194.1. Табличные информационные модели................. 194.2. Иерархические информационные модели.......... 224.3. Сетевые информационные модели................. 26

5. Этапы решения задач с помощью компьютера......... 276. Исследование на компьютере информационных мо­

делей из различных предметных областей............... 386.1. Физические модели..... ........................................ 386.2. Экологические модели........................................ 596.3. Биологические модели развития популяций...... 69

71 Моделирование динамических процессов................. 977.1. Имитационное моделирование........................... 987.2. Построение имитационной модели «Схема ло­

гических элементов»............................................ 1107.3. Вероятностные математические модели (метод

Монте-Карло)......... ........ .......................... ....__ 1218. Экономические модели (определение оптимальной

стратегии производства изделий с учетом ограниче­ний и т.д.)......... ............... ................................... ........ 134 '8.1. Решение задач на оптимизацию средствами

Visual B a s i c ............................... 1378.2. Оптимизированное моделирование в экономи­

ке. Анализ данных средствами MS Excel........... 1478.3. Анализ данных «что-если» с помощью сценария 157

Задания для самостоятельной работы............................ 161Указания к заданиям для самостоятельной работы....... 163

172

Page 174: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

Н аучное издание

Егоров Виктор Владимирович, Криворучко Василий Андреевич, Шпигарь Наталья Николаевна,

Заречная Ольга Петровна

КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ

Технический редактор В.В.Бутяйкин Обложка Л.Н.Солодовиченко

Подписано в печать 2S.05.2009 г. Формат 60x84 1/16. Бумага офсетная. O&be^OjSnjji^ipaatSOOiioJUcHajjoroeog^aK^^J^Oe^^^^

Отпечатано в типографии Издательства КарГУ им. ЕА.Букетова 100012, г. Караганда, ул. Гоголя, 38

Page 175: КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ...library.psu.kz/fulltext/transactions/4150_egorov_v.v...004 К63 В.В. ЕГОРОВ

В.В. ЕГОРОВ . В.А. КРИВОРУЧКО

„JP Н.Н. ШПИГАРЬ О.П. ЗАРЕЧНАЯ

КОМПЬЮТЕРНОЕ Г ^ 1 МОДЕЛИРОВАНИЕ И

В Ц ! ВЫЧИСЛИТЕЛЬНЫЙ Г ~ 1 ЭКСПЕРИМЕНТ