Моделирование процесса изменения рыночных цен по критерию уровня активов
В нашем мире полно сложных систем, с которыми мы сталкиваемся ежедневно. Нередко и нам самим необходимо создавать такие системы. И важным фактором является то, какие мы принимаем решения и как именно строим эти системы. Центральным элементом деятельности, ведущей к принятию первоклассного решения, является моделирование. Модели позволяют нам наглядно продемонстрировать желаемую структуру… Читать ещё >
Моделирование процесса изменения рыночных цен по критерию уровня активов (реферат, курсовая, диплом, контрольная)
Курсовая работа по дисциплине «Имитационное моделирование сложных систем»
на тему: «Моделирование процесса изменения рыночных цен по критерию уровня активов»
Содержание Введение Имитационное моделирование Постановка задачи. Математическая модель.
Выбранная исполняемая среда — Model Vision Studium
Исследования способностей практического применения программы Вывод Список использованной литературы
Введение
В нашем мире полно сложных систем, с которыми мы сталкиваемся ежедневно. Нередко и нам самим необходимо создавать такие системы. И важным фактором является то, какие мы принимаем решения и как именно строим эти системы. Центральным элементом деятельности, ведущей к принятию первоклассного решения, является моделирование. Модели позволяют нам наглядно продемонстрировать желаемую структуру и поведение системы. Они также необходимы для визуализации и управления ее архитектурой. Модели помогают добиться лучшего понимания создаваемой нами системы, что зачастую приводит к ее упрощению и возможности повторного использования. Наконец, модели нужны для минимизации риска. Моделирование — это устоявшаяся и повсеместно принятая инженерная методика.
Итак, что же такое модель? Попросту говоря, она является упрощенным представлением реальности. Модель — это чертеж системы: в нее может входить как детальный план, так и более абстрактное представление системы «с высоты птичьего полета». Хорошая модель всегда включает элементы, существенно влияющие на результат, и не включает те, которые малозначимы на данном уровне абстракции. Каждая система может быть описана с разных точек зрения, для чего используются различные модели, каждая из которых, следовательно, является семантически замкнутой абстракцией системы. Модель может быть структурной, подчеркивающей организацию системы, или поведенческой, то есть отражающей ее динамику.
Зачем мы моделируем? На это есть одна фундаментальная причина. Мы строим модели для того, чтобы лучше понимать разрабатываемую систему. Моделирование позволяет решить четыре различных задачи:
визуализировать систему в ее текущем или желательном для нас состоянии;
определить структуру или поведение системы;
получить шаблон, позволяющий затем сконструировать систему;
документировать принимаемые решения, используя полученные модели.
Имитационное моделирование И первое, что оказывается необходимым для работы со сложными динамическими системами, — это умение организовать серию вариантных расчетов: эксперту важно представить себе характер изучаемого процесса, степень его «управляемости», характер предельных возможностей (множеств достижимости), т. е. организовать многократно повторенный машинный эксперимент с моделью.
Для этой цели и должны быть созданы модели, имитирующие реальность, имитирующие изучаемый процесс. Эксперт с помощью этих моделей, с помощью серии специально организованных вариантных расчетов получает те знания, без которых выбрать альтернативный вариант своей стратегии он не может. Эти возможности ЭВМ были быстро поняты специалистами, и в русском языке появились даже термины «имитационная модель» и «имитационная моделирование» .
Имитационная модель рассматривается нами специальная форма математической модели, в которой:
декомпозиция системы на компоненты производится с учетом структуры проектируемого или изучаемого объекта;
в качестве законов поведения, могут использоваться экспериментальные данные, полученные в результате натурных экспериментов;
а поведение системы во времени иллюстрируется заданными динамическими образами.
Имитационное моделирование на цифровых вычислительных машинах является одним из наиболее мощных средств исследования, в частности, сложных динамических систем. Как и любое компьютерное моделирование, оно дает возможность проводить вычислительные эксперименты с еще только проектируемыми системами и изучать системы, натурные эксперименты с которыми, из-за соображений безопасности или дороговизны, не целесообразны. В тоже время, благодаря своей близости по форме к физическому моделированию, это метод исследования доступен более широкому кругу пользователей.
В настоящее время, когда компьютерная промышленность, предлагает разнообразнейшие средства моделирования, любой квалифицированный инженер, технолог или менеджер должен уметь уже не просто моделировать сложные объекты, а моделировать их с помощью современных технологий, реализованных в форме графических сред или пакетов визуального моделирования.
Постановка задачи Целью моей работы является разработать модель процесса инвестирования по заданному его математическому описанию и заданной структуре гибридного автомата, реализующего данную модель. В своей работе я изучу, влияния отклонения цены на товар от состояния рыночного равновесия с помощью моделирования процесса изменения цены во времени при ее скачкообразном изменении в начальный момент.
Так же мне необходимо по результатам моделирования определить:
— влияния на поведение рынка среднего уровня активов и скорости их изменения в зависимости от объемов предложения и спроса на товар;
— влияния связи между предложением и ценой;
— влияния связи между ценой и спросом.
Математическая постановка задачи Допустимо, что изменение уровня актива пропорционально разнице между предложением и спросом и выражается формулой (1)
(1)
где — уровень актива; - предложение; - спрос; - коэффициент чувствительности темпа изменения активов от разницы предложения и спроса.
Пусть скорость изменения цены пропорциональна отклонению актива от некоторого фиксированного уровня, и определяется формулой (2)
(2)
где — цена; - некоторый фиксирован уровень актива; - коэффициент чувствительности цены от разницы текущего и фиксированного уровней актива.
Предложение и спрос прямо пропорциональные цене и выражаются формулами (3) и (4) соответственно:
(3)
где — коэффициент линейной зависимости предложения от цены; - начальный уровень предложения.
(4)
где — коэффициент линейной зависимости спроса от цены; D0 — начальный уровень спроса.
Приведенная математическая модель подходит для исследования влияния отклонения цены от состояния равновесия на поведение рынка лишь приближенно. Как показывают данные о рынке пищевой промышленности США, данная модель является неточной, и требует улучшения. Для построения уточненной модели введем новые предположения относительно системы дифференциальных уравнений, точнее соответствующие параметрам реально существующих рыночных систем. Положим, что
— изменение цены зависит не только от отклонения активов от некоторого фиксированного уровня, но и от скорости изменения уровня активов;
— зависимость спроса и предложения от цены нелинейная.
Первое предположение можно выразить математически введением в формулу (2) дополнительного слагаемого, а именно:
(5)
где — коэффициент чувствительности цены от скорости изменения активов;
— скорость изменения уровня активов, которая определяется соотношением (1).
Второе предположение математически выражается следующим зависимостями:
(6)
где — коэффициент чувствительности нелинейной составляющей предложения от цены.
(7)
где — коэффициент чувствительности нелинейной составляющей спроса от цены.
Все использованные величины измеряются в денежном эквиваленте.
Выбранная исполняемая среда — Model Vision Studium
Существую много средств моделирования. Я в своей работе выбрала Model Vision Studium. Программный комплекс Model Vision Studium (MVS) как и ближайшая к нему по функциональным возможностям подсистема Simulink пакета Matlab, предназначен для моделирования сложных динамических систем. Но, в отличие от Simulink, MVS является представителем ранее описанного второго подхода к проблеме моделирования сложных динамических систем, основанного на использовании схемы гибридного автомата. Этот подход основан на использовании нового типа объекта — активного динамического объекта и специальной формы наглядного представления гибридного поведения — карты поведения.
Использование карты поведения при описании переключений состояний, а также непосредственное описание непрерывных поведений системы системами алгебро-дифференциальных уравнений предоставляет большие возможности в описании гибридного поведения со сложной логикой переключений.
Устройство Основным «строительным» элементом в процессе построения модели в MVS является устройство (devicе). Устройство — это некоторый активный объект, функционирующий параллельно и независимо от других объектов в непрерывном времени. Устройство представляет собой систему типа «вход — выход — состояние» (или просто «вход — выход») и может быть как простым, так и составным. В общем случае в описании устройства содержатся следующие элементы: входы, выходы, переменные состояния, поведение, локальная структура, анимация.
По аналогии с классами, используемыми в объектно-ориентированных языках, в MVS введено новое понятие — класс устройств. Все устройства в MVS по умолчанию являются потомками предопределенного класса СDevice. Описание нового устройства всегда строится как описание класса устройств, а при компоновке модели используются его экземпляры. Новый класс устройств может наследовать свойства любого другого уже существующего класса. Класс-потомок наследует все элементы описания класса-предка, а также может содержать новые элементы и переопределять унаследованные элементы.
С помощью функциональных связей экземпляры устройства объединяются в единую схему, которая затем может быть помещена в специальное устройство — контейнер, расположенное в окне Управляющего Вычислительным Экспериментом — Test Bench, или собрана сразу в неком устройстве — контейнере, экземпляр которого затем помещается в Test Bench.
Карта поведения Карта поведения (behavior chart или B-chart) — это ориентированный граф, в котором узлам приписываются некоторые локальные поведения, а дуги интерпретируются как переходы от одного поведения к другому. В каждый момент времени один из узлов графа является текущим. Когда узел становится текущим, создается экземпляр приписанного ему локального поведения, который уничтожается, когда узел перестает быть текущим. Смена текущего узла происходит в результате срабатывания переходов. Один из узлов должен быть помечен как начальный, он становится текущим когда становиться активным экземпляр устройства, к которому принадлежит данная карта поведения.
Локальное поведение в узле может быть задано как непрерывное поведение, карта поведения (в этом случае узел называется гиперузлом) или пустое поведение NULL.
Непрерывное поведение в общем случае задается совокупностью обыкновенных дифференциальных уравнений вида, алгебраических уравнений вида и формул вида s = <�выражение, не зависящее от s>.
К проекту, созданному в MVS, могут быть присоединены любые ранее созданные библиотеки классов, таким образом при создании своей модели пользователь может использовать уже готовые классы устройств. Из любого разработанного проекта можно автоматически получить библиотеку классов, а любой класс из проекта может быть добавлен в существующую библиотеку. Пакет поставляется со стандартной библиотекой классов SysLib, содержащей набор наиболее типовых линейных блоков, нелинейных блоков, и источников сигналов.
Запуск пакета MVS и создание нового проекта Перед построением модели необходимо предварительно загрузить пакет MVS. Для запуска пакета MVS достаточно выбрать в Главном меню (если работа производиться в операционной системе Windows) пункта Programs/Model Vision Studium. В результате появиться основное окно пакета «Model Vision Studium 3.0». имитационный моделирование цена автомат Проектирование модели в MVS осуществляется в рамках конкретного проекта. С одной стороны, проект — это описание моделируемой системы в рамках данного пакета. С другой стороны, проект представляет собой совокупность постоянных и временных файлов, расположенных в определенной папке на диске. В этих файлах хранятся различные формы представления модели, модули на промежуточном языке программирования, сгенерированные для построения выполняемой модели, сами выполняемые модели, отчеты о проведенных экспериментах, входные наборы данных для эксперимента, внешние DLL пользователя и т. п.
Для создания нового проекта необходимо выбрать команду меню «Project/New…» или нажать левую кнопку на панели инструментов. В результате на экране появится диалоговое окно «New Project Workspace «(рис. 4.1), в котором необходимо указать имя нового проекта и путь до желаемого местоположения проекта. После нажатия кнопки «Create» в папке, указанной ранее при описании пути (если папки не существовало, то она будет создана) появится локальная папка с именем, аналогичным имени созданного проекта, которая и будет «рабочим пространством» проекта.
Рис. 4.1
Редактирование описания модели После создания нового проекта в главном окне одновременно появятся два самых необходимых окна проекта: Окно Управляющего Проекта — «Project Manager» и Окно Управляющего Вычислительным Экспериментом — «Test Bench» (рис. 4.2). Как и следует из названий, окно Project Manager отражает дерево атрибутов проекта и предназначено для создания новых классов устройств и управления проектом в целом, а в специальном устройстве-контейнере окна Test Bench пользователь должен «собрать» моделируемую систему (набор устройств, соединенных функциональными связями), с которой затем будет проводиться вычислительный эксперимент.
Рис. 4.2
Как уже говорилось ранее, описание нового устройства в MVS всегда строится как описание класса устройств, экземпляры которых и используются при построении функциональной схемы.
Задание класса устройств и его переменных Для того, чтобы задать новый класс устройств, необходимо в окне Test Bench нажать кнопку и в появившемся диалоговом окне выбрать пункт New Class. Затем необходимо в окне Test Bench подвести появившийся крестообразный курсор к месту, где необходимо разместить левый верхний угол нового устройства, затем нажать на левую кнопку мышки и, не отпуская ее, растянуть прямоугольник, изображающий новое устройство. После необходимо отпустить кнопку мышки, в результате чего в окне Test Bench появится изображение экземпляра устройства с именем Dev1 по умолчанию.
Чтобы изменить имя устройства, необходимо выделить поле имени и выполнить команду Edit или просто дважды щелкните мышью в этом поле. Окончание редактирования происходит при нажатии клавиши «Enter» или щелчку мыши за пределами элемента редактирования, отказ от изменений — при нажатии «Esc» .
Обратите внимание: как только пользователь создал прообраз нового устройства, в окне Project Manager автоматически появился новый класс Class1. Для того чтобы наполнить вновь созданный класс соответствующим содержимым, необходимо перейти в окно редактирования класса. Это можно сделать двумя способами:
в окне Test Bench необходимо щелкнуть правой кнопкой мышки в поле прямоугольника, соответствующего созданному устройству, а затем выполнить команду «Class» в появившемся всплывающем меню;
в окне Project Manager необходимо раскрыть узел «Device Classes», выделить элемент «Class1» и дважды щелкнуть на нем мышкой или выполнить команду меню «Edit» .
В результате появиться окно редактирования класса (рис. 4.3).
Для того, чтобы ввести новые параметры, входные или выходные переменные, статические переменные или константы в классе, необходимо выделить узел «Parameters» (или другой) в окне редактирования класса и нажать кнопку или выполнить команду «Edit/Add…» главного командного меню. На экране появится диалоговое окно, с помощью которого можно ввести имя параметра, выбрать его тип, указать значение по умолчанию и ввести комментарий, поясняющий назначение параметра. При задании значений параметров могут использоваться выражения, содержащие элементарные функции и значения других параметров или переменных (при условии, что взаимные ссылки не образуют циклов, что проверяется при вводе).
Рис. 4.3
Для того, чтобы добавить входные и выходные переменные в классе, необходимо выделить соответственно узлы «Inputs» и «Outputs» и далее действовать по той же схеме, что описана ранее. При добавлении выходной переменной (и входной) дополнительно возникнет окно структуры, в котором необходимо указать нажатием левой кнопки мышки в соответствующей точке требуемое положение выхода или входа. Стрелки, соответствующие входам и выходам, располагаются на сторонах прямоугольника, изображающего устройство.
Создание карты поведения Для того, чтобы задать карту поведения данного класса устройств, необходимо дважды щелкнуть левой кнопкой мышки на узле «Main B-Chart» окна редактирования класса. В появившимся окне главной карты поведения появиться узел Init (унаследованный от класса CDevice) (рис. 4.4). Этот узел является начальным узлом карты поведения. Для того, чтобы создать новый узел, необходимо выбрать вторую сверху кнопку на вертикальной панели инструментов окна главной карты поведения, подвести появившийся крестообразный курсор к месту, где необходимо разместить новый узел и, удерживая левую кнопку мышки, растянуть прямоугольник с закругленными краями (символизирующий узел). Для того, чтобы соединить два узла, необходимо выбрать кнопку и, нажав левую кнопку мышки на символе узла от которого ведется переход (при этом появиться знак + в кружочке) провести курсором прямую к символу другого узла (пока опять не появиться знак + в кружочке) и затем отпустить кнопку. Узел обладает рядом свойств, доступ к которым открывается при нажатии правой кнопки мышки в его поле.
Для того, чтобы задать непрерывное поведение в узле, необходимо (открыв таким способом всплывающее меню) выполнить команду «Create local Continuous behavior». В результате этих действий в описании класса появится новое непрерывное поведение Equations1, а также появится соответствующее ему окно Редактора формул (рис. 4.5). Тот же результат может быть достигнут и другой последовательностью действий: сначала в окне описания класса создается новая функция непрерывного поведения, а затем способом «drag and drop» буксируется в окно главной карты поведения и «кладется» на изображение узла. Изображение узла после этого будет нарисовано толстой сплошной линией — это означает, что узлу приписано некоторое непрерывное локальное поведение. Если узлу приписана локальная карта поведения, то он изображается двойной тонкой линией (для того, чтобы задать локальную карту поведения, необходимо выбрать во всплывающем меню пункт Create local B-chart).
В окне непрерывного поведения можно с помощью соответствующей кнопки или всплывающего меню добавить любой из описанных ранее типов уравнений (см. рис. 4.5).
Рис. 4.4
Рис. 4.5
Наследование класса устройств Допустим, в модели понадобилось ввести новый класс устройств, который во многих пунктах совпадает с уже существующим классом, но должен в некоторых аспектах отличаться от него. Можно, конечно, ввести новый класс и заново описать все его свойства, но лучше поступить проще и «идейно правильнее»: сделать новый класс прямым потомком предыдущего сходного с ним класса. Это можно реализовать двумя способами:
дважды щелкнуть мышкой на поле Superclass в окне описания нового класса и в появившемся диалоге выбрать в качестве суперкласса необходимый класс;
просто перетащить мышью класс-предок из окна Project Manager на поле Superclass окна описания класса-потомка. После этого класс-потомок сразу унаследует все элементы описания класса-предка (унаследованные элементы отмечены направленными вверх синими стрелками). Кроме унаследованных, класс может обладать и некоторыми своими свойствами.
Запуск модели в MVS
Для начала необходимо сохранить изменения, произведенные при редактировании модели. Для этого надо выбрать в главном меню пункт Project/Save или нажать кнопку. Теперь можно нажать кнопку на инструментальной панели главного окна или выполнить команду «Model/Run…» .
После нажатия кнопки «Run» на экране появиться сначала окно генератора кода, а затем одно за другим два окна консольных приложений — компилятора ресурсов (необходим для присоединения иконки класса) и компилятора Pascal Delphi. Вся работа с промежуточным кодом проводится в локальной папке… Tmp, в ней же формируется файл model. exe. При выходе из интегрированной среды все содержимое этой папки автоматически уничтожается. Поэтому, если необходимо для каких-либо целей оставить промежуточный код или выполняемую модель для независимого использования, надо воспользоваться кнопкой или командой «Model /Build…». Выполнение команды «Run» завершается запуском созданной программы model.exe.
После первого запуска выполняемой модели автоматически открываются окно «Test bench», которое является основным «путеводителем» по моделируемой системе.
Запуск выполнения модели производится с помощью кнопки (на инструментальной панели главного окна модели) или с помощью команды «Simulation/Run». Останавливается выполнение с помощью кнопки или команды «Simulation Stop», а перезапуск осуществляется с помощью кнопки или команды «Simulation Restart» .
В результате этих действий данный экземпляр испытуемой системы будет уничтожен и создан новый, снова с начальными значениями переменных. Модельное время снова будет равно 0.
С помощью кнопки или команды «Window/ New Diagram» можно создать окно диаграммы (по умолчанию это будет временная диаграмма, т. е. по оси абсцисс будут откладываться значения модельного времени). Также в пакете MVS возможно создание 2-D и 3-D анимации.
Исследования способностей практического применения программы Моделируем поставленную задачу: вводим необходимые уравнения и задаем переменные, параметры и выходные значения, формируем условия для выведения сообщения (Рис.1)
Задаем начальные параметры:
Kq=1 — Коэффициент чувствительности темпа изменения активов от разницы предложения и спроса;
Q0=2 — Некоторый фиксирован уровень актива;
Ks1=2 — Коэффициент линейной зависимости предложения от цены;
Kd1=2 — Коэффициент линейной зависимости спроса от цены;
S0 = 0 — Начальный уровень предложения;
D0=5 — Начальный уровень спроса;
Kp1= 0,1 — Коэффициент чувствительности цены от разницы текущего и фиксированного уровней актива;
Kp2 = 0,1 Коэффициент чувствительности цены от скорости изменения активов;
Ks2= 0 — Коэффициент чувствительности нелинейной составляющей предложения от цены;
Kd2=0 — коэффициент чувствительности нелинейной составляющей спроса от цены;
Задаём начальные состояния:
Q = Q0 — Уровень актива;
P= P0*(1+DP) — Цена;
S= S0 — Предложение;
D= D0 — Cпрос.
Рис. 5.1 Модель с начальными данными Запускаем проект и получаем начальные данные:
Рис. 5.2 Начальное состояние модели Рис. 5.3 Результат запуска модели с исходными данными Для анализа построенной модели изменим коэффициент чувствительности цены от скорости изменения активов на Кp2=0 (Рис. 5.4−5.5)
Рис. 5.4 Начальное состояние модели при Кp2=0
Рис. 5.5 Результат запуска модели при Кp2=0
Наблюдая за изменением цены при разных коэффициентах чувствительности Кp2, можно сказать, что при Кp2=0.1 значение цены в основном уменьшается, а при Кp2=0 значение цены периодически возвращается в начальное состояние.
Вывод Имитационное моделирование на цифровых вычислительных машинах является одним из наиболее мощных средств исследования, в частности, сложных динамических систем. Как и любое компьютерное моделирование, оно дает возможность проводить вычислительные эксперименты с еще только проектируемыми системами и изучать системы, натурные эксперименты с которыми, из-за соображений безопасности или дороговизны, не целесообразны. В тоже время, благодаря своей близости по форме к физическому моделированию, это метод исследования доступен более широкому кругу пользователей.
В настоящее время, когда компьютерная промышленность, предлагает разнообразнейшие средства моделирования, любой квалифицированный инженер, технолог или менеджер должен уметь уже не просто моделировать сложные объекты, а моделировать их с помощью современных технологий, реализованных в форме графических сред или пакетов визуального моделирования.
Список использованной литературы Хемди А. Таха Глава 18. Имитационное моделирование 7-е изд. — М.: «Вильямс», 2009. — С. 697−737.
Строгалев В. П., Толкачева И. О. Имитационное моделирование — МГТУ им. Баумана, 2010. — С. 697−737.
Самарский А.А., Михайлов А. П. Математическое моделирование: Идеи. Методы. Примеры — М: Наука, 2007. — 320 с.
Кобелев Н. Б., Основы имитационного моделирования сложных экономических систем Москва Издательства «ДЕЛО 2009
Ю.Б.Колесов, Ю. Б. Сениченков. Имитационное моделирование сложных динамических систем