Моделирование винескоро и пуассоновского процесса в delphi 7
ОГЛАВЛЕНИЕ
- Введение…………………………………………………………
.ст. 3 - Процесс пуассона............…………………………
……………..ст. 4-7 - Винеровский процесс.....………………………………………..с
т. 8-12 - Программирование на Delphi ……………………………….….ст. 13-20
- Код и интерфейс программы «Пуассоновский процесс» …....ст. 20-24
- Код и интерфейс программы «Винеровский процесс».............ст. 25-26
- Заключение……………………………………………………
…ст. 27 - Список используемой литературы……………………………..ст. 28
ВВЕДЕНИЕ
Моделирование
случайных процессов на ЭВМ открывает
широкие возможности для
Но для того что бы моделировать сложные системы необходимо сначала разобраться с тем как смоделировать их главную составляющую конкретный случайный процесс. В этой работе будет рассказано о моделировании винеровского и пуассоновского процесса на ЭВМ, о теоретической части работы и о практической реализации при помощи среды программирования Delphi 7.
ПРОЦЕСС ПУАССОНА
Процесс Пуассона — поток однородных событий, для которого число событий в интервале А не зависит от чисел событий в любых интервалах, не пересекающихся с А, и имеет экспоненциальное распределение с параметром Λ(А). В теории случайных процессов описывает количество наступивших случайных событий, происходящих с постоянной интенсивностью. Вероятностные свойства потока Пуассона полностью характеризуются функцией Λ(А), равной приращению в интервале А некоторой убывающей функции. Чаще всего поток Пуассона имеет мгновенное значение параметра λ(t) — функцию, в точках непрерывности которой вероятность события потока в интервале [t,t+dt] равна λ(t)dt. Если А — отрезок [a,b], то
(1)
Поток Пуассона, для которого λ(t) равна постоянной λ, называется простейшим потоком с параметром λ.
Потоки Пуассона определяются для многомерного и вообще любого абстрактного пространства, в котором можно ввести меру Λ(А). Стационарный поток Пуассона в многомерном пространстве характеризуется пространственной плотностью λ. При этом Λ(А) равна объему области А, умноженному на λ.
Для пуассоновского процесса (также как и для винеровского) существует много различных определений. Мы рассмотрим здесь лишь простые в рамках мартингальной терминологии. Пуассоновский процесс относится к классу точечных (считающих) процессов.
Определение 1. Точечным (считающим) процессом на некотором стохастическом базисе = называется неубывающий процесс с , кусочно-постоянными траекториями, допускающий только единичные скачки , и, следовательно, принимающий значения только из .
Очевидно, согласно этому определению, рассмотренный в предыдущем параграфе процесс с одним скачком является простейшим примером точечного процесса. Также очевидно, что интегрируемые точечные процессы являются субмартингалами, и поэтому допускают разложение Дуба-Мейера.
Определение 2. Пуассоновским (с некоторой интенсивностью ) на стохастическом базисе = называется точечный процесс с нулевым начальным значением , допускающий разложение Дуба-Мейера
, (2.1)
где -локально квадратично-интегрируемый мартингал на базисе с квадратичной характеристикой равной
(2.2)
Из этого определения вытекают следующие свойства пуассоновского процесса:
1) ;
2) ;
3) ;
4) момент остановки - момент первого скачка процесса , имеет показательное распределение с функцией распределения , равной
5) случайные величины , «отделяющие» моменты -х скачков процесса (равные для всех ) имеют показательное распределение с ф. р. , совпадающей с ф. р. момента ;
6) является процессом с независимыми приращениями, и случайные величины независимы;
7) для каждого момента времени случайная величина имеет распределение Пуассона
. (2.3)
Заметим, что свойства 1) – 3) вытекают непосредственно из определения, а вот для доказательства свойств 4) - 7) необходимо привлечение теоремы Деллашери (достаточно очевидное, что мы оставляем читателям в качестве упражнения).
Точечные процессы , заданные на стохастическом базисе , представляют собой субмартингалы с кусочно-постоянными траекториями, допускающими только единичные скачки . В разложении Дуба-Мейера (где компенсатор и локально квадратично-интегрируемый мартингал имеют нулевые начальные значения) процесс является неубывающим, локально интегрируемым, предсказуемым и имеет скачки . Этот процесс и определяет распределение процесса . Так в частном случае - дифференцируемости компенсатора - представим в виде
= (2.4)
с некоторым неотрицательным
. (2.5)
Заметим, что именно представление (5) позволяет осуществлять достаточно легкую имитационную генерацию моделей процессов по заданным непосредственно либо же в виде неких функциональных зависимостей реализаций (например, от того же процесса до момента : ).
Интересной особенностью точечных процессов (вытекающей из того, что траектории их кусочно-постоянны, а моменты скачков не образуют точек накопления) оказывается возможность построения интегралов по ним (еще до рассмотрения общего интегрирования Ито) - непосредственно как траекторных интегралов Лебега-Стилтьеса. Это также позволяет предварить рассмотрение формулы Ито для настоящего частного случая. Приведем простой частный пример.
Пусть на стохастическом базисе - случайный процесс с
= , (2.6)
где пуассоновский процесс задан представлением (1). Тогда из тождества, справедливого для произвольного разбиения интервала точками при
= = +
вытекает равенство
= + ,
где интеграл рассматривается как обычный траекторный интеграл Лебега-Стилтьеса (т.е. здесь – сумма ). Поскольку, очевидно, = для всех , а процесс равен сумме всех своих скачков до момента , то
= + . (2.7)
Эту формулу
можно преобразовывать в
= + = =
= + ,
где первое слагаемое в правой части – компенсатор, а второе – мартингал в разложении Дуба-Мейера процесса (а интеграл по мартингалу здесь – разность интегралов с интеграндами и , имеющая нулевое среднее). Заметим, что отсюда, следует способ вычислений математических ожиданий такого рода процессов:
= + =
= ,
что очевидно приводит к ответу.
ВИНЕРОВСКИЙ ПРОЦЕСС
Существуют
различные определения
Определение 3 . Винеровским процессом на стохастическом базисе называется согласованный гауссовский непрерывный мартингал с .
Процесс с такими свойствами еще иногда называют стандартным винеровским процессом. Эквивалентным является следующее определение винеровского процесса:
Определение 3*. Процесс , заданный на стохастическом базисе ,называется винеровским, если
а) - непрерывный процесс с ;
б) - квадратично интегрируемый мартингал (т.е. и );
в) .
Понятно, что каждое из определений может служить в качестве набора свойств процесса при альтернативном определении. Заметим, что нетривиальным оказывается не только доказательство эквивалентности определений (или что, то же самое, выведение свойств), но и сам факт существования такого процесса. В каком-то смысле, исходной, обосновывающей существование этого процесса следует полагать следующую конструкцию (впрочем, не приспособленную для семимартингальных исследований):
Теорема 1. Пусть - независимые гауссовские случайные величины на , такие, что Тогда для некоторой целочисленной последовательности функции
(3.1)
сходятся равномерно по и их ( - п.н. непрерывный) предел является винеровским процессом на базисе с - потоком - алгебр = , порожденных .
Доказательство см. в [2, стр.11].
В прикладных задачах, возникающих в связи с моделями на ЭВМ полезным является следующее приближение: пусть - независимые одинаково распределенные случайные величины с и, следовательно, , . Рассмотрим при процессы с
(3.2)
где [.] – целая часть числа. Заметим, что .
Из центральной предельной теоремы следует, что при каждом фиксированном распределения случайных величин слабо сходятся при к распределению гауссовской случайной величины с нулевым средним и дисперсией . Заметим, что в силу того, что скачки процесса сходятся по вероятности к нулю при
(3.3)
и является мартингалом в минимальном представлении с квадратичной характеристикой
. (3.4)
Имеет место слабая сходимость распределений (см. [5]) процессов к процессу, удовлетворяющему свойствам определения 3 (т.е. винеровскому). Таким образом, при больших могут служить приближением винеровского процесса. Однако доказательство этого общего факта выходит за рамки настоящего пособия.
Перечислим некоторые свойства винеровского процесса , вытекающие из его определения 3:
1. ;
2. , и при ;
3. ;
4. Если и - два независимых винеровских процесса (т.е. выполняется равенство = для любых борелевских подмножеств и пространства непрерывных функций ), то при всех
(3.5)
5. Закон повторного логарифма (А.Я. Хинчин)
; (3.6)
. (3.7)
6. Локальный закон повторного логарифма:
; (3.8)
. (3.9)
7. Распределение максимума: при
(3.10)
8. Закон арксинуса: при
(3.11)
Свойство 1 следует из того, что - мартингал с по теореме 1. Свойство 2 следует из мартингальности и того, что (и ) следует
.
Соответственно, получаем
.
Свойства 3 и 4 следуют из сходимостей при
(3.12)
по разбиениям , диаметр которых стремится к 0 при .
ПРОГРАММИРОВАНИЕ НА DELPHI
Выбор Delphi обусловлен как тем, что это наиболее популярная среда программирования, так и объективными несомненными достоинствами.
Среди них:
простой и мощный язык программирования Pascal;
удобная и полная объектная модель;
достаточно удобная среда разработки;
обширная объектная библиотека VCL;
мощные средства разработки приложений баз данных.
Delphi – это потомок среды программирования Turbo Pascal. Система визуального объектно-ориентированного проектирования Delphi позволяет:
Создавать законченные приложения для Windows самой различной направленности.
Быстро
создавать профессионально
Создавать свои динамически присоединяемые библиотеки компонентов, форм, функций, которые потом можно использовать из других языков программирования.
Создавать мощные системы работы с базами данных любых типов.
Формировать и печатать сложные отчеты, включающие таблицы, графики и т.п.
Создавать справочные системы, как для своих приложений, так и для любых других.
Создавать профессиональные программы установки для приложений Windows, учитывающие всю специфику и все требования операционной системы.
Интегрированная среда разработки Delphi – это среда, в которой есть все необходимое для проектирования, запуска и тестирования создаваемых приложений. Именно поэтому, учитывая особенности и характеристики данной среды, для написания программ, я выбрала Delphi.
Общее описание среды
Верхней части окна среды отображается полоса главного меню. Назначение каждого пункта меню можно уточнить в справочной системе Delphi. Для получения справки следует выбрать интересующий пункт меню и нажать клавишу F1. Выбор команды меню выполняется любым из стандартных способов: F10, Alt+горячая клавиша или щелчком мыши на нужном пункте меню.
Назначение команд меню представлены в таблице:
Раздел меню |
Назначение |
1) Меню File (Файл) |
Разделы меню позволяют создавать новый проект, новую форму, открыть ранее созданный проект или форму, сохранить проекты или форму в файлах с заданными именами. |
2) Меню Edit (Правка) |
Разделы этого меню позволяют выполнять обычные для приложений Windows операции с буфером обмена, а также дают возможность выравнивать группы размещенных на форме компонентов по размерам и местоположению. |
3) Меню Search (Поиск) |
Разделы этого меню позволяют осуществлять поиск фрагментов текста, ошибок, объектов, модулей, переменных и символов в редакторе кода. |
4) Меню View (Вид) |
Разделы этого меню позволяют вывести на экран или скрыть различные элементы среды проектирования и открыть окна, связанные с интегрированным отладчиком. |
5) Меню Project (Проект) |
Разделы меню позволяют добавлять и удалять из проекта формы, задавать опции проекта, компилировать проект без его выполнения, дать информацию о размерах приложения. |
6) Меню Run (Выполнить) |
Предоставляет возможность выполнять проект в нормальном или отладочном режимах, по шагам, останавливаясь в указанных точках, просматривая значения переменных и т.д. |
7) Меню Component (Компонент) |
Содержит раскрывающееся меню, которое позволяет работать с компонентами: создавать новые компоненты, изменять палитру компонентов и т.п. |
8) Меню Database (База данных) |
Раздел меню позволяет использовать инструментарий для работы с базами данных. |
9) Меню Tools (Сервис) |
Включает ряд разделов, позволяющих
выполнять различные |
10) Меню Windows (Окно) |
Содержит список открытых окон среды и предоставляет возможность перехода из одного окна в другое. |
11) Меню Help (Помощь) |
Содержит разделы, помогающие работать со справочной системой среды программирования Delphi. |
1. Палитра компонентов Standard (Стандартная) |
Большинство компонентов на этой странице являются аналогами экранных элементов операционной системы Windows: меню, кнопки, полосы прокрутки, панели и т.п. Имена компонентов можно узнать из всплывающей подсказки. Назначение компонентов можно уточнить, используя систему контекстной справки Delphi. |
2. Палитра компонентов Additional (Дополнительная) |
Содержит более развитые компоненты: а) воспроизведение звука, музыки и видео; б) отображение графической информации. |
3. Палитра компонентов System (Системная) |
Предоставляет возможность объединять отдельные элементы, такие как списки каталогов и файлов, а также генерировать события через определенные промежутки времени. |
4. Палитра компонентов Win32 |
Содержит компоненты, позволяющие созданным программам использовать интерфейс Windows. |
5. Палитра компонентов Dialogs (Диалоговая) |
Содержит стандартные |
6. Палитра компонентов Data Access, Data Controls (Сервис баз данных) |
Использует механизм баз данных для организации доступа к файлам баз данных различных форматов. |
7. Палитра компонентов QReport (Отчеты) |
Предоставляет компоненты для визуального проектирования отчетов баз данных. |
8. Палитра компонентов Servers (Сервис) |
Предоставляет компоненты-наследники для доступа ко всем серверным объектам Microsoft Office. |
9. Палитра компонентов Samples (Примеры) |
Содержит компоненты-примеры, которые можно добавлять в собственные приложения. |
10. Палитра компонентов Internet |
Предоставляет компоненты для разработки приложений, позволяющих создавать HTML-файлы непосредственно из файлов баз данных и других типов, взаимодействующих с другими приложениями для Интернета. |
Ниже
полосы главного меню расположены две
инструментальные панели. Левая панель
(состоящая, в свою очередь, из трех
панелей) содержит два ряда кнопок,
дублирующих некоторые наиболее
часто используемые команды меню
(открыть, сохранить, сохранить все
и т.д.). Правая панель содержит панель
библиотеки визуальных компонентов (или
палитра). Палитра компонентов содержит
ряд страниц, закладки которых видны
в ее верхней части. Страницы сгруппированы
в соответствии с их смыслом и
назначением. Поскольку число
Правее полосы главного меню располагается еще одна небольшая инструментальная панель, содержащая раскрывающийся список и две кнопки. Эта панель служит для сохранения и выбора различных конфигураций окна среды, которые можно создавать и запоминать.
Под палитрой компонентов располагается окно формы с размещенными на ней компонентами. Форма является основой почти всех приложений Delphi. Форму можно понимать как типичное окно Windows. Она обладает теми же свойствами, что и другие окна. Во время проектирования форма покрыта сеткой из точек. В узлах этой сетки размещаются те компоненты, которые помещены на форму. Во время выполнения приложения эта сетка не видна.
В основном
поле окна слева находится окно Инспектора
объектов, с помощью которого в
дальнейшем можно задавать свойства
компонентов и обработчики
Рассмотрим некоторые свойства любого компонента:
Свойство |
Назначение |
Caption (надпись) |
Название компонента |
Color |
Цвет поверхности компонента |
Font Color |
Цвет шрифта |
Font Height |
Высота шрифта |
Font Name |
Имя шрифта |
Font Size |
Размер шрифта |
Style fsBold |
Стиль надписи на компоненте – Жирный |
Style fsItalic |
Стиль надписи на компоненте – курсив |
Style fsUnderline |
Стиль надписи на компоненте – подчеркивание |
Style fsStrikeOut |
Стиль надписи на компоненте – зачеркивание |
Каждый
компонент имеет свой набор свойств,
который соответствует
Страница Событий – вторая часть Инспектора объектов. На ней указаны все события, на которые может реагировать выбранный объект.
Одним из наиболее важных элементов среды Delphi является окно Редактора кода. Оно располагается ниже окна формы, обычно при первом взгляде на экран невидимо, т. к. его размер равен размеру формы и окно Редактора кода практически полностью перекрывается окном формы. Редактор кода является полноценным программным редактором. В заголовке окна редактора кода отображается имя текущего файла, с текстом которого производится работа (стандартное имя – Main.pas). В нижней части окна Редактора кода располагается строка состояния. В самой левой ее позиции отображается позиция курсора: номер строки и колонки.
Выше
окна Инспектора объектов расположено
окно Дерево объектов, которое отображает
структуру компонентов
Общая организация программы в Delphi
Программа, создаваемая в среде Delphi в процессе проектирования приложения, основана на модульном принципе. Главная программа состоит из объявления списка используемых модулей и нескольких операторов, создающих объекты для необходимых форм и запускающих приложение на выполнение. Модульность очень важна для создания надежных и относительно легко модифицируемых и сопровождаемых приложений. Четкое соблюдение принципов модульности в сочетании с принципом скрытия информации позволяет производить модификации внутри любого модуля, не затрагивая при этом остальных модулей и главную программу.
Все объекты
компонентов размещаются в
Структура файла главной (головной) программы приложения Delphi.
В процессе проектирования Delphi автоматически создает код головной программы и отдельных модулей. В модули вводятся собственные коды, создавая обработчики различных событий. Но головную программу, как правило, не приходится модифицировать и даже просматривать ее текст (только в исключительных случаях).
Головной файл приложения Delphi имеет следующую структуру:
Program < имя >;
{объявление
подключаемых модулей, а также
локальных типов, классов,
Begin
{операторы тела программы}
End.
Типичная головная программа приложения имеет следующий вид:
Program Project 1;
Uses
Forms,
Unit 1 in ‘Unit 1.pas’ {Form 1}, Unit 2 in ‘Unit 2.pas’ {Form 2};
{$R *. res}
{можно
поместить описание констант, переменных,
функций, процедур, доступных для
использования только в
Begin
Application. Initialize;
Application. CreateForm (TForm 1, Form 1);
Application. CreateForm (TForm 2, Form 2);
Application. Run;
End.
1) Программа начинается с ключевого слова program, после которого указывается имя программы (оно совпадает с именем файла, в котором был сохранен проект). Это же имя присваивается исполняемому файлу приложения. По умолчанию используется имя Project1.
2) После заголовка в тексте программы располагается предложение:
Uses
Forms,
Unit 1 in ‘Unit 1.pas’ {Form 1}, Unit 2 in ‘Unit 2.pas’ {Form 2};
В этом предложении перечисляются модули, загружаемые программой. Первый модуль Forms является системным, а следующие – модулями разработанными самостоятельно форм. Данный пример подразумевает, что в проекте были созданы две формы с именами Form1, Form2 в модулях Unit1, Unit2. Заключенные в фигурные скобки название форм представляют собой комментарии.
3) Следующая строка текста – {$R *. res} – представляет собой директиву компилятора, связанную с использованием файлов ресурсов. Указанный файл должен быть файлом ресурсов Windows. По умолчанию используется расширение.RES для файлов ресурсов.
4) Первый оператор в теле программы Application. Initialize; – инициализирует приложение, следующий за ним оператор Application. CreateForm (TForm 1, Form 1); и Application. CreateForm (TForm 2, Form 2); – создают объекты формы1 и формы2, последний оператор Application. Run; – начинает выполнение приложения.
Общая структура файла модуля:
Unit < имя модуля >;
Interface // Открытый интерфейс модуля (могут помещаться списки подключаемых модулей, объявление типов, констант, переменных, функций и процедур, к которым будет доступ из других модулей)
Implementation // Реализация модуля (могут помещаться списки подключаемых модулей, объявление типов, констант, переменных, функций и процедур, к которым не будет доступа из других модулей)
Initialization // (Необязательный раздел – операторы выполняются один раз при первом обращении к модулю)
Finalization // (Необязательный раздел – операторы выполняются при любом завершении работы модуля)
End.
Рассмотрим теперь текст модуля с пустой формой:
Unit Unit1;
Interface // Открытый интерфейс модуля
Uses {Список подключаемых модулей}
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
Type {Объявление класса формы}
TForm1 = class (TForm)
Private // закрытый раздел класса
Public // открытый раздел класса
End;
VarForm 1: TForm1;
Implementation // Реализация модуля
{$R *. dfm}
End.
КОД И ИНТЕРФЕЙС ПРОГРАММЫ «ПУАССОНОВСКИЙ ПРОЦЕСС»
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, Math,
Grids;
type
TForm1 = class(TForm)
btn1: TButton;
lbl1: TLabel;
edt1: TEdit;
lbl2: TLabel;

- Моделирование в металлургии
- Моделирование воспитательной системы студенческой молодежи в ориентации на кризисный и посткризисный периоды социального развития
- Моделирование в ПМ
- Моделирование в прогнозировании и планирование экономических процессов и систем. Экономические модели
- Моделирование в процессах принятия управленческих решений
- Моделирование в процессах разработки управленческих решений
- Моделирование в развитии макроэкономики
- Моделирование будущих денежных потоков на оценочный перио
- Моделирование бухгалтерского баланса
- Моделирование бухгалтерского учета
- Моделирование бухгалтерского учета хозяйственной деятельности организации
- Моделирование в Stratum
- Моделирование валютных кризисов
- Моделирование вариантов выхода из мирового экономического кризиса кондитерской «Dolce vita»