Соболь И.М. Численные методы Монте-Карло (1973) (1186217), страница 14
Текст из файла (страница 14)
Предположим лишь, что существует достаточно простой алгоритм, позволяющий определить, принадлежит ли области В любая заданная точка 1х, у) или нет. Выберем прямоугольник П=1а1(х(Ь1, а2(у(Ь2), содержащий область В 1рис. 32). Координаты случайной Ряс. 32.
Рис. 33. точки Я'= 2$'„ 21'), равномерно распределенной в П, легко вычислить 1п. 2.1): я =01+Т11Ь1 п1) 11 =В2+Т21Ь2 о2). Для нахождения точен. 6, равномерно распределенных в В, можно вычислять точки 6', равномерно распределенные в П, и отбирать среди них те, которые принадлежат В. В самом деле, для любой области 6 = В Р ЯЕН6) =Р Я'еи 6) ) 6'а= В) =Р Я'я 6) Р Я'~В). Так как 6' равномерно распределена в П, то вероятность попадания 6' в любую область пропорциональна площади этой области: РЯ'еи6) =52/5в, РЯ'ЕНВ) = =52/5п Следовательно, Р Я~ 6) =5,/5,. или, что то же, плотность рч1х, у) =1/5 в области В. Эффективность такого метода равна отношению плошадей а=52/5П.
61 МВТОДЫ ОТБОРА 4 з1 Поэтому э будет наибольшей тогда, когда площадь П минимальна — результат очевиднь~й геометрически. Ясно также, что в тех случаях, когда область В хорошо вписывается, например, в круг С (рис. 33), лучше не пользоваться прямоугольником П, а отбирать точки Я из числа точек Я', равномерно распределенных в С. Эффективность такого метода э=5„/Яс будет выше, ибо Яо<ЯП Пример.
Случайные точки Я=Я,кь ь), равномерно распределенные в шаре ха+уз+хе<)1з, лгожно выбирать следующим образом: 1) находим три случайных числа уь уе, ум 2) вычисляем координаты $'=2у, — 1, г)'=2уз — 1, Г=2уз — 1; 3) если Я')з+(ч')з+(ь')з(1, то полагаем 5=Щ, ч=)сч', ( )гь', в противном случае выбираем новую тройку уь уз, уз. Эффективность метода э=(4/3)п(гз: (2(г]з=и/6. Несмотря на то, что э близка к 1(2, по полученным здесь формулам случайные точки в шаре вычисляются быстрее, чем по формулам п. 2.4.1, в которых приходится вычислять ~/у, и соз 2пуэ 5.6. Алгоритмы, соответствующие методам отбора. Формула (36) не определяет полностью алгоритма для расчета значений 5, так как вычислять значевия Я' можно различными методами.
Если кажлая точка Я' вычисляется по л случайным числам уь ..., у„, где и~т, то все координаты Я' представляют собой функции Чг= Кг (уь ..., у ), г=1, 2...,, т. Подставив эти выражения в (36), получим, что й=гр(д,(у„..., у„),..., дм (уь..., у„)). Следовательно, выражается через уь ..., у„по формуле вила $=д(уь ., у„), Рассмотрим теперь преобразование рг = дг(хю..., х„), 1 ( 1 . т, (44) которое отображает единичный и-мерный куб К" = (О ( хт ( 1,..., О ( х„(1) на область возможных значений Я' в т-мерном пространстве переменных уь..., р .
Обозначам через В прообраз В' при отображении (44) (иными словами,  — это множество таких точек (х, ...,х„) из К", которым при отображении (44) соответствуют точки (уь...,у ) принадлежащие В'). Тогда условие 1)'тВ', фигурирующее в (36), равносильно условию (уь ..., у ) гв В, Итак, формуле (36) соответствует следующий алгорвтм расчета 5 по уь ..., у„: Д (Уг ' Ул) ггйи (Ую'''' 'Гл)нВ, (451 Форыально можно считать, что (45) — это частный случай (36), так 6 И. М.
Соболь 62 ПРЕОБРАЗОВАНИЯ СЛУЧАЙНЫХ ВЕЛИЧИН (ГЛ г как вместо точки О' с произвольной функцией распределения УО, здесь фигурирует точка (уь Т„), равномерно распределенная в К". Однако наши рассуждения показывают, что реализация любой формулы (36) в конечном счете осуществляется с помощью алгоратма (45), где, возможно, п)т, Эффективность этого алгоритма равна э=(тн объему (и-мер- ному) области В.
Еще раэ напоминаем, что количество случайных чи- сел, затрачиваемых на расчет одного значения $, случайно и может оказаться равным п, 2п, Зп, ...; в среднем это количество равно и/з. Функцию распределения случайной величины 6, заданной алго- ритмом (45), нетрудно вычислить: Р (6 ( г) = Р (о (ут,..., Тн) с г ( (ут,..., уп) и В) = Р(ь" (Ут,..., Тп) (г, (ут ° ° У„) НВ)/Р((Ут,..., У„) НВ) = (ИВ) г )г ... ~е (г — у(хт,..., х„)) йхт...йхп. в Следовательно, для того чтобы алгоритм (45) определял случайную величину $ с функцией распределения Е(х), должно выполняться условие 1 — ) ... ) е (х — у (х,,..., х„)) йхт...
йх„= Р (х). (46) Уравнение (46) можно рассматривать как обобщение уравнения (25], которое получается из (46) при В = К" Общий алгоритм методов отбора (45) можно считать частным случаем бесионечномерного преобразования 5=у(уь , ТП ), (47) когда каждое значение $ вычисляется по бесконечной последовательности независимых случайных чисел. Такие преобразования встреча.
ются в практике метолов Моите-Карло. Если пРи каждом конкРетном набоРе хт,..., хп ... фУнкцин д зависит лишь от конечного количества аргументов хе, то расчет по формуле (47) затруднений не представляет. Это как раз справедливо для алгоритма (45), когда функция п(х,,..., х,,...) рвача л (хт,..., х„), если (хт,..., х„) н В, у(ха+И..., х „), если (х,,..., х„)фВ, (хпт! хгп)я В если (х,,..., хп)юВ, и (Хан+1' ' ' ' ' Ап.~-п)' упплх(пения к сланя 3 5.7, Заключительные замечания.
При выборе алгоритмов для расчета методами Монте-Карло различных задач возникает вопрос, какие же преобразования использовать для моделирования той нлн иной конкретной случайной величины $. Ответить на такой вопрос однозначно нельзя. Целесообразность тех илн иных преобразований зависит от многих факторов. Например, часто стремятся к минимизации времени, затрачиваемого на получение одного значения $.
Однако за такую минимизацию приходится расплачиваться удлинением программы и (или) расходом места во внутреннем накопителе ЭВМ. Если во внутреннем накопителе места много, то можно использовать таблицу с интерполяцией (см, конец п. 1.3): такой способ будет, как правило, самым быстрым. Поэтому выбор любого другого способа моделирования — это компромиссе). Далее, выбирая преобразования, редко учитывают качество псевдослучайных чисел. Но одномерное распределение чисел 7, обычно тшательпо проверено, а распРеделение гРУпп (7,„+ь ..., 7,„е„) пРи п)3 пРовеРЯ- ется хугке, в результате чего формула вида $=д(уь ... ..., 7„) при а)3 может оказаться менее точной, чем формула вида $=д(7).
Поэтому уменьшение количества случайных чисел, затрачиваемых на получение одного значения $, иногда представляется весьма желательным (особенно с точки зрения гл. 7). К счастью, при расчете многих задач время, затрачиваемое на преобразование случайных величин, не слишком велико, и можно выбирать самые простые и естественные способы моделирования.
Упражнения а главе 2 1. Вывести явную формулу для расчета значений случайной величины й с функцией распределения г" (х) =1 — (1(3)(2е "+е з"), О<я ч. со. ') Еще быстрее — осуществлять случайную выборку из заранее заготовленной таблицы значений в Для некоторых случайных вели. чин такие таблицы имеются (165], однако в расчетах на ЭВМ применяются они редко (ср, конец и. 13 гл.
1). Интересно отметить, что точно так же можно использовать таблицу для моделирования случайной величины, значения которой по. лучают экспериментально и функция распределения которой иензве. стна (даже в многомерном случае). ьт ~РЕОБРАЗОВАНИЯ СЛУЧАЙНЫХ ВЕЛИс!ИН !Гл 3 2.
Вынести явную формулу для расчета значений случайной величины в с плотностью распределения р(х) =сов'2яглх, 0<х<2; число т) 1 целое. 3. Вывести явные формулы для расчета случайных точек, равномерно распределенных в плоском кольце Е~! < х + у < Е~.
4. Вывести явные формулы для расчета реализаций случайной точки ($, 0) с плотностью р(х, у) =Зу, определенной в треугольнике, ограниченном прямыми х=О, у=х и и=1. 5. Вы ~ислить плотность случайной величины 2=э) — !ну, если 11 имеет плотность р(х) при 0<а< аа (ц и у независимы). 6. Доказать, что случайную величину с, определенную в интерва. ле 0<х<1, с плотностью ( х ) а а а х / ( ! а г г ) можно моделировать с помощью любой нз четырех формул: $ — (1/а) 1п (1 -- у (1 — а а!)); $ = — (1/а) 1п(у+(1 — у) а Г); Е = /Д( — (а1) 1!п у); Е = — (1/а) 1пу, если 5 <1.
7. Если гамма-квант с энергией Е рассеивается в результате комптон-эффекта, то его энергия после рассеяния $ представляет со. бой случайную величину с плотностью р(х), пропорциональной функции /(Е, х) =х/Е+Е/х+(1/Š— 1/х) (2+!/Š— 1/х) при Е(1+2Е)-'<х<Е (закон Клейна — Нишина). Доказать, что Б можно вычислять методом отбора: $ $', если уз(1+2Е+(+2Е)-'1</(Е, ~'), где и' Е(!+2Еу~) (1+2Е) (И. Г.
Дядькин (26]), 8. Энергию нейтрона, испущсппого при делении ядра (рм, часто считают случайной величиной Б, определенной при 0<х< са, с плот. пастью р(х) =се югз)г Ь э'2х/Т, где Ь и Т вЂ” параметры,с=г'2/ле ь!э(ЬТ) ' — нормировочная пос- тоянная. Доказать, что В можно вычислять по формуле $=Т((1/2) (~+Ь)в — !ну), где ь — нормальная случайная величина с параметрами (О; 1); ь н у независимы. (Г. А. Михайлов (56)) 9.