50
моделирующего алгоритма, имитирующего поведение и взаимодействие элементов системы с учетом случайных входных воздействий и воздействий внешней среды, и реализации этого алгоритма с использованием программ- но-технических средств ЭВМ.
Различают две области применения метода статистического моделирования: 1) для изучения стохастических систем; 2) для решения детерминированных задач. Для решения детерминированной задач производится ее замена эквивалентной схемой некоторой стохастической системы, выходные характеристики которой совпадают с результатами решения детерминированной задачи. При такой замене вместо точного получается приближенное решение, погрешность уменьшается с увеличением числа испытаний.
В результате статистического моделирования системы получается серия частных значений искомых величин или функций, статистическая обработка которых позволяет получить сведения о поведении реального объекта или процесса в произвольные моменты времени. Если количество реализаций достаточно велико, о полученные результаты моделирования системы приобретают статистическую устойчивость и с достаточной точностью могут быть приняты в качестве оценок искомых характеристик процесса функционирования системы.
Теоретической основой метода статистического моделирования систем являются предельные теоремы теории вероятностей.
Статистическое моделирование систем на ЭВМ требует формирования случайных величин, что реализуется с помощью генераторов случайных чисел. На практике используются три основных способа генерации случайных чисел: аппаратный, табличный и алгоритмический.
При аппаратном способе генерации случайные числа вырабатываются специальной электронной приставкой. В качестве физического эффекта, заложенного в основу таких генераторов чисел, чаще всего используются шумы в электронных и полупроводниковых приборах или явления распада радиоактивных элементов.
При табличном способе случайные числа заранее определены и оформлены в виде таблицы.
При алгоритмическом способе получение последовательностей случайных чисел производится с помощью специальных алгоритмов и реализующих их программ.
Наибольшее применение в практике моделирования на ЭВМ для генерации последовательностей псевдослучайных чисел находят алгоритмы вида
51
xi 1 Ф( xi) ,
представляющие собой рекуррентные соотношения первого порядка, для которых начальное число x0 и постоянные параметры заданы.
Одна из исторически первых процедур - метод серединных квадратов. Первоначально задается 2n разрядное число, меньшее 1. Число возводится в квадрат, а затем отбираются средние 2n разрядов, которые и являются очередным числом псевдослучайной последовательности. (x0=0,2152, x02=0/04631104, x1=0,6311, x12=0,39828721, x2=0,8287). Недостатком метода является наличие корреляции между числами последовательности.
Широкое применение получили конгруэнтные методы генерации псевдослучайных последовательностей, представляющие собой арифметические операции, в основе которых лежит фундаментальное понятие конгруэнтности. Два целых числа a и b конгруэнтны (сравнимы) по модулю m, где m - целое число, тогда и только тогда, когда существует такое целое число k, что a-b=km, т.е. разность a-b далится на m и если числа a и b дают одинаковые остатки от деления на абсолютную величину числа m. Например,
1984 4(mod 10), 5008 8(mod 103) и т.д.
Конгруэнтные процедуры являются чисто детерминированными, так как описываются в виде рекуррентного соотношения
X i 1 |
X i |
|
(mod M ) , |
|
(3.1) |
|
|
|
|
где Xi, |
, , M - неотрицательные целые числа. |
|||
После преобразования получим |
||||
X i |
i X 0 |
( |
i |
1) /( 1)(modM ) . |
Если задано начальное значение X0, множитель
и аддитивная константа , то представленное выражение однозначно определяет последова-
тельность целых чисел |
X i , составленную из остатков от деления на M чле- |
|||
нов последовательности |
i X 0 |
( |
i |
1) /( 1) . Таким образом, для любого i |
1 справедливо неравенство X i |
M . По целым числам последовательности |
|||
{Xi}можно построить последовательность {xi}={Xi/N} рациональных чисел из единичного интервала (0,1).
Конгруэнтная процедура получения последовательности псевдослучайных чисел может быть реализована мультипликативным либо смешанным методом.
Мультипликативный метод задает последовательность неотрицательных целых чисел {Xi}, не превосходящих M по формуле
52
X i 1
X i (mod M )
т.е. это частный случай соотношения (7) при =0.
Для машинной реализации наиболее удобна версия M=28=256, тогда вычисление остатка от деления на M сводится к выделению 8 младших разрядов делимого, а преобразование целого числа Xi в рациональную дробь из
интервала xi |
(0,1) осуществляется подстановкой слева от Xi десятичной запя- |
той. |
|
Смешанный метод позволяет вычислить последовательность неотри- |
|
цательных целых чисел {Xi}, не превосходящих M по формуле |
|
X i 1 |
X i (mod M ) , |
т.е. в отличие от мультипликативного метода
0. С вычислительной точки зрения смешанный метод генерации сложнее на одну операцию сложения, но при этом возможность выбора дополнительного параметра позволяет уменьшить возможную корреляцию получаемых чисел.
Моделирование случайной величины с заданным законом распределения
Большинство случайных величин можно смоделировать при помощи равномерно распределенной на отрезке [0,1] случайной величины.
Теорема 1.
Пусть СВ равномерно распределена на отрезке [0,1], G(x) - заданная функция распределения. Тогда СВ =G-1( ) имеет совпадающую с G(x) функцию распределения F (x)=G(x) (рис. 3.1).
F (x)=G(x). |
|
|
|
y |
(a) |
y |
(б) |
|
|||
1 |
|
1 |
|
y=G(x)
y=G(x)
0 |
=G-1( ) |
x |
0 |
=G-1( ) |
x |
Рис. 3.1. Графическое представление теоремы 1.
Если функция G «проскакивает» значение , то полагаем =G-1( ) равным точке разрыва.
53
Моделирование равномерно распределенных на отрезке [a,b] случайных чисел
Статистические характеристики случайной величины , равномерно распределенной на интервале [a,b]:
плотность распределения имеет вид:
0, |
|
x |
[a, b] |
|
f |
1 |
, x |
[a, b] |
|
|
b |
a |
||
Вероятность попадания значений СВ
в любую область длины из отрезка [a,b] равна /(b-a) и, следовательно, не зависит от размещения этой области в пределах отрезка [a,b].
Функция распределения СВ
x |
|
|
0, |
|
|
x |
a |
||
|
x a |
|
|
|
|
|
|||
F (x) f (t)dt |
|
, x [a, b] |
|||||||
|
b |
a |
|||||||
|
|
|
|
|
|
|
|||
|
|
|
1, |
|
|
|
x |
b |
|
Мат. ожидание: M |
|
|
|
a |
|
b |
. |
|
|
|
|
|
|
|
2 |
|
|
||
|
|
|
|
|
|
|
|
|
|
Дисперсия: D |
b |
a 2 |
. |
|
|||||
|
|
|
|
||||||
|
|
|
12 |
|
|
|
|
|
|
Графическое решение задачи, согласно теореме 1 показано на рисун-
ке3.2.
у
1
0 |
а |
b |
х |
|
|
||
|
|
|
Рис. 3.2. Функция распределения для равномерно распределенной СВ.
|
|
|
54 |
|
|
Из уравнения |
|
a |
находим |
a (b a) . |
|
|
|
||||
b |
a |
||||
|
|
|
Моделирование показательно распределенных СВ
СВ называется показательно распределенной с параметром >0 , если ее плотность имеет вид
у
f (x) |
0, |
|
x |
0 |
|
|
|
|
|
|
|
|
|
|
|||
|
|
e |
x , |
x |
0, |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
где |
>0 некоторое число. |
|
|
|
y=f (x) |
|
|||||||||||
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
х |
Известно, что |
|
|
|
|
|
|
|
0 |
|
Рис. 3.3. |
|||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
у |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
1 |
|
0, |
x |
0, |
1 |
|
|
|
|
|
|
M |
|
, |
D |
|
, F |
x |
|
|
|
|
|
|
|
||||
|
|
2 |
x x |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
1 e |
0. |
|
|
y=F (x) |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Из уравнения (рис. 3.4) |
=1-е- |
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
х |
|
находим |
|
|
ln(1 |
) |
|
|
0 |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
Рис. 3.4. |
|
|||||||||
|
|
|
|
|
|
|
|
|
|||||||||
По теореме 1 функция распределения СВ совпадает с F (х). Заметим, |
|||||||||||||||||
что СВ 1- , так же как и СВ |
, равномерно распределена на отрезке [1,0]. По- |
||||||||||||||||
этому можно для моделирования использовать формулу |
|
1 |
ln , требую- |
||||||||||||||
|
|
||||||||||||||||
щую на одно арифметическое действие меньше.
Моделирование нормально распределенных случайных чи-
сел
СВ распределена по нормальному закону с параметрами m и ( >0),
если ее плотность имеет вид |
1 |
у |
|
|
|
|
2 |
y=f (x) |
|
|
0 |
m |
х |