Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моделирование. Файлы от преподавателя / КОНСПЕКТ Моделирование.doc
Скачиваний:
192
Добавлен:
15.09.2014
Размер:
2.28 Mб
Скачать

3.5.4. Метод композиции (суперпозиции).

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

Суть метода заключается в разбиении фигуры, образуемой графиком, функции fξ(x) на произвольное число непересекающихся областей, форма которых позволяет использовать один из ранее рассмотренных методов формирования случайных величин (рис. 3.13).

Другими словами, осуществляется апроксимация функции fξ(x) композицией более простых функций в виде

, где .

Значение Pj фактически представляет собой площадь фигуры qj.

При практической реализации метода число компонент в композиции конечно:

.

Здесь φj(x) – условные плотности вероятностей, соответствующие форме qj. Их ординаты получаются делением на Pj (нормированием) отрезков вертикальных прямых, лежащих в области qj.

Имитация реализаций ξ сводится в этом случае к реализации дискретной величины j, распределение которой задано рядом вероятностей

P1, P2, … , PN,

т.е. к выбору одной из φj и к имитации величины с плотностью φj(x) одним из известных способов.

Основной принцип разбиения заключается в том, что частям qi, имеющим наибольшую площадь (т.е. наибольшее значение Pi) должны соответствовать наиболее просто и быстро имитируемые плотности φi(x).

Рис. 3.13. Метод композиции

Например, разбиению на рис. соответствуют:

– ступенчатая плотность φ1 (хорошо применим универсальный метод);

– треугольные плотности φ2 φ7 (наиболее удобен метод исключений);

– остаточная плотность:

.

Таким образом, моделирующий алгоритм включает следующие этапы:

–– разбиение области под графиком fξ(x) на N непересекающихся областей qj достаточно простой формы и определение их площадей ;

–– для каждой qj строится условная плотность φj(x), ординаты которой получаются делением на Pj отрезков вертикальных прямых x=const, лежащих в области qj;

–– строится шкала 0, a1, a2, ..., aN=1, где ;

–– генерируется равномерно распределенное число η из диапазона от 0 до 1 и с его помощью определяется номер k плотности φk(x) по условию:

ak-1< η< ak;

–– с использованием одного из рассмотренных ранее методов формируется случайное число xi с функцией плотности распределения φk(x), которое включается в выходную последовательность.

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

3.6. Формирование случайных векторов с заданными вероятностными характеристиками

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

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

В простейшем случае вектор двумерный и может быть задан совместным законом распределения его проекций ξ и η на оси 0X и 0Y.

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

1. Дискретный случайный процесс.

Пусть требуется смоделировать случайный вектор (ξ , η ). Составляющая ξ может принимать значения x1, x2, … , xm, а составляющая η – значения y1, y2, … , yn и каждой паре (xi yj) соответствует вероятность Pij. Совместную функцию распределения вероятностей зададим в виде матрицы

P = , .

Тогда каждому возможному значению xi случайной величины ξ будут соответствовать вероятность

,

представляющая собой сумму вероятностей i-й строки матрицы.

Набор значений P1, P2, …, Pm представляет собой одномерный закон распределения вероятностей для первой координаты. Используя его, можно разыграть значение координаты ξ =xi , генерируя равномерно распределенное в диапазоне от 0 до 1 число β1 и определив значение i по правилу:

αi-1 < β1<αi,

где α0=0, αi =.

Из всех значений матрицы P выбираем последовательность Pi1, Pi2, … , Pin (i-ю строку) и преобразуем её:

(j=1,2, …n).

Эта последовательность описывает условное распределение величины η при условии, что ξ = xi.

Используя тот же прием, что и при розыгрыше значения первой координаты, определяем с помощью равномерно распределеннго в диапазоне от 0 до 1 числа β2 конкретное значение yj случайной величины η. Получена первая реализация (xi, yj) вектора. Если нужно большее колтчество реализаций, процедуру повторяем циклически.

2. Непрерывный случайный процесс.

В этом случае двумерная случайная величина (ξ,η) описывается совместной функцией плотности распределения fξη (x,y).

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

.

Имея этот закон и, используя один из рассметренных ранее методов (например, метод обратной функции), можно сформировать случайное число xi, а затем при условии, что ξ = xi определить условное распределение случайной величины η:

.

В соответствии с этой плотностью, можно определить случайное число yj и получить реализацию вектора (xi,yj).

Аналогичным образом можно моделировать случайные вектора и большей размерности. Например, если вектор трехмерный и задан совместной функцией плотности fξηζ (x,y,z), то значения случайных чисел xi, yj, zk выбираются в соответствии с функциями плотности:

,

,

.