1 2 3 4 5 12 1.2.2 Сущность метода Монте-Карло Важнейший прием построения методов Монте-Карло — сведение задачи к расчету математических ожиданий. Пусть требуется найти значение m некоторой изучаемой величины. С этой целью выбирают такую случайную величину X, математическое ожидание которой равно m : M [X] = m. Практически же поступают так: вычисляют (разыгрывают) N возможных значений x i случайной величины X, находят их среднее арифметическое ¯ x = 1 N N P i=1 x i . Так как последовательность одинаково распределенных слу- чайных величин, у которых существуют математические ожидания, под- чиняется закону больших чисел, то при N → ∞ среднее арифметическое этих величин сходится по вероятности к математическому ожиданию. Та- ким образом, при больших N величина ¯ x ≈ m. В методе Монте-Карло данные вырабатываются искусственно путем ис- пользования некоторого генератора случайных чисел в сочетании с функ- цией распределения вероятностей для исследуемого процесса. Таким ге- нератором может быть таблица, колесо рулетки, подпрограмма ЭВМ или какой-либо другой источник равномерно распределенных случайных чи- сел. Подлежащее разыгрыванию распределение вероятностей может быть основано на эмпирических данных, извлекаемых из ранее сформированных записей, или на результатах последнего эксперимента либо может представ- лять собой известное теоретическое распределение. Таким образом, для применения метода Монте-Карло необходимо уметь разыгрывать случайную величину. Приведем так называемые правила для разыгрывания случайных вели- чин. Введем обозначения: R — непрерывная случайная величина, распреде- ленная равномерно в интервале (0, 1); r i (i = 1, 2, ...) — случайные числа (возможные значения R). Правило 1. Для того, чтобы разыграть дискретную случайную вели- чину X, заданную законом распределения X x 1 x 2 x n p p 1 p 2 p n надо: 13 1. Разбить интервал (0, 1) оси Or на n частичных интервалов; 2. Выбрать (например, из таблицы случайных чисел) случайное число r i Если r i попало в частичный интервал, то разыгрываемая величина приняла возможное значение x i Правило 2 (Метод обратных функций). Для того чтобы разыграть возможное значение x i непрерывной случайной величины X, зная ее функцию распределения F (x), надо выбрать случайное число x i , прирав- нять его функции распределения и решить относительно x i полученное уравнение F (x i ) = r i Правило 3. Для того, чтобы разыграть возможное значение x i непре- рывной случайной величины X, зная ее плотность вероятности f (x), надо выбрать случайное число r i и решить относительно x i уравнение x i Z −∞ f (x)dx = r i , (1.14) или уравнение x i Z a f (x)dx = r i (1.15) где a – наименьшее конечное возможное значение X. 14 1.2.3 Погрешность метода Монте-Карло Для оценки величины m смоделируем такую случайную величину X, что ее математическое ожидание M [X] = m. Выберем N независимых реализаций x 1 , . . . , x N случайной величины X и вычислим среднее ариф- метическое ¯ x = 1 N N X i=1 x i Предположим дополнительно, что случайная величина X имеет конеч- ную дисперсию D[X] = M [X 2 ] − (M [X]) 2 По центральной предельной теореме: P ( | ¯ X − m| < t β r D[X] N ) ≈ 2Φ(t β ) = β. (1.16) Величина ε = t β r D[X] N (1.17) называется верхней границей ошибки с коэффициентом доверия β. Из формулы (1.17) видно, что для того, чтобы уменьшить ошибку в 10 раз (иначе говоря, чтобы получить в ответе еще один верный десятичный знак), нужно увеличить N в 100 раз. Задаваясь значениями ε и β при известном σ = pD[X] можно опреде- лить необходимое число испытаний N , обеспечивающих точность ε с на- дежностью β: N = σ 2 · t 2 β ε 2 (1.18) Однако при решении конкретных задач обычно величина σ оказывается неизвестной. Поэтому определение приближенного значения σ требует до- полнительных рассмотрений. В процессе вычисления можно поступить так. Назначается ориентировочно предварительное число испытаний N = N 0 Затем по результатам N 0 испытаний определяется приближенное значение дисперсии: S 2 = 1 N 0 N 0 X i=1 x 2 i − 1 N 0 N 0 X i=1 x i ! 2 (1.19) 15 Располагая S 2 , можно найти приближенное значение N : N = S 2 · t 2 β ε 2 (1.20) Если окажется, что N > N 0 , необходимо провести дополнительные испы- тания. 16 1.3 Генераторы случайных чисел Для моделирования случайных процессов, связанных с применением ме- тода Монте-Карло, необходимы случайные числа. Поскольку при вычислениях методом Монте-Карло существенное коли- чество операций расходуется для оперирования над случайными числами, то наличие простых и экономных способов формирования последователь- ности случайных чисел во многом определяет возможность практического использования этого метода. В качестве исходной совокупности случайных чисел, используемых для образования случайных элементов различной природы, необходимо вы- брать такую совокупность, которая может быть получена с наименьши- ми, по возможности, затратами машинного времени и, кроме того, обес- печивает простоту и удобство дальнейших преобразований. Обычно счи- тают, что этим требованиям удовлетворяет совокупность случайных чисел с равномерным распределением в интервале (0, 1). Исходя из равномерно распределенных случайных чисел, можно конструировать как случайные события, возникающие с любой заданной вероятностью, так и случайные величины, обладающие практически любым законом распределения. Напомним основные свойства равномерного распределения. Непрерыв- ная случайная величина R имеет равномерное распределение в интервале (a, b), если ее функция плотности равна f (x) = 1 b−a при a ≤ x ≤ b, 0, вне этого интервала. (1.21) Функция распределения случайной величины R имеет вид F (x) = 0, при x < a, x−a b−a при a ≤ x ≤ b, 1, при x > b. (1.22) Математическое ожидание и среднее квадратическое отклонение соответ- ственно равны M [R] = a + b 2 , σ R = b − a 2 √ 3 (1.23) 17 В частном случае равномерного распределения в интервале (0, 1): f (x) = 1 при 0 ≤ x ≤ 1, 0, вне этого интервала, (1.24) F (x) = 0, при x < 1, x при 0 ≤ x ≤ 1, 1, при x > 1, (1.25) а математическое ожидание и среднее квадратическое отклонение соответ- ственно равны M [R] = 1 2 , σ R = 1 2 √ 3 (1.26) Как правило, в качестве стандартной выбирают непрерывную случай- ную величину ξ, равномерно распределенную в интервале (0,1). Заметно реже в качестве стандартной используют дискретную случайную величи- ну η, которая с одинаковой вероятностью может принимать 10 значений 0, 1,..., 9. Мы будем называть величину ξ случайным числом, а величину η случайной цифрой. Иногда η называют десятичной случайной цифрой, чтобы отличить ее от двоичной случайной цифры. Чтобы установить связь между ξ и η, разложим число ξ в бесконечную десятичную дробь: ξ = 0.η 1 η 2 ...η k Последняя запись означает, что ξ = ∞ X k=1 η k · 10 −k Т е о р е м а. Десятичные цифры η 1 , ..., η k , ... – случайного числа ξ представляют собой независимые случайные цифры. Обратно, если η 1 , ..., η k , ... — независимые случайные цифры, то ξ = 0.η 1 η 2 ...η k ... опре- деляет случайное число. В вычислениях всегда используют числа с конечным количеством деся- тичных знаков, поэтому вместо случайных чисел ξ употребляют конечные десятичные дроби e ξ = 0.η 1 ...η n Таблицы случайных цифр. Предположим, что мы осуществили N независимых опытов, в результате которых получили N случайных цифр η 1 η 2 ...η N . Записав эти цифры (в порядке появления) в таблицу, получим то, что называется таблицей случайных цифр (см. Приложение 1, где цифры 18 объединены в группы только ради удобства чтения). Способ употребления такой таблицы весьма прост. Если в ходе расчета некоторой задачи нам по- требуется случайная цифра η, то мы можем взять любую цифру η s из этой таблицы. Если нам понадобится случайное число ξ, то мы можем взять из таблицы n очередных цифр и считать, что ξ = 0.η s η s+1 ...η s+n−1 . Выбирать цифры из такой таблицы в случайном порядке не обязательно. Их можно выбирать подряд. Но, конечно, можно начинать с любого места, читать в любом направлении, использовать любой заранее заданный алгоритм вы- бора, не зависящий от конкретных значений цифр таблицы. Все сказанное выше относится к «идеальной» таблице случайных цифр и не вызывает никаких сомнений. Изготовление хорошей таблицы — весьма сложное дело, ибо в любом реальном опыте всегда возможны ошибки. Про- верка «качества» таблицы абсолютно необходима. Для этого существуют тесты для проверки случайных цифр. В настоящее время таблицы случайных цифр (или более разнообразные таблицы случайных величин) используют главным образом при расчетах вручную; для расчетов на ЭВМ ими практически не пользуются. Достоинства метода: • проверка однократная; • воспроизводить числа можно. Недостатки метода: • запас чисел ограничен; • занимает много места в накопителе или медленно вводится; • нужна внешняя память. Ограниченность объема существующих таблиц, — по-видимому, играет вто- ростепенную роль: можно заготовить таблицу любого объема, если это по- требуется. Датчики случайных чисел. Чаще всего для построения датчика ис- пользуют «шумящие» радиоэлектронные приборы (диоды, тиратроны, га- зотропы и др.). Не вдаваясь в технические подробности, рассмотрим один из возможных способов построения датчика, вырабатывающего случайные двоичные цифры α. Нетрудно представить себе счетчик, который подсчи- тывает количество ν флуктуаций напряжения шумящего прибора, превы- шающих заданный уровень E 0 за фиксированное время ∆t. 19 Рис. 1.1: Флуктуации напряжения шумящего прибора Еще проще устроить счетчик, который выдавал бы число ν(mod2), т. е. 0 при четном ν и 1 при нечетном ν. Если вероятности появления 0 и 1 в таком процессе равны между собой, то можно считать, что устройство вырабатывает случайную последовательность двоичных цифр. Обычно датчики случайных чисел содержат m генераторов описанного типа, работающих независимо, так что датчиком выдается приближенное случайное число ξ = 0.α 1 ...α m , записанное в форме m-разрядной двоичной дроби. Для случайных чисел отведена специальная ячейка в накопителе, и скорость генерирования их столь велика, что на каждом такте работы ЭВМ в этой ячейке получается новое случайное число. Достоинства метода: • запас чисел неограничен; • сверхбыстрое получение; • места в накопителе не занимает. Недостатки метода: • проверка периодическая; • воспроизводить числа нельзя; • требуется специальное устройство. Псевдослучайные числа. Пригодность случайных чисел определя- ется в конечном счете не процессом их получения, а тем, удовлетворяют ли они некоторым принятым тестам. Но в таком случае совершенно без- различно, как эти числа получены, они могут быть даже сосчитаны по какой-нибудь формуле, лишь бы они удовлетворяли тестам. 20 Числа ξ 1 , ξ 2 , ..., ξ N , которые вычисляются по какой-либо заданной фор- муле и могут быть использованы вместо случайных чисел при решении некоторых задач, называются псевдослучайными числами. Большинство алгоритмов, используемых на практике для получения псевдослучайных чисел, представляют собой рекуррентные формулы пер- вого порядка ξ n+1 = F (ξ n ), (1.27) где начальное число ξ 0 задано. Важной чертой алгоритмов вида (1.27) является то, что при реализации их на ЭВМ они всегда порождают периодические последовательности. Достоинства метода: • проверка однократная; • воспроизводить числа можно; • быстрое получение; • места в накопителе занимает мало; • внешние устройства не нужны. Недостаток – запас чисел ограничен. Метод псевдослучайных чисел – самый удобный с практической точ- ки зрения. Это подтверждается также всей практикой расчетов методами Монте-Карло. 21 1.4 Интегрирование с помощью метода Монте-Карло 1.4.1 Способ усреднения подынтегральной функции Рассмотрим интеграл вида I = b Z a ϕ(x)dx. (1.28) Введем в рассмотрение случайную величину X, распределенную равно- мерно в интервале интегрирования (a, b) с плотностью f (x) = 1 b−a . Тогда математическое ожидание M [ϕ(x)] = b Z a ϕ(x)f (x)dx = 1 b − a Z b a ϕ(x)dx. (1.29) Отсюда b Z a ϕ(x)dx = (b − a)M [ϕ(x)]. (1.30) Заменив математическое ожидание M [ϕ(x)] его оценкой – выборочной средней, получим оценку интеграла (1.28) I ∗ 1 = (b − a) N P i=1 ϕ(x i ) N , (1.31) где x i – возможные значения случайной величины X, N – число испытаний. Так как случайная величина распределена равномерно в интервале (a, b) с плотностью f (x) = 1 b−a , то x i разыгрываются по формуле 1 b − a x i Z a dx = r i (1.32) Отсюда x i = a + (b − a)r i , где r i - случайное число. 22 Таким образом, в качестве оценки определенного интеграла (1.28) при- нимают (1.31). Дисперсия усредняемой функции ϕ(X) равна σ 2 = b Z a ϕ 2 (x)f (x)dx − (M [ϕ(X)]) 2 (1.33) Если точное значение дисперсии вычислить трудно или невозможно, то находят выборочную дисперсию (при N > 30), S = N X i=1 u 2 i N − N X i=1 u i N ! 2 , (1.34) или исправленную дисперсию (при N < 30) S = 1 N − 1 · N X i=1 u 2 i N − N P i=1 u i 2 N , (1.35) где u i = ϕ(x i ). Эти формулы для вычисления дисперсии применяют и при других способах интегрирования, когда усредняемая функция не совпадает с подынтегральной функцией. Пример 1.1 Найти: а) оценку определенного интеграла I = 3 R 1 (x + 1)dx; б) абсолютную погрешность |I − I ∗ |; в) минимальное число испытаний, которые с надежностью 0.95 обеспе- чат верхнюю границу ошибки 0.1. Решение. а) Используем формулу I ∗ 1 = (b − a) N P i=1 ϕ(x i ) N 23 По условию, a = 1, b = 3, ϕ(x) = x + 1. Примем для простоты число испытаний N = 10. Тогда оценка I ∗ 1 = 2 · 10 P i=1 (x i +1) 10 , где возможные значения x i разыгрываются по формуле x i = a + (b − a) · r i = 1 + 2 · r i Результаты десяти испытаний приведены в таблице. Случайные числа r i взяты из таблицы Приложения 1. Номер испытания, i 1 2 3 4 5 6 7 8 9 10 r i 0.100 0.973 0.253 0.376 0.520 0.135 0.863 0.467 0.354 0.876 i + 2r i 1.200 2.946 1.506 1.752 2.040 1.270 2.726 1.934 1.708 2.752 x i + 1 2.200 3.946 2.506 2.752 3.040 2.270 3.726 2.934 2.708 3.752 Из таблицы находим 10 P i=1 ϕ(x i ) = 29.834. Искомая оценка I ∗ 1 = 2 · 29.834 10 = 5.967 б) Приняв во внимание, что I = 3 R 1 (x + 1)dx = 6, найдем абсолютную погрешность |6 − 5.967| = 0.033 в) Найдем дисперсию усредняемой функции ϕ(X) = X + 1, учитывая, что случайная величина X в интервале интегрирования (1, 3) распределена равномерно и ее дисперсия D[X] = (3 − 1) · 2 12 = 1 3 σ 2 = D[X + 1] = D[X] = 1 3 Найдем минимальное число испытаний, которые с надежностью 0.95 обеспечат верхнюю границу ошибки ε = 0, 1. Из равенства Φ(t) = 0.95/2 = 0.475 по таблице Приложения 2 находим t = 1.96. Искомое минимальное число испытаний N = t 2 · σ 2 ε 2 = 1.96 2 · 1 3 0.1 2 = 128. 24 Пример 1.2 В качестве приближенного значения интеграла I = π/2 R 0 cos xdx принята оценка (1.31). Найти минимальное число испытаний, при котором с надежностью 0.95 верхняя граница ошибки δ = 0.1. Решение. Найдем дисперсию усредняемой функции ϕ(x) = cos X, учитывая, что случайная величина X распределена равномерно в интер- вале (0, π 2 ) с плотностью f (x) = π 2 : σ 2 = π 2 π/2 Z 0 cos 2 xdx − π 2 π/2 Z 0 cos xdx 2 = 0.09. Из равенства Φ(t) = 0.95/2 = 0.475 по таблице приложения (2.7) нахо- дим t = 1.96. Искомое минимальное число испытаний N = t 2 · σ 2 ε 2 = 1, 96 2 · 0, 09 0, 1 2 = 35. 25 1.4.2 Способ существенной выборки, использующей вспомога- тельную плотность распределения Для вычисления интеграла (1.28) введем функцию f (x) - плотность рас- пределения вспомогательной случайной величины X в интервале интегри- рования (a, b), т.е. b Z a f (x)dx = 1. (1.36) Представим (1.28) так I = b Z a ϕ(x) f (x) · f (x)dx. (1.37) I представлен в виде математического ожидания функции F (X) = ϕ(X) f (X) В качестве оценки этого математического, а следовательно равного ему интеграла (1.28), примем выборочную среднюю I ∗ 2 = 1 N N X i=1 ϕ(x i ) f (x i ) (1.38) Отметим, что желательно выбрать f (x) так, чтобы по возможности от- ношение ϕ(x) f (x) было постоянным, поскольку в этом случае реализуется ми- нимальная дисперсия, т.е. погрешность будет минимальна ([3], стр. 109.). Таким образом, в качестве оценки интеграла (1.28) принимают (1.38), где f (x) – плотность распределения вспомогательной случайной величины X, где x i – возможные значения случайной величины X, которые разыг- рываются по формуле x i R a f (x)dx = r i ; N – число испытаний. Пример 1.3 1 2 3 4 5 |