67
Т а б л и ц а С.3 — Генератор псевдослучайных чисел Бокса-Мюллера
Входной параметр
Нет
Выходной параметр
z1, Два случайных значения, полученных независимо из стандартного нормального распределения
z 2
Алгоритм вычисления
- Независимо генерируют случайные числа r1 и r2 из R(0,1);
- z1 = т]-2 lnr.| cos 2nr2 и z2 = ^j-2 lnr, sin2nr2.
П р и м е ч а н и е 1 — Если V — положительно определенная матрица (т. е. все ее собственные значения строго положительны), то множитель Холецкого R единственен [23, страница 204].
П р и м е ч а н и е 2 — Если V не является положительно определенной матрицей, то из-за возможных ошибок округления или других причин R может не существовать. Более того, в случаях, когда одно или несколько собственных значений V хотя и положительны, но очень малы, программная реализация алгоритма факторизации Холецкого может оказаться неспособной сформировать матрицу R из-за ошибок округления в арифметике с плавающей запятой. В любой из этих ситуаций рекомендуется вносить в V малые возмущения таким образом, чтобы множитель R для «возмущенной» матрицы V был хорошо определен. Простая процедура внесения возмущений описана в [49, страница 322] и реализована в генераторе MULTNORM [45].
П р и м е ч а н и е 1 — Если V положительно полуопределенная матрица, тогда ее можно представить в виде V = QЛQT, где Q — ортогональная матрица, Л — диагональная матрица. Тогда матрица Л112От может быть использована вместо R для формирования выборки из N(0, V) даже в случае матрицы V неполного ранга.
Т а б л и ц а С.4 — Генератор случайных чисел из многомерного нормального распределения
Входной параметр
n Размерность многомерного нормального распределения м Вектор математических ожиданий размерности n ■ 1 V Ковариационная матрица размерности n ■ n
q Число генерируемых векторов, состоящих из псевдослучайных чисел
Выходной параметр
X Матрица размерности n ■ q, j-й столбец которой — генерированный случайный вектор из многомерного нормального распределения
Алгоритм вычисления
- Для матрицы V формируют множитель Холецкого R, т. е. верхнюю треугольную матрицу, удовлетворяющую условию V = RTR (для генерирования q векторов факторизацию матрицы V необходимо выполнить только один раз).
- Генерируют массив Z размерности n ■ q чисел из стандартного нормального распределения.
- Вычисляют X = м1т + RTZ,
где 1 — вектор-столбец, состоящий из единиц и имеющий размерность q ■ 1.
С.5.3 На рисунке C.1 показано 200 точек, полученных с использованием генератора MULTNORM [45] из N(m, V), где