Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
004К63
В.В. ЕГОРОВ В .А. КРИВОРУЧКОН.Н. ШПИГАРЬО.П. ЗАРЕЧНАЯ
ч ,
КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ
НОВОСИБИРСКОАО "НОВОСИБИРСКОЕ КНИЖНОЕ ИЗДАТЕЛЬСТВО"
г!
0 0 4р е ъ
Егоров В.В., Криворучко В Л , Шпигарь Н.Н., Заречная ОЛ.
КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ
ИНовосибирск
Новосибирское книжное издательство 2009
УДК 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
Введение
Модели и моделирование используются человечеством с незапамятных времен. С помощью моделей и модельных отношений развились разговорные языки, письменность, графика. Наскальные изображения наших предков, затем картины и книги — это модельные, информационные формы передачи знаний об окружающем мире последующим поколениям.
Компьютерное моделирование — это новый и довольно сложный курс в цикле информационных дисциплин, т.к. он является междисциплинарным. Для его успешного освоения требуется наличие самых разнообразных знаний в выбранной предметной области. Если мы моделируем физические процессы, то должны обладать определенным уровнем знания законов физики, моделируя экологические процессы — биологических законов, моделируя экономические процессы — знанием законов экономики, кроме того, т.к. компьютерное моделирование базируется на математическом аппарате, предполагается знание основных математических дисциплин. Для решения математических задач на компьютере необходимо владеть численными методами. И, конечно же, предполагается свободное владение современными информационными технологиями, знание языков программирования.
В настоящее время компьютерное моделирование в научных и практических исследованиях является одним из основных методов познания. Без компьютерного моделирования сейчас невозможно решение современных научных и экономических задач. Технология исследования проблем, основанная на построении и анализе с помощью вычислительной техники математической модели изучаемого объекта, называется вычислительным экспериментом, который применяется практически во всех отраслях науки. Вычисли
3
тельный эксперимент имеет ряд преимуществ перед так называемым натурным экспериментом:
- для вычислительного эксперимента не требуется сложного лабораторного оборудования;
— существенное сокращение временных затрат на эксперимент;
— возможность свободного управления параметрами, произвольного их изменения, вплоть до придания им нереальных, неправдоподобных значений;
- возможность проведения вычислительного эксперимента там, где натурный эксперимент невозможен (быстротечные, медленные и другие процессы).
Широкое использование находит компьютерное моделирование в образовательных целях. Преподаватель может использовать на уроке готовые компьютерные модели для демонстрации изучаемого явления, чтобы озадачить учащихся разработкой конкретных моделей. Моделируя конкретное явление, учащийся не только освоит конкретный учебный материал, но и приобретет умение ставить проблемы и задачи, прогнозировать результаты исследования, проводить разумные оценки, выделять главные и второстепенные факторы для построения моделей, использовать компьютер для решения задач, проводить анализ вычислительных экспериментов. Таким образом, применение компьютерного моделирования в образовании позволяет сблизить методологию учебной деятельности с методологией научно-исследовательской работы.
4
КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ
1. Моделирование как метод познания. Формализация
Моделирование широко используются в различных сферах человеческой деятельности, в частности в сферах проектирования и управления, где особенными являются процессы принятия эффективных решений на основе получаемой информации, ибо такие процессы довольно сложны, многогранны, динамичны, подвержены случайным воздействиям. Достаточно интенсивно моделируются сейчас такие социально-экономические процессы, как демографические (например, эволюция и цикличность), социальные (например, поведение социальных групп, социальных последствий тех или иных решений), экономические (например, рыночные отношения, налоговые сборы, риски), гуманитарные (например, воздействие на человека информационного потока) и др.
Человек, решая, как ему поступить в той или иной ситуации, всегда пытается представить себе последствия решения, для этого он проигрывает ситуацию, представляет ее мысленно, строя модель в голове. То есть, во-первых, модель -— это основа разумной мыслительной деятельности, во-вторых, модель играет роль инструмента для прогнозирования.
Модели и моделирование применяются по следующим основным и важным направлениям:
- Обучение (как моделям, моделированию, так и самих моделей).
- Познание и разработка теории исследуемых систем— с помощью каких-то моделей, моделирования, результатов моделирования.
5
- Прогнозирование (выходных данных, ситуаций, состояний системы).
- Управление (системой в целом, отдельными подсистемами системы, выработка управленческих решений и стратегий).
- Автоматизация (системы или отдельных подсистем системы).
Слово «модель» происходит от латинского modus (копия, образ, очертание).
Модель несет системообразующую и смыслообразующую роль в научном познании. Каждый объект имеет большое количество различных свойств. Модель стремится как можно более ярко выразить структуру явления, его главные аспекты, является концентрированным выражением сущности предмета или процесса, выделяя только его основные черты. Знания — это модели окружающего мира, фиксируемые человеком в его мозге или на технических носителях. Модели обладают повышенной наглядностью, выделяя главные аспекты сущности, и активно используются в процессах познания и обучения. Так, модель самолета должна иметь геометрическое подобие оригиналу, модель атома — правильно отражать физические взаимодействия, архитектурный макет города — ландшафт и т.д.
Таким образом, моделирование — это метод познания, состоящий в создании и исследовании моделей. При моделировании происходит замещение некоторого объекта А другим объектом Б. Замещаемый объект А называется оригиналом, или объектом моделирования, а замещающий Б — моделью.
Модель — это некий новый объект, который отражает некоторые существенные стороны изучаемого объекта, явления или процесса. Другими словами, модель — это объект-заменитель объекта-оригинала, обеспечивающий изуче
6
ние некоторых свойств оригинала, когда натуральный эксперимент невозможен, дорог, опасен, долговременен.
Например, поскольку исследование Луны небезопасно для человека, то используют Луноход как модель исследователя. Поскольку эксперимент над экономикой страны дорог по своим последствиям, то используют математическую модель экономики для изучения последствий управляющих решений. Поскольку процесс обработки металлов взрывом скоротечен во времени, то его изучают на модели в увеличенном масштабе времени, а процесс коррозии — в уменьшенном, атом — в увеличенном масштабе пространства, а космогонические процессы — в уменьшенном масштабе пространства. Поскольку при проектировании объекта он попросту не существует, то исследование его будущих свойств ведется на модели.
Однако разные науки исследуют объекты и процессы под разным углом зрения и строят различные типы моделей. В физике изучаются процессы взаимодействия и движения объектов, в химии — их внутреннее строение, в биологии — поведение живых организмов и т.д.
Возьмем в качестве примера человека, в разных науках он исследуется в рамках различных моделей. В рамках механики его можно рассматривать как материальную точку, в химии —ч как объект, состоящий из различных химических веществ, в биологии — как систему, стремящуюся к самосохранению и т.д.
С другой стороны, разные объекты могут описываться одной моделью. Так, в механике различные материальные тела (от планеты до песчинки) могут рассматриваться как материальные точки.
Таким образом, один и тот же объект может иметь множество моделей, а разные объекты могут описываться одной моделью.
7
Приведем некоторые основные определения:Формализация — процесс построения информацион
ных моделей с помощью формальных языков.Объект — некоторая часть окружающего мира, рас
сматриваемого человеком как единое целое. Каждый объект имеет имя и обладает параметрами.
Параметр — признак или величина, характеризующая какое-либо свойство объекта и принимаемая различные значения.
Среда — условие существования объекта.Операция — действие, изменяющее свойство объекта.Система — совокупность взаимосвязанных объектов,
воспринимаемая как единое целое.Структура — состав системы, свойства её элементов,
их отношения и связи между собой.
Основные требования к модели
1. Полнота модели должна быть такой, чтобы имелась возможность получить набор оценок характеристик систем S с требуемой точностью и достоверностью.
2. Модель должна быть гибкой, чтобы пользователь имел возможность воспроизводить различные ситуации путем изменения структуры, алгоритмов и параметров системы.
3. Длительность разработки и реализация модели большой системы должна быть по возможности минимальной. При этом должны учитываться ограничения на имеющиеся ресурсы (время, финансирование, вычислительная техника).
4. Структура модели должна быть блочной и модульной, т.е. модель должна допускать возможность добавления, замены и исключения некоторых частей без изменения всей системы.
5. Информационное обеспечение модели должно давать возможность пользователю эффективно работать с БД систем некоторого определенного класса.
6. Программные и технические средства должны обеспечивать эффективную машинную реализацию модели и удобный интерфейс для пользователя (критерием эффективности может быть быстродействие компьютера и затраты памяти).
7. Модель должна быть организована таким образом, чтобы пользователь имел возможность проводить планируемые (целенаправленные) машинные эксперименты с моделью, возможность анализа результата моделирования при наличии ограничений вычислительных ресурсов.
Модель всегда строится с определенной целью, которая оказывает влияние на то, какие свойства объективного явления оказываются существенными, а какие — нет. Модель представляет собой как бы проекцию объективной реальности под определенным углом зрения. Иногда, в зависимости от целей, можно получить ряд проекций объективной реальности, вступающих в-противоречие. Это характерно, как правило, для сложных систем, у которых каждая проекция выделяет существенное для определенной цели из множества несущественного.
Целью моделирования является получение, обработка, представление и использование информации об объектах, которые взаимодействуют между собой и внешней средой; модель здесь выступает как средство познания свойств и закономерности поведения объекта.
Моделирование является неотъемлемым компонентом общечеловеческой культуры и мощным методом познания. В науке «Информатика» из всех видов моделирования доминируют информационное и компьютерное математическое моделирование. Именно появление компьютерной техники дало ощутимый толчок развитию вычислительной ма
9
тематики и компьютерного математического моделирования.
Математическая модель выражает существенные черты объекта или процесса языком уравнений и других математических средств. Собственно говоря, сама математика обязана своим существованием тому, что она пытается отразить, т.е. промоделировать, на своем специфическом языке закономерности окружающего мира.
Компьютеры при математическом м од елировани и используются не только для численных расчетов, но и для аналитических преобразований. Результат аналитического исследования математической модели часто выражен столь сложной формулой, что при взгляде на нее не складывается восприятие описываемого ею процесса. Эту формулу нужно протабулировать, представить графически, проиллюстрировать в динамике, т.е. проделать то, что называется «визуализацией абстракций». При этом компьютер — незаменимое техническое средство.
Процесс моделирования состоит из трех стадий:- формализации (переход от реального объекта к моде
ли);- моделирования (исследование и преобразования мо
дели);- интерпретации (перевод результатов моделирования
в область реальности).
Формализация
Моделирование
Интерпретация
ЭкспериментСинтезАнализ
Изучениемодели
10
Таким образом, можно сделать вывод, что модель необходима для того, чтобы:
1. Понять, как устроен конкретный объект — каковы его структура, основные свойства, законы развития и взаимодействие с окружающим миром.
2. Научиться управлять объектом или процессом и определить наилучшие способы управления при заданных целях и критериях (оптимизация).
3. Прогнозировать прямые или косвенные последствия реализации заданных способов и форм воздействия на объект.
Вопросы1. В каких случаях используется моделирование?2. Что такое модель?3. Может ли объект иметь несколько моделей? Приведи
те пример.4. Могут ли различные объекты описываться одной и той
же моделью? Если да, приведите пример.5. Что представляет собой процесс моделирования?6. Перечислите основные требования, предъявляемые к
модели.
2. Классификация моделей
Виды классификации распространяются по признакам:1. По области использования:— учебные — используются при обучении;— опытные — это уменьшенные или увеличенные ко
пии проектируемого объекта. Используют для исследования и прогнозирования его будущих характеристик;
— игровые — репетиция поведения объекта в различных условиях;
11
- имитационные — отражение реальности в той или иной степени (это метод проб и ошибок);
- научно-технические — создаются для исследования процессов и явлений.
2. По учету в модели временного фактора:- динамические модели — описывают процессы изме
нения и развития системы (изменения объекта во времени). Примеры: описание движения тел, развития организмов, процесс химических реакций;
- статистические модели — описывают состояние системы в определенный момент времени (единовременный срез информации по данному объекту). Примеры моделей: классификация животных, строение молекул, список посаженных деревьев, отчет об обследовании состояния зубов в школе и т.д.
3. По отрасли знаний — это классификация по отрасли деятельности человека: биологические, исторические, социологические и др.
4. По способу представления моделей:- материальные (предметные): натурные, физические,
математические. Это предметные (физические) модели. Они всегда имеют реальное воплощение. Отражают внешнее свойство и внутреннее устройство исходных объектов, суть процессов и явлений объекта-оригинала. Это экспериментальный метод познания окружающей среды. Примеры: детские игрушки, скелет человека, чучело, макет солнечной системы, школьные пособия, физические и химические опыты.
- информационные: наглядные, знаковые, математические. Не имеют реального воплощения. Их основу составляет информация. Это теоретический метод познания окружающей среды.
Предметные модели воспроизводят геометрические, физические и другие свойства объектов в материальной
12
форме. Модели информационные представляют объект и процессы в форме рисунков, схем, чертежей, таблиц, формул, текстов и т.д. В школе вы часто используете такие модели* как: карта и глобус (география), муляжи, рисунок цветка (биология), периодическая система элементов Д.И. Менделеева и модели кристаллических решеток (химия), электрическая схема (физика), блок-схема алгоритма (информатика), формула (математика) и т.д.
Материальные натурные модели — это реальные объекты, процессы и системы, над которыми выполняются эксперименты научные, технические и производственные.
Материальные физические модели — это макеты, муляжи, воспроизводящие физические свойства оригиналов (кинематические, динамические, гидравлические, тепловые, электрические, световые модели).
Материальные математические dst это аналоговые, структурные, геометрические, графические, цифровые и кибернетические модели.
Информационные наглядные модели — это схемы, карты, чертежи, графики, графы, аналоги, структурные и геометрические модели.
Информационные знаковые модели — это символы, алфавит, языки программирования, упорядоченная запись, топологическая запись, сетевое представление.
Информационные математические модели — это аналитические, функциональные, имитационные, комбинированные модели.
В приведенной классификации некоторые модели имеют двойное толкование (например — аналоговые). Все модели, кроме натурных, можно объединить в один класс мысленных моделей, т.к. они являются продуктом абстрактного мышления человека.
Остановимся на одном из наиболее универсальных видов моделирования — математическом, ставящим в соот-
13
ветствие моделируемому физическому процессу систему математических соотношений, решение которой позволяет получить ответ на вопрос о поведении объекта без создания физической модели, часто оказывающейся дорогостоящей и неэффективной.
М ат емат ическое м оделирование — это средство изучения реального объекта, процесса или системы путем их замены математической моделью, более удобной для экспериментального исследования с помощью компьютера.
М атематическая модель является приближенным представлением реальных объектов, процессов или систем, выраженным в математических терминах и сохраняющим существенные черты оригинала. М атематические модели в количественной форме, с помощью логико-математических конструкций, описывают основные свойства объекта, процесса или системы, его параметры, внутренние и внешние связи.
Вопросы
1. Какие классы моделей существуют?2. По каким признакам можно классифицировать моде
ли?3. Какие модели относятся к классу материальных на
турных, физических, математических моделей?4. Какие модели относятся к классу информационных
наглядных, знаковых, математических моделей?5. В чем смысл математического моделирования?6. Приведите примеры применяемых в вашей школе
учебных моделей.7. Можно ли стратегическую компьютерную игру на
звать игровой моделью? Чему учат такие игры?
14
3. Информационное моделирование
Информационные модели отражают процессы возникновения, передачи, преобразования и использования информации в системах различной природы.
Экземпляром будем называть представление предмета реального мира с помощью некоторого набора его характеристик, существенных для решения данной информационной задачи (служащей контекстом построения информационной модели). Множество экземпляров, имеющих одни и те же характеристики и подчиняющихся одним и тем же правилам, называется объектом.
Таким образом, объект есть абстракция предметов реального мира, объединяемых общими характеристиками и поведением.
Информационная модель какой-либо реальной системы состоит из объектов. Каждый объект в модели должен быть обеспечен уникальным и значимым именем (а так же идентификатором, служащим ключом для указания этого объекта, связи его с другими объектами модели). Таким образом, обозначение, наименование объекта — это элементарная процедура, лежащая в основе информационного моделирования.
Абстракция Студент
Имя, фамилияФакультет, специальностьКурсГруппаАдрес
Рис. 1. Пример абстрагирования при построении информационной модели
15
Объект представляет собой один типичный (но не определенный) экземпляр чего-то в реальном мире и является простейшей информационной моделью.
Большинство объектов, с которыми приходится встречаться, относятся к одной из следующих категорий:
- реальные объекты;- роли;- события;- взаимодействия;- спецификации.Реальный объект — это абстракция физически сущест
вующих предметов. Например, на автомобильном заводе это кузов автомобиля, двигатель, коробка передач; при перевозке грузов это контейнер, средство перевозки.
Роль — абстракция цели и назначения человека, части оборудования или учреждения (организации). Например, в университете как в учебном заведении это студент, преподаватель, декан; в университете как в учреждении это приемная комиссия, отдел кадров, бухгалтерия, деканат.
Событие — абстракция чего-то случившегося. Например, поступление заявления в приемную комиссию университета, сдача экзамена.
Взаимодействия — объекты, получаемые из отношений между другими объектами. Например, сделка, заключение договора между двумя сторонами, свидетельство об образовании.
Объекты спецификации используются для представления правил, стандартов или критериев качества. Например, перечень знаний, умений и навыков выпускника математического факультета, рецепт приготовления фотопленки.
Дня каждого объекта должно существовать его описание — короткое информационное утверждение, позволяющее установить, является ли некоторый предмет экземпляром объекта или нет. Например, описание объекта «абиту-
16
риент университета» может быть следующим: человек в возрасте до 35 лет, имеющий среднее образование, подавший в приемную комиссию документы и заявление о приеме. у
Предметы реального мира имеют характеристики (такие, например, как имя, название, регистрационный номер, дата изготовления, вес и т. д.). Каждая отдельная характеристика, общая для всех экземпляров объекта, называется атрибутом. Для каждого экземпляра атрибут принимает определенное значение. Так, объект Книга имеет атрибуты: Автор, Название, Год издания, Число страниц.
У каждого объекта должен быть идентификатор — множество из одного или более атрибутов, значения которых определяют каждый экземпляр объекта. Для Книги атрибуты Автор и Название совместно образуют идентификатор. В то же время Год издания и Число страниц идентификаторами быть не могут, так как не определяют объект. Объект может иметь и несколько идентификаторов, каждый из которых составлен из одного или нескольких атрибутов. Один из них может быть выбран как привилегированный для соответствующей ситуации.
Объект может быть представлен вместе со своими атрибутами несколькими различными способами. Графически объект может быть изображен в виде рамки, содержащей имя объекта и имена атрибутов. Атрибуты, которые составляют привилегированный идентификатор объекта, могут быть выделены (например, символом * слева от имени атрибута):
Книга* Автор* Название Год издания Количество страниц С.Торайғыров
Рис. 2. Графическое представление о& |екійТЫНАағы ПМУ-лің(академик С.Бейсем*'
17 I зтындағы ғылыми
ь
В эквивалентном текстовом представлении это может иметь следующий вид: Книга (Автор, Название, Год издания, Количество страниц).
Привилегированный идентификатор подчеркивается.Можно классифицировать атрибуты по принадлежно
сти к одному из трех различных типов:- описательные;- указывающие;
вспомогательные.Описательные атрибуты представляют факты, внут
ренне присущие каждому экземпляру объекта. Если значение описательного атрибута изменится, это говорит о том, что некоторая характеристика экземпляра изменилась, но сам экземпляр остался прежним.
Указательные атрибуты могут использоваться как идентификаторы экземпляра. Если значение указывающих атрибутов изменится, то это говорит лишь о том, что новое имя дается тому же самому экземпляру.
Вспомогательные атрибуты используются для связи экземпляра одного объекта с экземпляром другого объекта.
Рассмотрим пример:Автомобиль: *гос.номер, *марка, цвет, владелецАтрибут «цвет» является описательным, атрибуты
«гос.номер» и «марка»— указательными, атрибут «владелец» — вспомогательным, служащим для связи экземпляра объекта Автомобиль с экземпляром объекта Автолюбитель. Если значение вспомогательного атрибута изменится, это говорит о том,\что теперь другие экземпляры объектов связаны между собой.
Таким образом, информационная модель — набор величин, характеристик, закономерностей, содержащих необходимую информацию об объекте, процессах, явлении, ситуациях и т.п.
18
Вопросы1. Что гакое объект?2. Перечислите категории объектов и их характеристики.3. Что такое идентификатор объекта?4. Приведите пример объекта, перечислите его атрибуты.5. Какие существуют способы представления объектов?6. Что гакое информационная модель.7. Школьные учебники истории содержат схемы воен
ных сражений. Можно ли их нажать моделями? К какому гипу моделей их можно отнести?
8. Что такое математическая модель? Приведите примеры.
9. Можно ли назвать поясняющий чертеж к задаче моделью? Поясните ответ.
4. Основные типы информационных моделей (табличные, иерархические, сетевые)
4.I. Табличные информационные моделиОдним из наиболее часто встречающихся типов ин
формационных моделей является таблица, которая состоит из строк и столбцов. В табличной информационной модели объекты и их свойства представлены в виде списка, а значения размещаются в ячейках прямоугольной таблицы.
В этой интерпретации каждый экземпляр объекта является строкой в таблице, а значения атрибутов, соответствующих каждому экземпляру, — клетками строки.
19
Т а б л и ц а 1 Представление в виде таблицы
АвторКнига
Название Годиздания
Числостраниц
Грин А. Бегущая по волнам 1988 279Стивенсон Р. Остров сокровищ 1992 269Скотт В. Ричард Львиное Сердце і 1993 349Гончаров И. А. Обрыв 1 1986 598
С помощью таблиц могут быть выражены кақ статические, так и динамические информационные модели. Например, рассмотрим компьютер с точки зрения стоимости отдельных устройств и изменения его цены во времени. Для этого построим статистическую информационную модель (см. табл. 2), отражающую стоимость отдельных устройств компьютера, и динамическую информационную модель (см. табл. 3), отражающую процесс изменения цены по годам.
Статистическая информационная модель «Цены отдельных устройств компьютера» организована следующим образом. В первом столбце таблицы содержится перечень объектов (устройств), входящих в состав компьютера, а во втором в форме числа отражено свойство объектов «Цена».
Т а б л и ц а 2 Цены отдельных устройств компьютера
Наименование устройства Цена (в у.е.)1 2
Системная плата 100Процессор Pentium (300 МГц) 200Память 16 Мб 30Жесткий диск 4 Гб 150
20
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
Табличные информационные модели проще всего строить и исследовать на компьютере с помощью электронных таблиц и баз данных.
4.2. Иерархические информационные модели
И ерархические — объекты распределены по уровням. Каждый элемент высокого уровня состоит из элементов нижнего уровня, а элемент нижнего уровня может входить в состав только одного элемента более высокого уровня.
Нас окружает великое множество различных объектов, каждый из которых обладает определенными свойствами. Однако некоторые группы объектов имеют одинаковые общие свойства, которые отличают их от объектов других групп.
Например, все существующие в мире компьютеры используются для обработки информации и их целесообразно объединить в группу объектов «Компьютеры», в то время как автомобили предназначены для перемещения в пространстве и их объединяют в другую группу объектов — «Автомобили».
Группа объектов, обладающая одинаковыми общими свойствами, называется классом объектов.
Внутри класса могут быть выделены подклассы, объекты которых обладают некоторыми особенными свойствами, в свою очередь подклассы могут делиться на еще более мелкие группы и т.д. В процессе классификации строятся информационные модели, которые имеют иерархическую (древовидную) структуру.
Рассмотрим процесс построения информационной модели, которая позволяет классифицировать современные компьютеры. Класс Компьютеры можно разделить на три
22
семейства: Суперкомпьютеры, Рабочие станции и Персональные компьютеры.
Компьютеры, входящие в семейство Суперкомпьютеры, отличаются сверхвысокой производительностью и надежностью и используются в крупных научно-технических центрах для управления процессами в реальном масштабе времени.
Компьютеры, входящие в семейство Рабочие станции, обладают высокой производительностью и надежностью и используются в качестве серверов в локальных и телекоммуникационных сетях.
Компьютеры, входящие в семейство Персональные компьютеры, обладают средней производительностью и надежностью и используются в офисах и дома.
Семейство Персональные компьютеры делится в свою очередь на три разновидности: Настольные, Портативные и Карманные.
Представим эту модель графически (рис. 3.).
Полученная информационная структура напоминает дерево, которое растет сверху вниз (именно поэтому такие
23
информационные модели называют иногда древовидными). В структуре четко просматриваются три уровня, от первого верхнего, имеющего один элемент Компьютеры, мы спускаемся до третьего, нижнего, имеющего три элемента Настольные, Портативные, Карманные. Основное отношение между уровнями состоит в том, что элементы нижнего уровня входят в состав одного из элементов верхнего уровня.
В иерархической информационной модели объекты и их свойства распределены по уровням, причем элементы нижнего уровня входят в состав элементов более высокого уровня.
Выше мы построили иерархическую статистическую информационную модель, однако довольно часто иерархические структуры применяются и для описания процессов. Так, для описания исторического процесса смены поколений семьи используются динамические информационные модели в форме генеалогического дерева. В качестве примера можно рассмотреть модель формирования казахского ханства с середины XV в. до начала XVIII в.
Рис. 4. Формирование казахского ханства с середины XV в. до начала XVIII в.
24
Рассмотренные выше информационные модели мы изобразили в виде графов. Вершины графа (овалы) отображают элементы системы. Элементы верхнего уровня находятся в отношении «состоять из» к элементам более низкого уровня. Такая связь между элементами отображается в форме дуги (направленной линии в форме стрелки). Графы, в которых связи между объектами несимметричны, называются ориентированными.
Граф — удобный способ наглядного представления структуры информационной модели.
Графы позволяют формализовать информационные модели, записанные на естественном языке, можно сказать, они позволяют «увидеть» структуру его объектов и отношений. Простейший язык состоит из имен объектов и имен отношений между этими объектами. Например, фраза «Принтер подключен к компьютеру» говорит о том, что объект «принтер» находится в отношении «подключен к» с объектом «компьютер». С помощью графа эту фразу можно представить следующим образом:
Иерархические структуры широко применяются для построения классификационных информационных моделей. В биологии весь животный мир рассматривается как иерархическая система (тип, класс, отряд, семейство, род, вид), в информатике используется иерархическая файловая система и т.д.
подключен к
принтер
Рис. S. Представление фразы с помощью графа
25
4.3. Сетевые информационные моделиСетевые информационные модели применяются для
отражения таких систем, в которых связь между элементами имеет сложную структуру. Например, различные части глобальной компьютерной сети Интернет (американская, европейская, российская и т.д.) связаны между собой высокоскоростными линиями связи. При этом какие-то части (американская) имеют прямые связи со всеми региональными частями, в то время как другие могут обмениваться информацией между собой только через американскую часть (например, российская и японская)
Построим граф, который отражает систему Интернет. Вершинами графа являются региональные сети. Связи между вершинами носят двусторонний характер и поэтому изображаются ненаправленными линиями (ребрами), а сам граф называется неориентированным.
Представленная сетевая информационная модель является статической моделью. С помощью сетевой динамической модели можно, например, описать процесс передачи мяча в коллективной игре (футболе, баскетболе и т.д.).
Рис. 6. Сетевая структура глобальной сети Интернет
26
ВопросыТ. Каковы характерные особенности табличных инфор
мационных моделей?2. Приведите примеры табличных информационных мо-
' дел ей.3. Каковы основные характерные особенности иерархи
ческих информационных моделей?4. Приведите примеры иерархических информационных
моделей.5. Что такое граф?6. Каковы основные элементы графа?7. Каковы основные характерные черты сетевых инфор
мационных моделей?8. Приведите примеры сетевых информационных моде
лей.9. Какие системы объектов целесообразно и возможно
представлять с помощью сетевых моделей?
5. Этапы решения задач с помощью компьютера
Использование компьютера для исследования информационных моделей различных объектов и систем позволяет изучить их изменения в зависимости от значения тех или иных параметров. Компьютерное моделирование, от постановки задачи до получения результатов, проходит следующие этапы:
1. Содержательная постановка задачи. Создание описательной информационной модели:
- сбор информации о задаче;- формулировка условия задачи;- определение конечных целей решения задачи;- определение формы выдачи результатов;
27
- описание данных (их типов, диапазонов величин, структуры и т.д.).
Выделяются существенные признаки с точки зрения целей моделирования.
2. Формулировка гипотез, построение, исследование модели. Создание формализованной модели:
- построение математической модели;- анализ существующих аналогов;- анализ технических и программных средств;- разработка структур данных.С помощью формул, уравнений, неравенств фиксиру
ются формальные соотношения между начальными и конечными значениями, накладываются ограничения.
3. Построение алгоритма и программы моделирования. Преобразование формализованной модели в компьютерную модель:
- выбор метода проектирования алгоритма;- выбор формы записи алгоритма (блок-схема, псевдо
код и др.)- выбор тестов и метода тестирования;- проектирование алгоритма решения задачи и его ко
дирование на языке программирования;- построение компьютерной модели с использованием
одного из приложений.4. Проведение вычислительного (компьютерного) экс
перимента.Чтобы дать жизнь новым конструкторским разработ
кам, внедрить новые технические решения в производство или проверить новые идеи, нужен эксперимент. Эксперимент — это опыт, который производится с объектом или моделью. Он заключается в выполнении некоторых действий и определении, как реагирует экспериментальный образец на эти действия.
28
В школе проводятся опыты на уроках биологии, химии, физики, географии.
Эксперименты проводят при испытании новых образцов продукции на предприятиях. Обычно для этого используется специально создаваемая установка, позволяющая провести эксперимент в лабораторных условиях, либо сам реальный продукт подвергается всякого рода испытаниям (натурный эксперимент). Для исследования, к примеру, эксплуатационных свойств какого-либо агрегата или узла его помещают в термостат, замораживают в специальных камерах, испытывают на вибростендах, роняют и т.п. Хорошо, если это новые часы или пылесос — не велика потеря при разрушении. А если самолет или ракета?
Лабораторные и натурные эксперименты требуют больших материальных затрат и времени, но их значение, тем не менее, очень велико.
С развитием компьютерной техники появился новый уникальный метод исследования — компьютерный эксперимент. В помощь, а иногда и на смену экспериментальным образцам и испытательным стендам во многих случаях пришли компьютерные исследования моделей. Этап проведения компьютерного эксперимента включает две стадии: составление плана эксперимента и проведение исследования.
План эксперимента должен четко отражать последовательность работы с моделью. Первым пунктом такого плана всегда является тестирование модели.
Тестирование — процесс проверки правильности построения модели.
Тест набор исходных данных, позволяющий определить правильность построения модели. Чтобы быть уверенным в правильности получаемых результатов моделирования, надо:
- проверить разработанный алгоритм построения модели;
29
- убедиться, что построенная модель правильно отражает свойства оригинала, которые учитывались при моделировании.
Для проверки правильности алгоритма построения модели используется тестовый набор исходных данных, для которых конечный результат заранее известен или предварительно определен другими способами.
Например, если вы используете при моделировании расчетные формулы, то надо подобрать несколько вариантов исходных данных и просчитать их «вручную». Это тестовые задания. Когда модель построен^, вы проводите тестирование с теми же вариантами исходных данных и сравниваете результаты моделирования с выводами,-полученными расчетным путем. Если результаты совпадают, то алгоритм разработан верно, если нет — надо искать и устранять причину их расхождения. Тестовые данные могут совершенно не отражать реальную ситуацию и не нести смыслового содержания. Однако полученные в процессе тестирования результаты могут натолкнуть вас на мысль об изменении исходной информационной или знаковой модели, прежде всего в той ее части, где заложено смысловое содержание.
Чтобы убедиться, что построенная модель отражает свойства оригинала, которые учитывались при моделировании, надо подобрать тестовый пример с реальными исходными данными.
Проведение исследованияПосле тестирования, когда у вас появилась уверенность
в правильности построенной модели, можно переходить непосредственно к проведению исследования.
В плане должен быть предусмотрен эксперимент или серия экспериментов, удовлетворяющих целям моделирования. Каждый эксперимент должен сопровождаться
30
осмыслением итогов, что служит основой анализа результатов моделирования и принятия решений.
Для проведения компьютерных экспериментов необходима предварительная подготовка: определение цели моделирования и задач компьютерного эксперимента.
Обычно основной целью моделирования является построение (получение) информационной модели объекта, причем в модель знаний включают лишь ту информацию, которая нам необходима.
Задачи компьютерных экспериментов можно разделить на следующие направления:
- проведение расчетов при различных исходных данных;
- оптимизация параметров при подходящем подборе совокупности данных;
- изучение закономерностей тех или иных процессов на основе имитационного моделирования;
- наблюдение за демонстрацией процесса (в физических моделях).
Все эти задачи позволяют получить новые сведения, знания о моделируемом объекте в соответствии с выбранной постановкой.
В зависимости от возникающих задач легко определяется блок исходных данных.
Следующей проблемой становится этап обработки и представления результатов компьютерного эксперимента. Существуют различные способы представления результатов исследований — таблицы, диаграммы, графики, формулы и т.п. Таким образом, компьютерный эксперимент протекает по следующей схеме:
Цель Задача Исходные Экспе Информационнаяданные римент модель
31
5. Анализ полученных результатов и корректировка исследуемой модели:
- отладка семантики и логической структуры;- тестовые расчёты и анализ результатов тестирования;- совершенствование программы;- анализ результатов решения задачи и уточнение в
случае необходимости математической модели с повторным выполнением этапов 2 — 4 , перечисленных выше.
6. Модификация (развитие) модели:V- сопровождение программы;- доработка программы для решения конкретных за
дач;- составление документации к решенной задаче, мате
матической модели, алгоритму, программе, набору тестов, использованию.
Рассмотрим процесс решения задачи на конкретном примере.
Пример 1. Через иллюминатор корабля требуется вытащить сундук с драгоценностями. Удастся ли это сделать?
Содержательная постановка задачи
- синтаксическая отладка;
Дано:R — радиус иллюминатора,а, Ь, с — размеры сундука, dl, d2, сП> — диагонали боковых поверхностей сундука. Найти: удастся ли вытащить сундук?
32
Формулировка гипотез, построение математической модели и ее исследование
Сундук можно вытащить через иллюминатор одной из трех боковых граней, следовательно, достаточно, чтобы диаметр иллюминатора оказался больше одной из трех диагоналей боковых граней сундука, т. е. истинным было хотя бы одно из условий: диаметр > 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
Исходная форма и форма после запуска приложения имеют следующий вид:
T-.iqJ.xJ
Длина сундука. а Щ :::: I
Компьютерный эксперимент
Ширина сунхука. b
Высота сунхука. с
ЩРадиус иллюминатора. R
|ИДлина сундука, а
Компьютерный экспер
ШЯШЯШШЩЩтЯШШирина сунхука Ъ
Высота сунхфка. с
JSiвведите значение ширины сундука ОК
ПараметрыДиаметр иллюминат ера
Диагональ сундука d1Диагональ сундука d2Диагональ сундука d3Результат
и ж ш ш ш
Радиус иллюминатора R
Длина сундука, а
Ширина сундука b |
Высота сундука, с Р~
Компьютерный эксперимент
(Параметры 1| Диаметр иллюминатора 24.0
10.7717.2
Да
| Диагональ сундука dlI Диагональ сундука 62I Диагональ сундука d3I Результат
Расчет
И
Продолжим эксперимент?
ST. "Я ЙОТ
34
Примерный код
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
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
ляются компьютером автоматически. Современные компьютеры выдают информацию об ошибках вместе с текстом программы, указывают места ошибок и их характер.
Алгоритмические ошибки, возникающие при нарушении логики решения задач, приводят к получению неверных результатов, к зацикливанию программы, к аварийному ее завершению. Алгоритмические ошибки выявить и устранить гораздо сложней.
Проведение вычислительного (компьютерного) эксперимента
После устранения всех ошибок, выявленных тестовой задачей, можно перейти к получению результатов решения поставленной задачи.
Подготавливаются исходные данные задачи и вводятся в компьютер.
Проводится вычислительный эксперимент. Это эксперимент, осуществляемый с помощью модели на компьютере с целью распределения, прогноза тех или иных состояний системы, реакции на те или иные входные сигналы (данные).
Анализ полученных результатов и корректировка исследуемой модели
Полученные в результате решения выходные данные (результаты) анализируются постановщиком задачи, обрабатываются (строятся графики, таблицы).
На основании анализа вырабатываются соответствующие решения, рекомендации.
Вопросы1. Перечислить основные этапы в составлении программ
для решения задач на компьютере.2. Зачем нужна постановка задачи?3. Какие ошибки могут возникать на этапе отладки про
граммы?37
6. Исследование на компьютере информационных моделей из различных предметных областей
6.1. Физические модели
Графическое представление физических объектов и процессов
Физическим принять называть моделирование, при котором реальному объекту соответствует его копия, допускающая исследование, после которого свойства процессов и явлений можно перенести с модели на объект на основе теории подобия.
Примеры физических моделей: в астрономии — планетарий, в гидротехнике — лотки с водой, моделирующие реки и водоёмы, в архитектуре макеты зданий, в самолётостроении — модели летательных аппаратов и т. п.
Построение информационной модели движения тела, брошенного под углом к горизонту
Пример 2. Тело брошено с некоторой высоты Һ с начальной скоростью Vo, направленной под углом а к горизонту. Определить дальность полета S, время движения t и максимальную высоту Н, на которую поднимется тело, зная вышеуказанные начальные данные.
Содержательная постановка задачи1. Найти время движения тела при заданном угле бро
сания и начальной скорости.2. Найти дальность и максимальную высоту подъема
тела.3. Получить траекторию движения тела, брошенного
под углом а к горизонту с начальной скоростью VQ. Сопротивлением воздуха можно пренебречь.
38
Построение математической модели и ее исследование
Запишем законы изменения координат 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
Траектория — парабола, ветви которой направлена вниз. В верхней точке траектории т. А вертикальная скорость становится равной нулю.
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
центростремительным ускорением. В верхней точке траек-V2 cos2 сстории радиус кривизны R =;^=--------- .
gПостроение алгоритма и программы моделирования
(компьютерной модели движения тела) с использованием среды объектно-ориентированного программирования Visual Basic
На основе формальной модели, описывающей движение тела, брошенного под углом к горизонту, создадим компьютерную модель с использованием среды объектно- ориентированного программирования Visual Basic. Практическая значимость модели заключается в создании базы экспериментальных данных зависимости движения брошенного тела от некоторых постоянно изменяющихся параметров.
Этапы построения компьютерной модели:1. Спроектируем интерфейс приложения. Для этого на
форме установим:
41
- графическое поле 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
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
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
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
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
Используя предложенную информационную модель движения тела, брошенного под углом к горизонту, можно решить следующие задачи:
- о подводной охоте (под каким углом следует выстрелить охотнику, если акула находится от него на расстоянии 1 метра);
- о теннисном шарике. Какой должна быть высота крытого корта, если угол а, под которым теннисист отправляет шарик, заключен в диапазоне от он до аг? Если начальная скорость теннисного шарика vo (которая зависит от силы ударов по нему) заключена в диапазоне от voi до V02?
Пример 3. В процессе тренировок теннисистов используются автоматы по бросанию мячика в определенное место площадки. Необходимо задать автомату необходимую скорость и угол бросания мячика для попадания в мишень определенной высоты, находящуюся на известном расстоянии.
Качественная описательная модельСначала построим качественную описательную модель
процесса движения тела с использованием физических объектов, понятий и законов, т.е. в данном случае идеализированную модель движения объекта. Из условия задачи можно сформулировать следующие основные предположения:
- мячик мал по сравнению с Землей, поэтому его можно считать материальной точкой;
- изменение высоты мячика мало, поэтому ускорение свободного падения можно считать постоянной величиной g = 9,8 м/с2 и движение по оси OY можно считать равноускоренным;
- скорость бросания тела мала, поэтому сопротивлением воздуха можно пренебречь и движение по оси ОХ можно считать равномерным.
47
Формальная модельДля формализации модели используем известные из
курса физики формулы равномерного и равноускоренного движения. При заданных начальной скорости 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
у брошенного тела, для этого воспользуемся формулами (1) а З Д
2. Построим вспомогательную таблицу на листе Excel для ввода значений начальной скорости vp, угла а, ускорения свободного падения g, расстояния до мишени S.
3. Визуализируем модель, построив график зависимости координаты у от координаты х.
4. Исследуем модель, вычисляя высоту брошенного тела над землей по формуле (3) и определяя с заданной точностью значение угла бросания а, которое обеспечит попадание тела в мишень, находящуюся на определенной высоте Н и расстоянии S.
При построении компьютерной модели можно применить встроенные функции Excel. Поиск функций в Excel упрощается благодаря возможности выбора нужной функции из списка Мастера функций. Обратиться к Мастеру функций можно при помощи команды Вставка -> Функция.
В Excel функции могут входить одна в другую, например, для преобразования значений углов из градусов в радианы используется функция РАДИАНЫ:
С08(РАДИАНЫ($Ғ$2)).В данном случае функция РАДИАНЫ используется как
аргумент функции COS и считается вторым уровнем вложенности. Такие функции-называют вложенными. Формула Excel может содержать до семи вложенных функций. Чтобы облегчить ввод формул, содержащих вложенные функции, можно воспользоваться Панелью формул окна Excel.
Если функция отсутствует в раскрывающемся списке Панели формул, то необходимо выбрать пункт меню Другие функции... и в диалоговом окне Мастер функций найти функцию.
49
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
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'
IІ
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. Постройте точечную диаграмму зависимости координаты у от координаты х со значениями, соединенными сглаживающими линиями для визуализации модели.
*
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
пазон значений угла бросания тела, в котором обеспечивается попадание в мишень высотой от 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 Л
начальной скорости, угла бросания мячика, расстояния до мишени, ее высоты и вывода численного результата броска мячика на заданном расстоянии, текстового сообщения о результатах броска.
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
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
'формула вычисления высоты брошенного тела над землей ’ в зависимости от значений 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
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
а == 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
дание тела, брошенного со скоростью 18м/с, в мишень, находящуюся на расстоянии 1 м и на высоте 1 м.
6.2. Экологические моделиЭкология — одно из слов, появившихся сравнительно
недавно у всех на устах и на страницах газет и журналов. Еще в 60-х годах XX столетия почти никто, кроме узких специалистов, его не знал, да и большинство из тех, кто знал, использовал в таком смысле, который вряд ли способен заинтересовать широкую общественность. А между тем, термину более 120 лет.
В 1869 г. немецкий естествоиспытатель Эрнст Геккель предложил составной термин «экология» («эко» — дом, жилище, местопребывание и «логос» — наука, знание) как название раздела биологии, ставшего самостоятельным. Классическая экология — наука о взаимодействии организмов и окружающей среды. Сегодня, говоря об экологии, чаще всего имеют в виду не классическую, а, так называемую, социальную экологию, оформившуюся как научное направление и направление общественно-политической деятельности на 100 лет позднее и занимающуюся проблемами охраны окружающей среды, взаимодействием с ней человеческого сообщества.
Математические модели в экологии используются практически с момента возникновения этой науки. И, хотя поведение организмов в живой природе гораздо труднее адекватно описать средствами математики, чем самые сложные физические процессы, модели помогают установить некоторые закономерности и общие тенденции развития отдельных популяций, а также сообществ. Кажется удивительным, что люди, занимающиеся живой природой, воссоздают ее в искусственной математической форме, но есть веские причины, которые стимулируют эти занятия. Вот не-
59
которые цели создания математических моделей в классической экологии:
1. Модели помогают выделить суть или объединить и выразить с помощью нескольких параметров важные разрозненные свойства большого числа уникальных наблюдений, что облегчает экологу анализ рассматриваемого процесса или проблемы.
2. Модели выступают в качестве «общего языка», с помощью которого может быть описано каждое уникальное явление, и относительные свойства таких явлений становятся более понятными.
3. Модель может служить образцом «идеального объекта» или идеализированного поведения, при сравнении с которым можно оценивать и измерять реальные объекты и процессы.
4. Модели действительно могут пролить свет на реальный мир, несовершенными имитациями которого они являются.
При построении моделей в математической экологии используется опыт математического моделирования механических и физических систем, однако с учетом специфических особенностей биологических систем:
— сложности внутреннего строения каждой особи;— незамкнутости экологических систем;— огромного диапазона внешних характеристик, при
которых сохраняется жизнеспособность систем.Привлечение компьютеров существенно раздвинуло
границы моделирования экологических процессов. С одной стороны, появилась возможность всесторонней реализации сложных математических моделей, не допускающих аналитического исследования, с другой — возникли принципиально новые направления, и прежде всего — имитационное моделирование.
60
Пример 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
Математическое описание модели
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
— таблицу для ввода исходных данных: количества населения планеты к 2000 году, ежегодный % увеличения населения планеты, количества пропускаемого воздуха за 1 дыхательное движение (см ), количества дыхательных движений за 1 минуту, % содержание углекислого газа в выдыхаемом воздухе, плотности СОг в г/см3;
— таблицу для вывода результатов эксперимента: количества населения планеты к 2030 году, количества пропускаемого воздуха человеком за 1 час, количества пропускаемого воздуха населением планеты за 1 час, количества углекислого газа, выдыхаемого населением планеты за 1 час, количества выделяемого углекислого газа за 1 час населением планеты к 2030 году (тонн);
— три кнопки Расчет, Изменение параметров, Выход.
Необходимо определить
сколько углекислого газа
(С02) будет выделяться населением
планеты к 2030 году.
Расчет ( Изменить параметры |
Выход
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
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
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
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
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
ЕТШІНШ ЙЩШИсходные данные щ .............Ежегодно население планеты увеличивается на 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
то же время и занимающих определенную территорию. И, наконец, сообщество — это совокупность совместно сосуществующих популяций.
В классической экологии рассматриваются взаимодействия нескольких типов:
- взаимодействие организма и окружающей среды;- взаимодействие особей внутри популяции;- взаимодействие между особями разных видов (между
популяциями).
Содержательная постановка задачи
Сайгак — парнокопытное животное семейства полорогих антилоп, проживают в Киргизских степях, преимущественно у Аральского моря.
Начальная численность популяции сайгаков (жертвы) составляет 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
Задача 3. Рассчитайте численность сайгаков через 1,3,5 и 10 лет, если начальная численность волков составляет N особей и возрастает на М % ежегодно и каждый волк съедает в среднем по К сайгаков в год.
Математическое описание модели
В данной задаче необходимо описать модель процесса изменения численности популяции сайгаков:
— прирост популяции сайгаков на конец года можно найти следующим образом: численность сайгаков на начало года умножить на процент прироста;
— численность сайгаков через 3, 5, 10 лет (при полном отсутствии хищников) можно найти, выполнив следующие вычисления: к численности сайгаков на начало года прибавить прирост популяции сайгаков за год;
— аналогично можно вычислить изменение численности волков;
— численность сайгаков через 3, 5, 10 лет (если численность хищников составляет N особей, она не изменяется на протяжении указанного периода времени, и каждый волк съедает в среднем по К сайгаков в год) можно найти, выполнив следующие вычисления: от изменения численности популяции отнять количество жертв, которое съедает N хищников;
— численность сайгаков через 3, 5, 10 лет (если начальная численность волков составляет N особей и возрастает на М % ежегодно, и каждый волк съедает в среднем по К сайгаков в год) можно найти, выполнив следующие вычисления: от изменения численности популяции отнять количество жертв, которое съедает N хищников (с учетом роста их количества).
71
Построение компьютерной модели развития популяции с использованием языка Visual Basic
Практическая значимость модели заключается в создании базы экспериментальных данных зависимости численности сайгаков от некоторых постоянно изменяющихся параметров (процент прироста сайгаков, количество сайгаков, потребляемых хищником, начальная численность хищников, процент прироста хищников).
Этапы построения компьютерной модели:1. Спроектируем интерфейс приложения. Для этого на
форме установим:- таблицу для ввода данных эксперимента: начальная
численность жертвы, процент прироста жертвы, количество жертв, потребляемых одним хищником, начальная численность хищников, процент прироста хищников;
- таблицу для вывода результатов эксперимента: изменение численности сайгаков при полном отсутствии хищников; изменение численности сайгаков, если численность хищников N особей (она не изменяется на протяжении указанного периода времени, и каждый волк съедает в среднем по К сайгаков в год); изменение численности сайгаков, если начальная численность волков составляет N особей и возрастает на М % ежегодно, и каждый волк съедает в среднем по К сайгаков в год;
- шесть кнопок Расчет, Эксперимент, Выход, Диаграмма, Диаграмма!, Диаграмма2.
72
Результат эксперимента
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
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
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
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
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
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
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
3. Запустите проект, поэкспериментируйте с различными значениями изменяемых параметров: начальная численность жертвы, процент прироста жертвы, количество жертв, потребляемых одним хищником, начальная численность хищников, процент прироста хищников.
Анализ данных
При сравнении трех графиков можно судить о влиянии количества волков на популяцию сайгаков.
При отсутствии хищников количество особей в популяции стремительно растет (задача №1), так как рост численности сайгаков ничем не сдерживается.
При наличии небольшой популяции волка (15 особей) популяция сайгаков на протяжении четырех лет уменьшается, а затем исчезает. Здесь играет роль достаточно большое количество волков. 15 волков вполне способны истребить в течение 4 лет популяцию сайгаков из 1000 особей, несмотря на то, что годовой прирост популяции сайгаков — 30 %, а годовой прирост популяции волка равен нулю.
При годовом приросте численности волков в 10 %, кривая популяции зайцев стремительно исчезает после 3 лет.
81
Построение компьютерной модели отношений «хищник — жертва» в природном сообществе в электронных таблицах
При использовании формул Excel для построения ком- \ пьютерной модели отношений «хищник — жертва» в природном сообществе пользователю необходимо знать поня- j тие и принципы использования абсолютных, относительных и смешанных ссылок в формулах MS Excel.
В зависимости от задачи на ячейки могут устанавливаться абсолютные, относительные или смешанные ссылки.Для адресации ячеек в формулах Excel используются относительные ссылки, позволяющие при копировании формул автоматически изменять адреса относительно ячеек, в которые происходит копирование. Относительные ссылки записываются простым указанием номеров строк и букв столбцов ячеек, например А2, С38, AD23.
Абсолютные ссылки противоположны относительным.Они используются, когда необходимо сохранение адресов ячеек при копировании формулы в другую ячейку. Для обозначения абсолютной ссылки перед номером строки и буквой столбца нажатием клавиши F4 указывается знак $. Например, абсолютная ссылка на ячейку А1 будет выглядеть следующим образом: $А$1.
Сочетанием абсолютных и относительных ссылок являются смешанные ссылки. Их используют, когда при копировании формулы нужно сохранять фиксированным только один параметр, то есть номер строки или букву столбца.При этом перед сохраняемым параметром адреса пишется знак $, а перед изменяемым — нет. Например, для ссылки $В8 номер столбца при копировании меняться не будет, а номер строки будет автоматически изменяться согласно положению ячейки с формулой. Ссылка, у которой фиксиро-
82
ванным остается номер строки, а номер столбца меняется, выглядит следующим образом: В$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
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
средствами 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
- введите в ячейку С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
ли начальная численность волков возрастает на 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
Построение компьютерной модели биологической модели развития популяции с использованием языка 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 = Аггау(Тод”, "изменение численности жертвы цри отсутствии хипщиков", "изменение численности жертвы при наличии хипщиков”, "изменение числен
ности жертвы при наличии роста хищников", "% увеличения численности жертвы'*", "численность хищников", "% увеличения численности хищников", "количество жертв, потребляемых одним хищником в год")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
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
Задания для самостоятельной работы
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
ные отличия в процессе при быстрой ( 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
сти и смертности. Пищи в такой системе всем хватает, экология не нарушена, жизни ничто не угрожает.
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
Становясь твердым, как камень, он уже не пропускает ртуть (которая просачивается даже через бетон). За летний сезон 2000 года была выстроена стена длиной 130 м.
а) Разработайте проект, позволяющий определить:— а) количество скопившейся на месте электролизного
цеха ртути (в м3);— б) количество скопившейся на месте электролизного цеха
ртути (в тоннах);— в) через сколько лет ртуть может достигнуть Ирты
ша?б) Разработайте проект, который определит, была изо
лирована ртуть от окружающей среды летом 2000 года или нет? Каков процент выполнения работа? Сколько метров стены необходимо еще построить. Сколько лет потребуется для изоляции ртути, если темп работы не увеличится?
в) Разработайте проект, который определит; какова будет площадь зараженной ртутью земли через 5 лет, если не принять срочные меры по нейтрализации ртути. Ежегодно площадь увеличивается на 30 %. Превысит ли площадь предельно допустимое значение в 50000 м2?
4.2. Уничтожение лесов является причиной выделения j объема двуокиси углерода на планете. Вследствие этого весьма вероятно потепление среднегодовой температуры на планете на 5-10 градусов Цельсия в ближайшие 50 лет. Такое повышение температуры повлечет за собой огромный экологический, экономический и социальный взрыв. Это станет причиной того, что уровень воды поднимется на 1-2 метра из-за тающих полярных льдов и часть суши будет поглощена морем.
Лес не случайно называют «зеленым щитом» или «зелеными легкими планеты». Именно листва деревьев поглощает углекислый газ и выделяет кислород, тем самым, предотвращая угрозу экологическому балансу окружающей среды.
94
В 2001 году была принята большая программа по возрождению Баянаульского государственного национального природного парка и лесовосстановлению Чалдайского реликтового соснового бора на юге области. Чалдайский бор в предшествующие годы значительно пострадал из-за плановых и самовольных вырубок, от усыхания и больших лесных пожаров, охвативших в лето 1999 года 2560 га площадей. Сегодня здесь требуется провести лесовосстановительные работы на площади не менее 30 тысяч га. Управление охраны окружающей среды выделило на эти цели в 2000 году 19 миллионов тенге (посадка 1 га лесных культур стоит 30000 тенге).
а) Разработайте проект, определяющий:- сколько времени потребуется на восстановление тер
ритории сгоревшего леса;- сколько лет потребуется на возрождение всего сосно
вого бора.б) Разработайте проект, определяющий, возродится ли
сосновый бор в полном объеме к 2030 году, если сохранить прежние темпы восстановления леса. Определите процент выполнения восстановительных работ.
в) Для восстановления соснового бора в питомниках Чалдая и Бескарагая имеется 5 миллионов 30 тысяч саженцев. Разработайте проект, определяющий, какова будет высота растения через 6 лет, если естественный ежегодный прирост составляет 5,5%? Высота саженца 20 см. Через сколько лет высота деревьев станет равной 5 м?
4.3. В ближайшие 50 лет весьма вероятно потепление среднегодовой температуры на планете на 5—10 градусов Цельсия. Такое повышение температуры повлечет за собой огромный экологический, экономический и социальный взрыв. Это станет причиной того, что уровень воды поднимается на 1-2 метра из-за тающих полярных льдов и часть суши будет поглощена морем. Метан является причиной
95
18 % глобального потепления. Источником выделяемого в атмосферу метана являются рисовые поля, скот и городские свалки. Свалки портят внешний вид городского пейзажа, почти постоянно горят, отравляя и без того загрязненный городской воздух, вредные вещества просачиваются сквозь слои почвы в подземные воды. По данным областного управления по экологии и биоресурсам под стихийные свалки в Павлодаре занято свыше 250 гектаров земли, пригодной для освоения. Объем бытовых и промышленных отходов составляет 186 кг на человека в год. Около 80 % всего мусора свозится на свалки.
На территории Павлодарской области накоплено около 4 миллиардов тонн твердых отходов производства, включая 1 миллион тонн отходов повышенной опасности. Уровень использования отходов относительно годового объема их образования составляет всего 0,5 %.
На ликвидацию тонны мусора город, имеющий мусороперерабатывающий центр, тратит в среднем 36 долларов, в то же время город, не имеющий такого центра, тратит порядка 120 долларов. Павлодарские экологи выступают за создание специализированной фирмы для переработки мусора.
а) Разработайте проект, определяющий:- на сколько тонн в год увеличиваются свалки в городе
Павлодаре, если население г. Павлодара в 2000 году составило 296 000 человек;
— размер вторичного использования отходов в год в Павлодарской области.
б) Разработайте проект, определяющий, сколько денег потратит г. Павлодар на ликвидацию накопленных отходов производства, имея мусороперерабатывающий центр и сколько потратит денег, не имея его. В каком случае затраты будут больше и во сколько раз?
96
в) Разработайте проект, определяющий, на сколько тонн увеличатся свалки в городе Павлодаре к 2030 году, если рост мусора составляет 2,5 % в год.
7. Моделирование динамических процессов
Одна из классификаций моделей связана с фактором времени. Модели можно разделить на статические и динамические по тому, как отражается в них динамика происходящих процессов.
Статическая модель — это единовременный срез информации по данному объекту. Например, обследование учащихся в стоматологической поликлинике дает состояние их зубов на данный момент времени: соотношение молочных и постоянных, наличие пломб, дефектов и т.п.
Динамическая модель представляет картину изменения объекта по времени. В примере с поликлиникой медицинскую карту ученика, отражающую изменение состояния его зубов в течение многих лет, можно считать динамической моделью.
При строительстве дома рассчитывают прочность его фундамента, стен, балок и устойчивость их к постоянной нагрузке. Это статическая модель здания. Но надо также
ВИДЫ МОДЕЛЕЙ
СТАТИЧЕСКИЕ ДИНАМИЧЕСКИЕ
—► ИМИТАЦИОННЫЕ
^ВЕРОЯТНОСТНЫЕ
97
обеспечить противодействие ветрам, движению грунтовых вод, сейсмическим колебаниям и другим, изменяющимся во времени факторам. Эти вопросы можно решить с помощью динамических моделей.
Как видно из примеров, один и тот же объект можно охарактеризовать и статической, и динамической моделью.
При построении моделей используют два принципа: дедуктивный (от общего к частному) и индуктивный (от частного к общему). !
При первом подходе рассматривается частный случай общеизвестной фундаментальной модели. Здесь при заданных предположениях известная модель приспосабливается к условиям моделируемого объекта. Например, можно построить модель свободно падающего тела на основе известного закона Ньютона ma=mg - Ғсопр и в качестве допустимого приближения принять модель равноускоренного движения для малого промежутка времени.
Второй способ предполагает выдвижение гипотез, декомпозицию сложного объекта, анализ, затем синтез. Здесь широко используется подобие, аналогичное моделирование, умозаключение с целью формирования каких-либо закономерностей в виде предположений о поведении системы. Например, подобным способом происходит моделирование строения атома. Вспомним модели Томпсона, Резерфорда, Бора.
7.1. Имитационное моделированиеМодель — имитационная, если она предназначена для
испытания или изучения, проигрывания возможных путей развития и поведения объекта путем варьирования некоторых или всех параметров модели.
Имитационное моделирование — это искусственный эксперимент, при котором вместо проведения натуральных испытаний с реальным оборудованием проводят опыты с помощью математических моделей.
98
Практически имитация осуществляется на компьютере, в который вводится математическая модель, т.е. все соотношения, связывающие характеристики соотношений состояния процесса с исходной информацией и начальными условиями. На основании этих данных и допущений о тех или иных воздействиях со стороны окружающей среды ЭВМ вычисляет характеристики изделий и выходные параметры модернизируемого процесса.
Для получения необходимой информации осуществляется не просто решение уравнений, а прогон моделей. В результате образуется такой же набор сведений, который можно было бы получить при проведении опытов на реальном оборудовании или физической модели. Однако имитационное моделирование на компьютере осуществляется гораздо быстрее и обходится значительно дешевле, чем натуральные эксперименты.
К основным функциям компьютера при моделировании систем можно отнести:
— исполнение роли вспомогательного средства для решения задач, доступных и для обычных вычислительных средств, алгоритмов, технологий;
— исполнение роли Средства постановки и решения новых задач, не решаемых традиционными средствами, алгоритмами, технологиями;
— исполнение роли средства моделирования для получения новых знаний;
— исполнение роли «обучения» новых моделей (самообучение модели).
Имитационное моделирование применяют в тех случаях, когда нужно учесть большее разнообразие исходных данных, изучить протекание процессов в различных условиях.
Таким образом, имитационные модели не просто отражают реальность с той или иной степенью точности, а имитируют её.
99
В данном случае эксперимент либо многократно повторяется, чтобы изучить и оценить последствия каких-либо действий на реальную обстановку, либо проводится одновременно со многими другими похожими объектами, но поставленными в разные условия.
Подобный метод выбора правильного решения называется методом проб и ошибок.
Построение имитационной модели «График квадратичной функции»
Функция — одно из важнейших математических понятий. Использование компьютерной модели графика функции может оказать существенную помощь при изучении свойств функции.
Содержательная постановка задачиПостроить график функции у = ах1 + с — частный слу
чай квадратичной функции (при Ь=0).Цели моделирования. Необходимо создать компью
терную модель графика функции для его дальнейшего аналитического исследования.
Формализация задачи и построение компьютерной модели средствами Visual Basic
При создании математической модели чаще всего ставится цель дальнейшего аналитического исследования модели, поэтому используются аналитические решения, представленные формулами, выражающими результаты исследования через исходные данные (аргументы).
Модель предстает перед нами в виде уравнения у = ах2 + с , где х — независимая переменная, а, с — некоторые числа, причем а * 0. Построение графика любой функции начинается с табличного задания данной функции.
100
Для табличного задания функции необходимо выбрать диапазон и шаг изменения аргумента. Пусть аргумент х изменяется в диапазоне от xj до х? с шагом Һ.
Этапы построения компьютерной модели:
1. Спроектируем интерфейс приложения. Для этого на форме установим:
- текстовые поля для ввода значений коэффициентов уравнения а и с, диапазона изменения аргумента хi и Х'2 , значения шага Л;
- таблицу для вывода значений переменных х и у на заданном диапазоне;
- таблицу для вывода результатов эксперимента: значений коэффициентов уравнения а и с, цвета графика функции при заданных значениях коэффициентов а и с;
- графическое поле для построения графиков функции;- четыре кнопки Заполнение таблицы, Построение
графика, Продолжим, Выход.
101
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
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
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
3. Проведем эксперимент, проверим зависимость изменения графика функции при изменении исходных данных. При сравнении полученных результатов можно сформулировать основные свойства квадратичной функции.
4. В результате получилась динамичная модель, отображающая варианты степени влияния величины х на результирующую величину у.
аг +£*вИ І І Й В #
Укажите интарввл «. «шиз.
105
Пример 5. Построить график функции, заданной системой уравнений:
При этом выполняются условия: оси координат пересекаются в точке (0,0); на осях X и Y должны отображаться значения, по которым строится график.
Цели моделирования. Необходимо создать компьютерную модель графика функции для его дальнейшего аналитического исследования.
Формализация задачи и построение компьютерной модели средствами электронных таблиц Excel
При создании математической модели чаще всего ставится цель дальнейшего аналитического исследования модели, поэтому используются аналитические решения, представленные формулами, выражающими результаты исследования через исходные данные (аргументы).
Модель предстает перед нами в виде «системы уравнений». Построение графика любой функции в Excel начинается с табличного задания данной функции. К созданию таблицы данных следует отнестись внимательно, так как этот момент является ключевым.
1. Для табличного задания функции необходимо выбрать диапазон и шаг изменения аргумента. Пусть аргумент х изменяется в диапазоне от -10 до 10 с шагом 1.
2. Заполним диапазон А2:А22 значениями аргумента с помощью маркера заполнения.
3. Выполнение задания предполагает табулирование функции, заданной условно. Воспользуемся функциями Excel и введем в ячейку В2 формулу:
106
=ECJIH(A2>=0;3*SIN(A2)- CTEITEHb(COS(A2);2);3 *КОРЕНЬ (1 +СТЕПЕНЬ(А2;2»)
4. Для построения модели воспользуемся Мастером диаграмм (Вставка—> Диаграмма), а тип диаграммы выберем-— Точечная диаграмма.
5. Затем следует собственно численный эксперимент, проверяется изменение графика функции при изменении исходных данных, например, как изменится поведение графика функции, если значение аргумента х<0 (А2<0) в обоих случаях.
В результате получится динамичная модель, отображающая варианты степени влияния величины х на результирующую величину у.
1аВВ
Для решения задач моделирования и последующего анализа построенных поверхностей в курсе стереометрии также можно воспользоваться средствами Excel.
Пример б. Создайте компьютерную модель объемной поверхности (полусферы).
107
Содержательная постановка задачиВыполнить построение полусферы в изометрической
проекции по формуле х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
ffll8. Полученная диаграмма будет выглядеть следующим
образом.
Можно исследовать и анализировать поведение построенной поверхности, задавая различные коэффициенты дифференциального уравнения, описывающего данную модель и начальные условия, непосредственно изменяя их на координатной плоскости или в таблице на листе Excel.
109
7.2. Построение имитационной модели «Схема логических элементов»
Средствами Visual Basic можно создать имитационную интерактивную компьютерную модель логической схемы, работа которой основана на законах алгебры логики.
Алгеброй Буля называется аппарат, который позволяет выполнять действия над логическими высказываниями. Каждое простое или составное высказывание можно выразить в виде формулы (логического выражения), в которую войдут логические переменные, обозначающие высказывания, и знаки логических операций, обозначающие логические функции. Для записи логических высказываний в виде логических выражений на формальном языке (языке алгебры логики) в составном высказывании нужно выделить простые высказывания и логические связи между ними. Истинность или ложность составных высказываний можно определять чисто формально, руководствуясь законами алгебры высказываний, не обращаясь к смысловому содержанию высказываний. Для реализации любых составных логических операций достаточно трех типов элементов, реализующих три основные логические операции:
1. Логическое отрицание (инверсия) — истинно, когда исходное утверждение ложно, и наоборот. Базовый логический элемент обозначается «НЕ».
2. Логическое умножение (конъюнкция) — это соединение двух простых высказываний в одно с помощью союза «И». Результат операции — логическое произведение, истинно только тогда, когда истинно А и В одновременно.
3. Логическое сложение (дизъюнкция) — это соединение двух простых высказываний в одном с помощью союза «ИЛИ». Полученное высказывание истинно, когда или А или В — истинны, либо истинно и А и В одновременно, и ложно только тогда, когда предпосылки А и В — ложны.
110
Логические элементы — это электронные схемы с одним или несколькими входами и с одним выходом, через которые проходят электрические сигналы, представляющие цифры 0 и 1. Все логические элементы рассматриваются по следующим параметрам:
- схема;- описание логического элемента;- логическая функция, реализующая данный элемент;- таблица истинности.Логический элемент «НЕ»Схема, отражающая работу логического элемента
«НЕ», представлена на рисунке 7.
А А
Рис. 7. Схема логического элемента «НЕ»
Логика этого элемента заключается в том, что на выходе будет 1 тогда и только тогда, когда на входе будет 0. F(A) = А — логическая функция, соответствующая элементу НЕ. Таблица истинности, отражающая работу логического элемента «НЕ»:
А А0 11 0
Логический элемент «И»Схема, отражающая работу логического элемента «И»,
представлена на рисунке 8.
111
Рис. 8. Схема логического элемента «И»
Логика этого элемента заключается в том, что на выходе будет 1 тогда и только тогда, когда на оба входа подаются сигналы, равные 1. Логическая функция, соответствующая данному элементу, имеет вид F(A, В)— А&В. Таблица истинности, отражающая работу логического элемента «И»:
А В А&В0 0 01 1 11 0 00 1 0
Логический элемент «ИЛИ»Схема, отражающая работу логического элемента
«ИЛИ», представлена на рисунке 9.
Рис. 9. Схема логического элемента «ИЛИ»
112
Логика этого элемента заключается в том, что на выходе будет 0 тогда и только тогда, когда на оба входа будут поданы сигналы 0. Логическая функция элемента ИЛИ — F(A,B)~ A v В . Таблица истинности, отражающая работу логического элемента «ИЛИ»:
А В AVB0 0 00 1 11 0 11 1 1
Из логических элементов путем их комбинации строятся основные схемы компьютера:
— триггер — электронный прибор, имеющий два устойчивых состояния, является типичным запоминающим элементом, способным хранить 1 бит информации;
— регистр — совокупность триггеров, предназначенных для хранения .числа в двоичном коде;
— сумматор — устройство, обеспечивающее суммирование двоичных чисел с учетом переноса из предыдущего разряда.
Приведем пример создания модели, имитирующей работу логической схемы, состоящей из базовых логических элементов.
Содержательная постановка задачиДана логическая схема, состоящая из базовых логиче
ских элементов (рис. 10). Определить результат работы логической схемы при всех возможных комбинациях исходных значений.
113
А 1
Рис. 10. Схема логических элементов
Цели моделирования. Создание интерактивной компьютерной модели логической схемы, состоящей из базовых логических элементов.
Формализация задачи и построение компьютерной модели средствами Visual Basic
Для создания интерактивной модели логической схемы средствами Visual Basic:
1. Спроектировать интерфейс программы.2. Определить, какую элементарную логическую функ
цию выполняет каждый логический элемент.3. На основе таблиц истинности, соответствующих ка
ждому логическому элементу, входящему в схему, определить истинность или ложность высказывания при всех возможных комбинациях исходных значений.
4. Проверить работу логических элементов, путем ввода «1» или «0» на их входы.
114
Этапы построения компьютерной модели: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
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
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
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
Ф орм ализация задачи и построение компьютерной модели средствами M icrosoft Excel
Для создания интерактивной модели логической схемы средствами Excel:
1. На листе Excel с помощью инструментов панели Рисования строится схема, состоящая из базовых логических элементов.
Г ~А~В С D Ё F rG' Н Г J К j L М N О Р ; Q R~1 1 Ги
3 | А 1
[ щ
2. Определяется, какую элементарную логическую функцию выполняет каждый логический элемент.
3. На основе таблицы истинности, соответствующей каждому логическому элементу, определяется истинность или ложность высказываний при всех возможных комбинациях исходных значений.
В данной схеме присутствуют три базовых логических элемента И, ИЛИ, НЕ. Для конструирования работы базовых логических элементов воспользуемся таблицами истинности, соответствующими каждому базовому логическому элементу, и функциями Excel.
119
В обыденной и научной речи, кроме базовых логических связок «и», «или», «не», используются и некоторые другие: «если... то...», «тогда... и только тогда, когда...» и др. Соединение двух высказываний в одно с помощью оборота речи «если... то...» называется логическим следованием (импликацией). Логическая операция импликации «если ... то ....» в 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
-ЕСПИ1ЕЗ» Т;ЕСПИ(Е5-1;1 .01:01• и и
или -—► -ЕСТ1 И(14=0:Е СЛИ(Кн1:1 Я}: 1)1
НЕ-ҒГЛИвЧМ>.1Л)
5. Проверяется работа логических элементов, путем ввода "1" или-"О" на их входы.
Таким образом, используя правила алгебры логики и возможности Excel, можно создать интерактивную модель работы логической схемы, состоящей из базовых логических элементов.
7.3. Вероятностные математические модели (метод Монте-Карло)
Методы Монте-Карло — общее название группы численных методов, основанных на получении большого числа реализаций случайного (стохастического) процесса, который формируется таким образом, чтобы его вероятностные характеристики совпадали с аналогичными величинами решаемой задачи.
Случайные величины использовались для решения различных прикладных задач достаточно давно. Например, в XVIII веке граф Жорж Луи Леклерк де Бюффон сформулировал задачу о нахождении вероятности того, что брошенная на разграфленный лист бумаги игла пересечет одну из линий. Оказалось, что, подсчитав долю отрезков пересекающих прямые, можно приближенно определить число л, а при увеличении количества попыток точность получаемого результата будет увеличиваться.
Идея была развита сначала Э. Ферми в 1930-х годах, а затем Джоном фон Нейманом и Станиславом Уламом. Улам задался вопросом, какова вероятность того, что пасьянс
121
«сложится». Ему в голову пришла идея, что вместо того, чтобы использовать обычные для подобных задач соображения комбинаторики, можно просто поставить «эксперимент» большое число раз и, таким образом подсчитав число удачных исходов, оценить их вероятность. Он же предложил использовать компьютеры для расчетов методом Монте-Карло.
Теоретическая основа метода была известна давно. Однако до появления ЭВМ этот метод не мог найти сколько- нибудь широкого применения, ибо моделировать случайные величины вручную — очень трудоемкая работа. Появление первых электронных компьютеров, которые могли с большой скоростью генерировать псевдослучайные числа, резко расширило круг задач, для решения которых стохастический подход оказался более эффективным, чем другие математические методы. После этого произошел большой прорыв, и метод Монте-Карло применялся во многих задачах, однако его использование не всегда было оправдано из- за большого количества вычислений, необходимых для получения ответа с заданной точностью.
Годом рождения метода Монте-Карло считается 1949 год, когда в свет выходит статья Метрополиса и У лама «Метод Монте-Карло». Название метода происходит от названия города в княжестве Монако, широко известного своими многочисленными казино, поскольку именно рулетка является одним из самых широко известных генераторов случайных чисел.
Метод Монте-Карло является вероятностным методом. С помощью этого метода можно вычислять площади фигур, объёмы, решать системы уравнений, приближённо вычислять значение числа п .
Метод Монте-Карло чаще всего применяют при приближённом вычислении площадей геометрических фигур с точностью, достаточной для практики. Хотя ответ при таких
122
вычислениях получается каждый раз разный, но округлённый результат всегда примерно одинаков.
Сущность этого метода в следующем. Предположим, у нас есть геометрическая фигура сложной формы, площадь которой необходимо вычислить. Пусть площадь нашей фигуры S1. Впишем эту фигуру в простую геометрическую фигуру, площадь которой вычисляется легко, например, в прямоугольник, круг или квадрат. В нашем случае прямоугольник, площадь которого S2.
Представим, что площадь прямоугольника и площадь нашей фигуры покрываются слоем снега, как во время снегопада. В этом случае число снежинок которые упали в контур фигуры N, и число снежинок М, которые упали в контур прямоугольника, пропорциональны, так как толщина снежного покрова примерно одинакова.
SI N „Тогда можно записать пропорцию: — = — . Из этойS 2 М
Nформулы найдём: S\ = S2---- . Теперь, если количествоМ
«снежинок» N и М заменить точками, которые получены с помощью генератора случайных чисел (функция RND), можно решить любую задачу с использованием метода Монте-Карло.
123
Построение вероятностной модели вычисления числа я = 3,141592653...
Содержательная постановка задачи
Пусть дан квадрат и вписанный в него круг единичного радиуса. Для вычисления площади круга проводят эксперимент — случайным образом бросают точки в квадрат. Естественно предполагать, что чем больше площадь фигуры, тем чаще в нее будут попадать точки. Таким образом, можно сделать допущение: при большом числе точек, наугад выбранных внутри квадрата, доля точек, содержащихся в данной фигуре, приближенно равна отношению площади этой фигуры и площади квадрата.
Цель моделирования: создать имитационную модель определения числа я методом Монте-Карло.
Построение математической модели и ее исследование
Для вычисления числа я с помощью метода Монте- Карло рассмотрим квадрат, вершины которого имеют координаты (0,0), (0,2), (2,2), (2,0) и круг радиуса 1 с центром в точке (1,1) (рис. 11).
Рис. 11. Единичная окружность, вписанная в квадрат
124
Площадь круга вычисляется по формуле 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
Построение алгоритма и компьютерной модели определения числа я с использованием языка Visual Basic
Алгоритм нахождения числа я представлен на рисунке 12.
Рис. 12. Алгоритм нахождения числа л методом Монте- Карло
126
Этапы построения компьютерной модели:1. Спроектируем интерфейс приложения. Для этого на
форме установим:— таблицу для вывода результатов: количество точек N,
координат х и у, попадания точки в круг, количество попавших в круг точек N1, числа Pi;
— таблицу для вывода результатов эксперимента: количество точек N, количество попавших в круг точек N1, число Pi;
— три кнопки Расчет, Эксперимент, Выход.
Результаты экспериментов
Для ввода исходных данных — количества точек N используйте диалоговую функцию InputBox. Для продолжения эксперимента — диалоговую функцию MsgBox.
2. Примерный программный код:
Dim i, N, N 1 As Integer Dim x, у, Pi As Double
127
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
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
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
Построение компьютерной имитационной модели определения числа п методом Монте-Карло средствами языка программирования 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
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
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
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
Администрация может задаться целью наладить производство таким образом, чтобы максимизировать общий выпуск продукции за месяц, и время использования оборудования за неделю или минимизировать еженедельные затраты труда. Переменные решения — это количество продукции каждого вида, которое необходимо произвести за данный период времени.
Аналогично, если компания обладает определенным капиталом для инвестирования ряда проектов, распределение денежных сумм по каждому проекту будет подчинено некоторой цели. Она может заключаться в минимизации риска или максимизации темпов роста капитала. Переменные решения в данном случае Щ, это денежные суммы, помещаемые в каждый проект.
В общем случае цель состоит в определении наиболее эффективного метода такого распределения ресурсов по соответствующим переменным, которое оптимизирует некоторый результат функционирования системы. Очень часто полезным инструментом в процессе распределения ресурсов являются методы моделирования. Существует ряд различных методов, основанных на идеях математического программирования. Рассмотрим только один из них, который нашел наиболее широкое применение, — линейное программирование.
Линейное программирование является подходящим методом для моделирования распределения ресурсов, если цель и ограничения на ресурсы можно выразить количественно в форме линейных взаимосвязей между переменными.
Этот метод включает в себя ряд шагов:1. Необходимо осуществить математическую формали
зацию задачи линейного программирования. Это означает, что нужно идентифицировать управляемые переменные и цель задачи. Затем с помощью этих переменных цель и ог-
135
раничения на ресурсы описываются в форме линейных соотношений.
2. После завершения формулировки задачи линейного программирования рассматриваются все допустимые сочетания переменных. Из них выбирается то, которое оптимизирует целевую функцию задачи. Если исследуемая задача содержит только две переменные, ее можно решить графически. Однако в случае исследования задачи со многими переменными необходимо прибегнуть к одному из алгебраических методов решения задач линейного программирования, для использования которых существуют пакеты прикладных программ.
3. Когда оптимальное решение получено, производится его оценка.
Решение задачи линейного программирования, как и любой иной математический инструмент, применяемый в теории принятия решений, является лишь одним из факторов, влияющих на конечное решение, принимаемое администрацией. Рассмотрение линейного программирования мы начнем с проблемы постановки задачи.
Основная процедура постановки задачи оптимизации является общей для формулирования всех задач линейного программирования и включает следующие этапы:
- выбор критериев оптимальности;- формирование целевой функции;- выбор управляемых параметров;- назначение ограничений;- нормирование управляемых и выходных параметров.В качестве критериев оптимальности принимаются
выходные параметры, которые оказывают наибольшее влияние на достижение конечной цели функционирования системы. Остальные выходные параметры используются при формировании функции ограничений. Выбор критериев оптимальности требует глубокого понимания сущности ре
136
шаемой задачи. Всесторонняя оценка эффективности и качества объекта возможна при использовании множества критериев, что приводит к многокритериальное™.
8.1. Решение задач на оптимизацию средствами Visual Basic
Рассмотрим задачи, для которых применимы методы линейного программирования.
Пример 7. Завод выпускает обычные станки и станки с программным управлением, затрачивая на один обычный станок 200 кг стали и 200 кг цветного металла, а на один станок с программным управлением 700 кг стали и 100 кг цветного металла. Завод может израсходовать в месяц до 46 тонн стали и до 22 тонн цветного металла. Сколько станков каждого типа должен выпустить за месяц завод, чтобы объём реализации был максимальным, если один обычный станок стоит 2000 д.е., а станок с программным управлением 5000 д.е.
Математическое описание оптимизируемой модели
В задаче необходимо определить оптимальную (максимальную) прибыль предприятия от реализации обычных станков и станков с программным управлением. Она складывается из суммы произведений стоимости одного станка на количество станков каждой категории.
Таким образом, целевая функция, суммарную стоимость которой следует максимизировать, запишется так: f(x,y)=2000x+5000y, где X — количество обычных станков; Y — количество станков с программным управлением, 2000 д.е. — стоимость обычного станка; 5000 д. е. — стоимость станка с программным управлением.
137
Ограничения:- положительность количества обычных станков:
Х>=0;- положительность количества станков с программным
управлением: Y>=0;- расходование стали в месяц — 46 тонн;- расходование цветного металла в месяц — 22 тонны.
Ғ(х, у) = 2000.x + 5000_у;200х + 700у< 46000;
« 200* + 100^ < 22000;
' Щ 0;х > 0.
Построение компьютерной модели
1. Спроектируем интерфейс приложения. Для этого на форме установим:
- таблицу для отображения исходных данных: количество стали в месяц на один обычный станок и станок с программным управлением, количество цветных металлов в месяц на один обычный станок и станок с программным управлением, количество тонн стали и цветного металла, которое завод может израсходовать в месяц, стоимость одного обычного станка и станка с программным управлением в д.е.;
- таблицу для вывода результатов эксперимента: количество обычных станков и станков с программным управлением, количество стали и цветных металлов в месяц, необходимых для производства указанного количества станков, прибыль предприятия;
- для ввода ограничений установите текстовые поля Textl-Text8;
138
— для вывода результатов оптимизации — текстовые поля 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
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
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
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
Анализ полученных результатов
Максимальная прибыль достигается при следующих значениях плановых показателей:
' - количество обычных станков — 90;- количество станков с программным управлением —
40;— максимальная прибыль — 380000.Примечание. Для решения данной задачи можно ис
пользовать Симплекс-метод.
Пример 8. Для изготовления трех видов изделий А, В и С используется токарное, фрезерное, сварочное и шлифовальное оборудование. Затраты времени на обработку одного изделия для каждого из типов оборудования указаны в таблице. В ней же указан общий фонд рабочего времени
143
каждого из типов используемого оборудования, а также прибыль от реализации одного изделия каждого вида.
Типоборудования
Затраты времени (стан ко- часы) на обработку одного изделия каждго вида
Общий фонд рабочего времени оборудования (часы)А В С
Фрезерное 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
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
г
имеется соответственно 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
Стоимость перевозок равна: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
Функциональные возможности Microsoft Excel позволяют решать задачи оптимизации и составлять прогнозы с помощью анализа «что-если», т.е. в табличном процессоре можно пересмотреть различные варианты данных для достижения оптимального результата. Метод прогнозирования «что-если» позволяет получить несколько возможных способов решения и прогнозирования той или иной задачи. Каждое из них имеет определённое назначение, а их использование зависит от желаемого результата.
К средствам анализа «что-если» относят: Диспетчер сценариев, Поиск решения, Подбор параметра, Таблицы данных. Все эти средства позволяют легко и быстро анализировать зависимость и влияние одних данных на другие.
Использование надстроек Excel для анализа данных. Надстройка Поиск решения
Инструменты, предназначенные для глубокого анализа данных, эффективного сбора данных и отображения проанализированных результатов реализованы в надстройках Excel. Надстройки Excel — это дополнительные программы, расширяющие возможности Excel путем добавления специальных команд и новых функций.
Для проведения анализа «что-если» и решения задач оптимизации в надстройки Excel включен инструмент Поиск решения. Инструмент Поиск решения может применяться для решения задач, которые включают много изменяемых ячеек, и помогает найти комбинации переменных. Он также позволяет задать одно или несколько ограничений — условий, которые должны выполняться при поиске решений.
Для открытия диалогового окна Поиск решения необходимо в меню Сервис выбрать пункт Поиск решения.
148
Если надстройка Поиск решения отсутствует в меню Сервис, установите её, используя пункт Надстройки. Для этого:
1. Откройте меню Сервис.2. Выберите пункт Надстройки.3. Установите в окне Список надстроек флажок напро
тив Поиск решения.4. Нажмите ОК — команда Поиск решения появится в
меню Сервис.Если надстройка Поиск решения отсутствует в диалого
вом окне Надстройки, то необходимо установить надстройки Excel с диска «Microsoft Office, профессиональный выпуск».
Какую бы задачу ни решал пользователь, он всегда пытается получить наилучшее (или, как принято называть, оптимальное) решение. При серьезном подходе к решению любой задачи (инженерной, экономической, социальной) встают три проблемы. Первая — формулирование критерия оптимальности. Вторая — формальное описание объекта оптимизации. Третья — выбор метода (алгоритма) нахождения оптимального решения.
Выделим этапы решения задач оптимизации со многими неизвестными С помощью инструмента Поиск решения :
1. Анализ задачи, выделение параметров и ограничений.
2. Математическое описание оптимизируемой модели — введение обозначений, ограничений, определение целевой функции (необходимой для нахождения требуемого в задаче оптимального значения), вспомогательных формул.
3. Поиск решения в Excel.Приведем пример решения задачи оптимизации дан
ных, воспользовавшись надстройкой Excel Поиск решения.Пример 10. Ученики хотят купить в столовой: булочки
по 15 тенге, чай по 10 тенге, пиццу по 35 тенге. Какой оп-
149
тимальный набор продуктов необходимо купить, чтобы уложиться в сумму 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
6. Добавьте ограничения для ячеек в поле Ограничения, для этого:
— щелкните по кнопке Добавишь;— в появившемся диалоговом окне в первом поле Ссыл
ка на ячейку введите диапазон ячеек, на которые делается ограничение — $С$2:$С$4;
— во втором поле выберите тип ограничения из списка — цел',
(Д о б а в л е н и е о г р а н и ч е н и я НИ!Ссылка на ячейку: Ограничвһие:
|$С $2:$С $4 ^ f y f u e r [целое■ ■
ОК | Отмена j Добавить I Справка J— ажа____ ■.... .........«......................... .............
- нажмите Добавить, чтобы задать другое ограничение;
- в первом поле Ссылка введите диапазон ячеек, на которые ставится ограничение — $С$2:$С$4;
- во втором поле выберите тип ограничения из списка— >=;
- в третьем поле установите ограничение — 1;- нажмите ОК, когда все ограничения установлены.Диалоговое окно Поиск решения примет вид:
Поиск решения
Установить целевую ячейку:
151
7. Нажмите кнопку Выполнить. Когда решение найдено, появится окно Результаты поиска решения.
щРешение найдено. Все ограничения и условияолтталъности выполнены. ]}in отчёта
Результаты Я Ш <♦ {Сохранить найденное решение1 • Устойчивость
“ ... ~ Т -------------------- ' ■ J ' - Пределы< Восстановить исходные значения
| ок — 1 Отмена | Сохражть сценарий... | Ораека I
8. Отметьте Сохранить найденное решение, чтобы заменить существующие значения найденным, или Восстановить исходные значения, чтобы оставить прежние значения.
9. Результаты решения задачи можно сохранить в виде именованного сценария, щелкнув по кнопке Сохранить сценарий. .. диалогового окна Результаты поиска решения.
Результатом решения задачи являются следующие оптимизированные значения количества продуктов:
> Ф С D Е |1{Наименование Цена Кол-во Суммаш[будочка 15] _2] 30ш[чай 10 _2| 20ш[пицца 35; 3 Щшш 85
С помощью рассмотренного выше метода можно решать другие типовые задачи оптимизации, которые имеют широкое практическое применение.
Пример 11. Учебно-производственный комбинат ежемесячно принимает на курсы операторов ЭВМ, водителей, программистов — 15 студентов, 17 учащихся школ и других категорий 22 человека. Стоимость курсов для разных категорий слушателей следующая:
Р езультаты поиска решения
152
Категориислушателей
Группаоператоров ЭВМ водителей программистов
Студенты 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
Ограничения:— на количество человек в группе операторов ЭВМ
можно определить следующим образом 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
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
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
6. Щелкните по кнопке Параметры и в окне Параметры поиска решения, установите Линейную модель, т.к. в нашей задаче значение целевой ячейки является линейной функцией от каждой переменной.
7. Нажмите кнопку Выполнить.8. Сохраните результаты решения задачи в виде имено
ванного сценария.
Значение целевой ячейки 17 максимально. В изменяемых ячейках, где первоначально были размещены нулевые значения, Excel подобрал оптимальное количество слушателей, дающее максимальную прибыль.
8.3. Анализ данных «что-если» с помощью сценарияДополнительные возможности Microsoft Excel позво
ляют организовать анализ «что-если» с помощью составления сценариев. Сценариями в Excel называется набор значений подстановки, используемый для прогнозирования поведения модели. Сценарии используются для поиска оптимального подбора данных. Любое решение, основанное на выборе из нескольких возможных, является в этом смысле «оптимальным», поскольку ему отдано предпочтение перед другими.
С помощью инструмента Сценарии Excel выбирает наилучший способ решения задачи из нескольких вариан
157
тов. При этом для параметров задачи определяются различные значения, организуются сценарии, а затем для каждого сценария Excel выполняет анализ «что-если». В Excel существует возможность создания, сохранения на листе различных сценариев и переключения на любой из этих сценариев для просмотра результатов. При необходимости сценарии формируются в структуру или выводятся в виде сводной таблицы.
Приведем пример решения задачи поиска оптимального подбора данных с использованием сценариев.
Пример 12. Трем ученикам необходимо решить проблему: какой набор продуктов купить в столовой, так чтобы уложиться в 100 тенге и потратить как можно меньше денег. Каким образом можно это сделать, если стоимость продуктов: чай — 10 тенге, булочки -— 15 тенге, пирожки — 25 тенге?
Можно предложить различные сценарии приобретения продуктов:
Продукты Текущиезначения Сценарий 1 Сценарий2 СценарийЗ
Чай 3 2 3 3Булочки 3 1 1 2пирожки 3 3 2 1
В структуре сценария должно быть отображено не менее 3-х сценариев при нахождении заданных требований.
Определим, какой из сценариев наилучший? Воспользуемся Диспетчером сценариев. Роль пользователя будет заключаться в выборе значений подстановок данных из имеющегося набора изменяемых данных модели. Этот выбор зависит от того, какой конечный результат предполагается получить. Предлагаем алгоритм определения наилучшего сценария:
158
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 а- $ач Гз
Добавить |
■ И Н Н
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
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
используется в течение 5 часов, второго — в течение 3 часов и третьего — 2 часа. На производство одного изделия В, соответственно, — 2 часа, 3 часа и 3 часа. В плановом периоде оборудование первого типа может быть использовано в течение 505 часов, второго — 394 часа и третьего — 348 часов. Прибыль от реализации одного изделия А равна 2 д.е., изделия В — 4 д.е. Составить план производства, максимизирующий прибыль предприятия.
162
Указания к заданиям для самостоятельной работы
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
ри жидкости или газа, то вся его поверхность соприкасается с частицами жидкости или газа.
На тело действуют три силы:- сила тяжести:- сила Архимеда:- сила сопротивления.Скорость падения будет иметь обратную зависимость
от вязкости жидкости, так как при взаимодействии тела с жидкостью частицы жидкости будут мешать движению тела.
Для формализации модели используем известные из курса физики формулы и модели: 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
Пусть 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 движения каждого тела до момента встречи.
Уравнение перемещения тела, брошенного вверх, позволяет найти ко- ш ш ш т г т
ординату движущегося тела для любого момента времени независимо от того, поднимается ли тело вверх или падает
at2после подъема вниз, поэтому для первого тела h = v0ti
Ktlа для второго h = v0/2
Третье уравнение составляем, исходя из условия, что второе тело бросили позднее первого на время максималь-
voного подъема: /, - t 2 = — .g
Решая систему трех уравнений относительно Һ, получа-
2.7. Решение.у
Прямоугольную систему координат выбираем так, чтобы ее начало совпало с точкой бросания, а оси были на-
166
правлены вдоль поверхности Земли и по нормали к ней в сторону начального смещения снаряда. Изображаем траекторию снаряда, его начальную скорость 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
В последнем уравнении перемещение Һ взято со знаком «минус», так как за время движения снаряд сместится относительно уровня отсчета 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
роғо был произведен выстрел, равна его начальной скорости: 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
ни (т.е. спустя следующие 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
Стоимость от реализации выведенных животных: кролик — 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
Содержание
Введение..... .................................................................... 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
Н аучное издание
Егоров Виктор Владимирович, Криворучко Василий Андреевич, Шпигарь Наталья Николаевна,
Заречная Ольга Петровна
КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ И ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ
Технический редактор В.В.Бутяйкин Обложка Л.Н.Солодовиченко
Подписано в печать 2S.05.2009 г. Формат 60x84 1/16. Бумага офсетная. O&be^OjSnjji^ipaatSOOiioJUcHajjoroeog^aK^^J^Oe^^^^
Отпечатано в типографии Издательства КарГУ им. ЕА.Букетова 100012, г. Караганда, ул. Гоголя, 38
В.В. ЕГОРОВ . В.А. КРИВОРУЧКО
„JP Н.Н. ШПИГАРЬ О.П. ЗАРЕЧНАЯ
КОМПЬЮТЕРНОЕ Г ^ 1 МОДЕЛИРОВАНИЕ И
В Ц ! ВЫЧИСЛИТЕЛЬНЫЙ Г ~ 1 ЭКСПЕРИМЕНТ