Имитационное моделирование. Учебное пособие
.pdf
имеем следующие соотношения:
1 A11 1 a1 ,
2 A21 1 A22 2 a2 ,
...
n An1 1 An2 2 ... Ann n an .
На основе этих соотношений последовательно получим
R11 M{( 1 a1 )2 } A112 M{ 12 } A11 ,
R21 M{( 1 a1 )( 2 a2 )} M{A11 1 (A21 1 A22 2 )}
A11 A21 , ...,
Rnn M{( n an )2} M{(An1 1 ... Ann n )2} An21 ... Ann2 .
Окончательно формулы для определения Aij получатся в следующем виде:
|
j |
1 |
|
|
|
Rij Aik Ajk |
|
|
|
Aij |
k |
1 |
, |
1 j i n , |
|
j 1 |
|||
|
R jj A2jk |
|
|
|
|
|
k 1 |
|
|
|
0 |
|
|
|
причем считается, что Aik Ajk |
0 . |
|
||
|
k 1 |
|
|
|
Задание для самостоятельной работы
1) Написать подпрограмму генерирования одной реализации нормального случайного вектора ( 1 ,..., n ) с известны-
ми средними значениями компонент и матрицей ковариаций.
61
2)Сгенерировать выборку объема N=1000 реализаций нормального случайного вектора. Вектор средних и матрицу ковариаций задать самостоятельно.
3)По 2–критерию проверить нормальность всех компо-
нент полученного вектора при уровне значимости =0.05. Сравнить выборочные средние и матрицу ковариаций с теоретическими.
2.3.Генерирование случайных векторов
сзаданными одномерными распределениями
иматрицей корреляции компонент
Пусть необходимо генерировать n -мерный случайный вектор ( 1 ,..., n ) , у которого одномерные плотности вероят-
ностей компонент i имеют заданный вид pi (z), i 1, n , а
также известны величины rij M{ i j }, i, j 1, n . Эта задача решается с помощью нелинейного преобразования компонент n -мерного нормального случайного вектора ( 1 ,..., n )
с математическими ожиданиями M{ i } 0 |
и ковариациями |
||||
M{ i j } ij , |
i, j |
|
|
(генерирование |
такого векто- |
1, n |
|||||
ра( 1 ,..., n ) см. |
в п. 2.2). |
Предположим, |
что компоненты |
||
вектора ( 1 ,..., n ) и стандартные нормальные компоненты вектора ( 1 ,..., n ) связаны соотношениями
62
i i ( i ), i 1, n .
Пусть нам удалось обратить эти соотношения и найти функ-
ции i ( i ) , |
такие, что i i ( i ), i |
1, n |
. Тогда одномерная |
||||||||
плотность вероятностей величин i |
должна иметь вид |
||||||||||
|
pi (z) |
|
1 |
|
i2 (z) d i (z) |
|
|||||
|
|
|
exp |
|
|
|
|
|
. |
||
|
2 |
2 |
|
|
dz |
||||||
|
|
|
|
|
|
|
|||||
Но функции |
pi (z) |
нам известны, поэтому последнее равен- |
|||||||||
ство можно рассматривать как дифференциальное уравнение относительно неизвестной функции i (z) . Разделяя в нем переменные, получим уравнение
|
2 |
|
|
||
exp |
|
i |
d i |
2 pi (z) dz |
|
2 |
|||||
|
|
|
|||
или после интегрирования
1 |
i ( z) |
exp( |
u 2 |
) du |
z |
pi (u) du . |
|
|
|
2 |
|
||||
2 |
|||||||
|
|
|
|
|
Наличие в последней формуле искомой функции в качестве верхнего предела интеграла Лапласа делает нахождение функции i (z) по этой формуле весьма проблематичным.
Определим величины ij . Так как M{zi z j } rij , то относи-
тельно ij мы имеем уравнение
63
|
|
|
i (u) j (v) |
1 |
|
|
|
|||||
|
|
|
|
|
|
|
||||||
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
2 (1 ij2 ) |
|||||
|
|
|
1 |
|
|
2 |
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
||||
exp |
|
|
|
|
(u |
|
|
2 ij uv v |
|
) dudv rij , |
||
|
|
2 |
) |
|
|
|||||||
|
2(1 ij |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
из которого можно найти ij , по крайней мере, численно.
Пример. Пусть необходимо генерировать вектор
( 1 ,..., n ) с логарифмически нормальным распределени-
ем компонент с известными математическими ожиданиями M{ i } mi , и парными корреляциями M{ i j } Kij , i, j 1, n. Заметим, что плотность логарифмически нормального распределения имеет вид
pi (z) |
|
1 |
|
(ln z ai )2 |
, |
||
|
|
exp |
|
|
|||
z i |
2 |
2 i2 |
|||||
|
|
|
|
||||
а стандартная нормальная величина i |
связана с логарифми- |
|||||||||||||||||||||
чески нормальной величиной i |
соотношениями |
|||||||||||||||||||||
|
ln i ai |
|
, |
|
|
|
exp(a |
|
|
|
), |
i |
|
|
, так как |
|||||||
|
i |
|
i |
1, n |
||||||||||||||||||
|
|
|
|
|||||||||||||||||||
|
i |
i |
|
|
|
|
|
i |
i |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
p |
( y) p |
|
(eai i y ) |
|
d i |
|
|
|
|
|
1 |
e |
y2 |
||||||||
|
|
|
|
|
|
|
||||||||||||||||
|
i |
|
|
|
|
|
2 |
. |
||||||||||||||
|
|
|
|
|
||||||||||||||||||
|
i |
|
|
|
|
|
|
|
dy |
|
|
|
|
2 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Найдем величины ai , i , ij .
64
|
|
|
|
i2 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|||
Так как m M{eai i i } eai |
2 |
|
, |
ln m a |
i |
|
i |
|
, |
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
i |
|
|
|
|
|
|
|
i |
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Kii M{e2ai 2 i i } e2ai 2 i2 |
и ln Kii 2ai |
2 i2 , |
||||||||||||||||||||||
и при i j |
Kij |
|
|
|
|
|
|
|
|
|
|
i2 |
|
|
|
2j |
|
|||||||
M{eai i i ea j j j } eai a j e 2 |
|
|
ij i |
|
j |
|
2 , полу- |
|||||||||||||||||
чим |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ln |
|
Kij |
|
|
|
|
|
|
|||||
|
m2 |
|
, i2 ln |
K |
ii |
|
|
|
|
|
mi m j |
|
|
|
|
|
||||||||
ai ln |
i |
|
|
|
, |
ij |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|||
|
|
mi2 |
|
|
|
|
K |
|
|
|
|
|
|
|
|
|||||||||
|
Kii |
|
|
|
ln |
ii |
|
ln |
K jj |
|
||||||||||||||
|
|
|
|
|
|
|
|
|
mi2 |
m |
2j |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
Таким образом, для генерирования случайного вектора с логарифмически нормальным распределением компонент необходимо сначала по известным значениям Kij , mi , i, j 1, n, найти величины ai , i , ij , затем генерировать случайный вектор ( 1 ,..., n ) со стандартными нормаль-
ными компонентами и ковариациями M{ i j } ij , и, нако-
нец, получить искомый вектор |
|
|
с помощью преобразования i |
eai i i , |
i 1, n. |
Задание для самостоятельной работы
Написать программу генерирования одной реализации случайного вектора (z1 , z2 , z3 ) с логарифмически нормаль-
65
ным распределением компонент, если математические ожидания компонент m1 1, m2 0,7, m3 1,5, а ковариационная
матрица имеет вид
|
2 |
0,5 |
1 |
|
|
0,5 |
1 |
0,5 |
|
K |
. |
|||
|
1 |
0,5 |
4 |
|
|
|
2.4. Генерирование случайных векторов, равномерно распределенных в произвольной n-мерной области и на сфере
Равномерное распределение в n-мерной односвязной об-
ласти (G) генерируется методом исключения так: |
|
|
|
|||||
1) |
область (G) |
|
заключается |
в параллелепипед |
||||
{(x1,..., xn ) : ai xi bi , |
i |
|
} ; |
|
|
|
|
|
1,n |
|
|
|
|
||||
2) |
генерируются 1 ,..., n – реализации случайной вели- |
|||||||
чины, равномерно распределенной в интервале (0, 1); |
||||||||
3) |
вычисляются значения i ai (bi |
ai ) i , |
i |
|
; |
|||
1, n |
||||||||
4) |
проверяется, принадлежит ли полученный вектор обла- |
|||||||
сти (G) . Если ( 1 ,..., n ) (G) , то это и есть искомая реализация случайного вектора, равномерно распределенного в ( G ). В противном случае, все повторяется, начиная с пункта 2), т.е. с генерирования значений 1 ,..., n .
66
Пример 1. |
|
|
|
|
|
|
|
|
|
n |
x |
i |
a |
i |
|
2 |
|
Пусть (G) – эллипсоид {(x1 |
,..., xn ) : |
|
|
|
|
1 } |
||
|
|
b |
|
|||||
|
i 1 |
|
|
|
|
|
||
|
|
|
|
i |
|
|
|
|
центром в точке (a1 ,..., an ) и полуосями bi , i 1, n . Для гене-
рирования случайного вектора ( 1 ,..., n ) , равномерно распределенного в данном эллипсоиде, необходимо:
а) получить n реализаций 1 ,..., n |
случайной величины, |
|||||
равномерно распределенной в интервале (0, 1); |
|
|
|
|||
б) вычислить значения i 2 i 1, |
i |
|
, |
равномерно |
||
1, n |
||||||
распределенные в интервале (-1,1); |
|
|
|
|
|
|
n |
|
|
|
|
|
|
в) если i2 1, то величины i ai bi i , i |
1, n, соста- |
|||||
i 1 |
|
|
|
|
|
|
вят искомую реализацию случайного вектора.
В противном случае следует повторять шаги а) – в) до получения этой реализации.
Задание для самостоятельной работы
Получить выборку объема 1000 реализаций случайного вектора (x, y, z) , имеющего равномерное распределение в
эллипсоиде
(x 1) |
2 |
|
y2 |
|
(z 2) |
2 |
1. |
4 |
|
9 |
16 |
|
|||
|
|
|
|
|
67
Пример 2.
Если (G) – плоский круг, (G) (x, y) : x2 y 2 1 , то можно генерировать случайный вектор, равномерно распределенный в (G) , иначе, чем в общем случае. Будем задавать точки круга в полярных координатах (r, ) , где r и независимые случайные величины с плотностями вероятностей
p(r) 2 r, 0 r 1 и p( ) |
1 |
, 0 2 . |
|
|
|||||||||
|
|
|
|
|
|||||||||
|
|
|
|
2 |
|
|
|
|
|
||||
Тогда |
декартовы |
координаты |
точки |
круга |
(G) |
||||||||
x r cos , |
y r sin |
– это также случайные величины с |
|||||||||||
совместной плотностью вероятностей |
|
|
|
|
|
||||||||
p(x, y) |
p(r(x, y)) p(r(x, y)) |
|
(r, ) |
|
|
1 |
, (x, y) (G) . |
|
|||||
|
|
|
|||||||||||
|
(x, y) |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|||
Но – |
это площадь единичного круга и, |
следовательно, |
|||||||||||
случайный вектор (x, y) равномерно распределен в единичном круге. Исходя из этого, вектор (x, y) генерируют так:
1) генерируют пару равномерных в интервале (0,1) значений 1 , 2 ;
2) вычисляют значения компонент вектора (x, y) по фор-
мулам x
1 cos(2 2 ), y
1 sin(2 2 ) .
68
Сложнее обстоит дело с генерированием равномерного распределения на поверхности. Рассмотрим генерирование равномерного распределения на N -мерной сфере утверждение: если 1 ,..., N независимые стандартные нормальные случайные величины, то случайный вектор ( 1 ,..., N ) с ком-
|
i |
|
|
|
|
|
понентами i |
, |
i 1, N имеет равномерное распре- |
||||
N |
||||||
|
i2 |
|
|
|
|
|
|
i 1 |
|
|
|
|
|
деление на единичной сфере (S) . Это утверждение определяет алгоритм генерирования, согласно которому для получения реализации случайного вектора, равномерно распределенного
на |
N – мерной единичной сфере, необходимо генерировать |
N |
независимых реализаций 1 ,..., N стандартной нормаль- |
ной случайной величины, после чего вычислять значения компонент i искомого случайного вектора по формулам
|
i |
|
|
|
|
|
i |
, |
i 1, N . |
||||
N |
||||||
|
i2 |
|
|
|
|
|
|
i 1 |
|
|
|
|
|
69
2.5. Генерирование случайных векторов других типов
2.5.1. Полиномиальное распределение
Случайный вектор ( 1 ,..., n ) имеет полиномиальное распределение с параметрами N, p1 ,..., pn , если совместная плотность вероятностей его компонент имеет вид
p( y |
|
,..., y |
|
) |
N! |
|
p y1 ...p yn , где целые y |
|
0, |
i |
|
, |
||
|
|
i |
1, n |
|||||||||||
|
|
y1!...yn ! |
||||||||||||
|
1 |
|
n |
|
1 |
n |
|
|
|
|
|
|||
|
|
|
|
y1 ... yn N, |
p1 ... pn 1. |
|
|
|
|
|||||
Алгоритм генерирования реализации вектора : |
|
|
|
|||||||||||
а) генерируем значения |
1 ,..., n случайной |
величины, |
||||||||||||
имеющей равномерное распределение в интервале (0,1);
б) затемдлякаждого i находимвектор (i) с n компонентами
1, |
если p |
|
p ...p |
j 1 |
α |
i |
p |
|
p |
... p |
j |
, |
|
(ji) |
|
0 |
1 |
|
|
|
0 |
1 |
|
|
|||
0, |
в противном случае, |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
N |
|
(i) |
. |
|
|
|
|
|
в) наконец, получаем вектор |
|
|
|
|
|
|
|
||||||
i 1
Задание для самостоятельной работы
Написать программу генерирования одной реализации случайного вектора (y1 , y2 , y3 ) , имеющего полиномиальное
распределение с параметрами
N y1 y2 y3 100, p1 0,2, p2 0,3, p3 0,5 .
70
