Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Vychmat_lektsii / Лекция 14 Monte-Carlo

.doc
Скачиваний:
36
Добавлен:
26.11.2019
Размер:
208.9 Кб
Скачать

Лекция 14

Метод Монте-Карло.

Метод Монте-Карло можно определить как метод моделирования случайных величин с целью вычисления характеристик их распределений. Сам метод слагается из трех составных частей. Это, во-первых, моделирование случайных величин с заданным законом распределения, во-вторых, построение вероятностных моделей реальных процессов (систем) и, наконец, задачи статистической теории оценивания. Его применение оправдано в первую очередь, в тех задачах, которые допускают теоретико-вероятностное описание. Метод оказал и продолжает оказывать существенное влияние на развитие методов вычислительной математики. К разделам науки, где в большей мере используется метод Монте-Карло, следует отнести задачи массового обслуживания, задачи теории игр и математической экономики, задачи теории передачи сообщений при наличии помех и ряд других. Среди других вычислительных методов метод Монте-Карло выделяется своей простотой и общностью. Медленная сходимость является существенным недостатком метода.

Принципиальная основа использования метода Монте-Карло- это теорема Колмогорова или усиленный закон больших чисел.

Теорема:

Чтобы среднее арифметическое независимых (испытаний) реализаций случайной величины сходилось с вероятностью единица к её математическому ожиданию необходимо и достаточно, чтобы математическое ожидание существовало.

Использование центральной предельной теоремы дает возможность оценивать погрешность метода. Для этой цели нужно уметь оценивать дисперсию. Очевидно, что параллельно с оцениваем математического ожидания случайной величины можно оценивать и математическое ожидание квадрата случайной величины и, следовательно, её дисперсию. Считая N достаточно большим и оценку для дисперсии достаточно точной, можно с заданной вероятностью получить неравенство:

,

если p- заданное значение вероятности, то γ находится из соотношения

Исходной случайной величиной при использовании метода Монте-Карло является одномерная равномерно распределенная на промежутке [0,1] случайная величина α, т.е. случайная величина с плотностью распределения

.

В практических расчетах наиболее удобно получать реализации α при помощи алгоритма, построенного на основе реккуррентных соотношений. Числа, полученные таким путем называются псевдослучайными.

Имея в нашем распоряжении реализацию случайной величины α, мы можем получить реализацию случайной величины с заданным законом распределения. Пусть ξ распределена по закону Fξ(x), тогда .

Например:

1), тогда .

2) Если ξ распределена по нормальному закону, имеющему среднее значение равное 0 и дисперсию равную 1, то практически .

3) Пусть требуется получить случайные числа Хi с законом распределения:

f(x) = λ(1- λ/2 x), x € [0,2/λ],

который находит применение при решении задач теории массового обслуживания, тогда

xi = 2/λ(1 - ).

4) Если задана плотность вероятности f(x) = c/(1+bx)2, х € [0, 1/(с – b)], то

Xi = αi/(c – bαi).

5) Аналогично, если случайные величины распределены по релеевскому закону, то

, то

Si = σ.

Это распределение играет существенную роль в радиотехнических задачах.

6) В некоторых задачах приходится оперировать со случайными величинами η, распределенными по закону Парето:

,

тогда η = α-1/β,

особенно легко пользоваться им, если β = 1/k, где k – целое число.

Аналогично можно реализовать дискретные и многомерные случайные величины.

Располагая сведениями, изложенными выше, можно решать практические задачи путем имитации вероятностной модели некоторого реального явления. Особенность метода Монте-Карло состоит в том, что его применение не требует, вообще говоря, формулировки интегро-дифференциального уравнения, описывающего потоки частиц или системы дифференциальных уравнений, описывающей систему массового обслуживания. Н а практике формулировка подобных уравнений и их реализация представляют значительные трудности.

Изложим, по существу, схему моделирования, которая отражает, однако, физическую суть явлений переноса частиц. Пусть имеется некий объем D, заполненный частицами вещества и окруженный вакуумом. Частица характеризуется своим положением в пространстве , временной координатой t, направлением движения – единичным вектором и скоростью V (или энергией E). Таким образом, величины, характеризующие частицу, это точка с семимерном фазовом пространстве (ибо ).

Будем предполагать:

а) Концентрация частиц в объеме мала, так что можно пренебречь их взаимодействием друг с другом, но можно учесть и редкие столкновения.

б) Частицы взаимодействуют с веществом таким образом, что вероятности различных видов взаимодействия не зависят от предыстории частицы.

в) Вещество находится в стационарном состоянии, то есть плотность вещества и ее состав не меняются в зависимости от времени.

При сформулированных предположениях процесс слагается из независимых «историй». Прослеживая эти истории, можно получить различные характеристики процесса. История частиц начинается ее рождением. В области Т фазового пространства координаты частицы задаются функцией распределения источников . Моделируя это распределение в момент времени t0, получим начальные координаты частицы(). Далее частица движется прямолинейно и равномерно(или по параболе, если учитывается влияние гравитации или электромагнитного поля) до столкновения со стенками изучаемого объема или до столкновения с другой частицей. Вероятность столкновения в пути определяется экспериментально или по данным теоретического расчета, если это возможно. История частицы отслеживается до ее выхода из объема или до ее поглощения. Результатами расчета обычно являются некоторые средние значения – например, среднее число частиц, покинувших объем, поглотившихся в некотором объеме и т.п. Более сложными по своей реализации являются задачи, в которых требуется определить распределение частиц в зависимости, от каких либо характеристик (энергии, направления и т.п.).

Метод Монте-Карло позволяет моделировать задачи массового обслуживания, характеризуемые потоком заявок, который задается функцией совместного распределения интервалов времени между поступлениями двух последовательных заявок; наличием некоторого количества обслуживающих приборов. Время обслуживания прибора определяется случайной величиной со своей функцией распределения; заявки, поступающие в момент, когда приборы заняты, образуют очередь; так же заявки характеризуются дисциплиной ожидания и обслуживания, последние определяются некоторыми распределениями вероятностей.

Можем изучать поведение различных популяций, разыгрывая поведение особей внутри сообщества и внешнее влияние на него на базе теории Марковских процессов. При этом оценивается устойчивость популяции или сроки её вымирания.

Можно рассматривать имитации танковых сражений и многое другое.

Рассмотрим применение метода Монте-Карло в вычислительной математике. Метод Монте-Карло является универсальным методом и позволяет стохастически решать те же задачи, что и детерминированные методы вычислительной математики. Разберем некоторые из них:

а) приближенное интегрирование методом Монте-Карло

оценивается с помощью среднего арифметического

,

где xi –независимы и их распределение задается мерой μ.

Характер его сходимости вероятностный.

,

где I(f) –точное значение интеграла

,

дисперсия , , если , то выполняется с вероятностью 0,997, т. е. по правилу «трех сигм» и при условии, что для функции f(x) существует и конечный интеграл .

Вычисление двойных интегралов методом Монте-Карло.

,

,

Цилиндрическое тело, содержащее данный объем V=(b-a)(d-c)T.

,

где

N - количество реализаций;

m - количество реализаций, попавших во внутреннюю часть искомого объема;

- независимые реализации случайной величины равномерно распределенной соответственно для , ,.

Порядок оценки сходимости в этом случае тот же, т.е. .

Этот порядок не зависит от размерности интеграла в методе Монте-Карло, в то время как порядок гарантированных оценок сходимости в детерминированных методах существенно ухудшается с ростом размерности.

б) Метод Монте-Карло решения систем линейных алгебраических уравнений.

Рассмотрим систему линейных алгебраических уравнений, записанную в векторной форме:

АХ = b

А – nxn матрица, Х и b – n-мерные векторы. Пусть имеет место случай, когда пригоден метод простой итерации, т.е. матрица А представима в виде:

А = Е – В

где Е – единичная матрица, а В – матрица, имеющая собственные числа, по модулю меньшие единицы.

Модель строится по принципу Марковского процесса, заканчивающегося с вероятность единица за конечное число шагов. Исходная система эквивалентна:

Х = ВХ + b. (1)

Решение исходной системы представимо в виде:

Х = A-1b. (2)

При сделанных предположениях, сравнивая (1) и (2), обратная матрица может быть выражена рядом:

А-1 = Е + В + В2 + …+ Вn + … (3).

Этот ряд сходится тогда и только тогда, когда l(B)l1. Подставим теперь выражение (3) в (2) и получим:

Х = b + Bb + B2b +…+ Bnb + …

Частные суммы этого ряда можно получить известным итерационным приемом, полагая последовательно Х(1) = b, Х(2) = ВХ(1) = Bb + b,…, Х(к) = ВХ(к-1) = Bk-1b+ Bk-2b + …+ Bb + b, при этом последовательность Х(n) сходится к Х при n  .

Для вычисления Х перейдем к координатной записи. Обозначим элементы матрицы В через Вij, тогда m – я координата вектора Х равна:

Хm = bm + Bmi bi + Bmi1 Bi1i2 bi2 + … + Bmi1 Bi1i2 … Bir-1ir br + … (4)

Вопрос состоит в том, чтобы найти метод вычисления этой суммы. Рассмотрим сначала случай, когда элементы матрицы не отрицательны и сумма элементов по каждой строке равна единице:

Bmi = 1,

тогда величины Bmi можно рассматривать как набор вероятностей для полной системы несовместных событий. Эти события можно рассматривать как выборку шаров из n урн.

Пусть в каждой из n урн лежать шары n различных сортов. Пусть Вmi – вероятность вытащить из m-й урны шар i-го сорта. Вынем наугад шар из m-той урны и образуем случайную величину m, выбрав в качестве ее значения bi, если вынут шар i-го сорта.

Математическое ожидание m равно Еm = Bmi bi, т.е. второе слагаемое ряда (4).

Теперь получим случайную величину, математическое ожидание которой равно третьему слагаемому ряда (4). Для этого обратимся сначала к m-й урне и вынем из нее шар. Если он оказался i1-го сорта, то обратимся к i1-й урне. Если из нее вынут шар i2-го сорта, то положим значение величины m равным bi2. Ясно, что вероятность, с которой случайная величина m принимает значение bi2, равна:

Bmi1 Bi1i2,

тогда математическое ожидание величины m равно:

Еm = Bmi1 Bi1i2 bi2.

Обобщая эти рассуждения и далее, мы получим ряд (4), т.е.

Хm = Em,

тогда, моделируя процесс получения величины m N раз, мы можем принять в качестве приближенного значения искомой величины Хm – среднее арифметическое:

m = (m1 + m2 + … + mN)/N.

Теперь перейдем к нашему случаю. Для этого представим каждый элемент Bmj матрицы B в виде произведения двух сомножителей:

Bmj = Fmj Pmj,

где Pmj  (0,1).

Координаты вектора правой части системы запишем в виде:

bm = Fm Pm,

где Pm  (0,1).

При этом будем предполагать, что выполнено условие:

Pm + Pmi = 1,

тогда равенство (4) можно представить в виде:

Хm = Fm Pm + Fmi Fi Pmi Pi + … + Fmi1 Fi1i2 Fi2i3 … Fir-1ir Fir Pmi1 … Pir-1ir Pir (5).

Пусть у нас имеется n урн, в каждой из которых лежат шары n+1-го сорта. Вероятности вытащить из к-ой урны шар одного из сортов равны:

Pk1, Pk2, … , Pkn, Pk.

Начнем с m-ой урны, и вынем из нее шар. Если вынут шар сорта i1 (i1  n), то затем нужно обращаться в i1-ю урну. Если же вынутый шар n+1-го сорта, то дальнейшее обращение к урнам на этом прекращается и в этом случае в качестве значения для случайной величины m берется число Fm. Если шар n+1-го сорта оказался вынутым из

ir-ой урны после того, как последовательно вынимались шары из урн с номерами: m, i1, i2, … , ir-1, то значение величины m полагается равным:

Fmi1 Fi1i2 … Fir-1ir Fr.

Вероятность того, что случайная величина m примет данное значение, равна:

Wmi1i2…ir = Pmi1 Pmi2 … Pir. (6)

Математическое ожидание величины m:

Em = Wmi1i2…ir Fmi1 Fi1i2 …Fir. (7)

Подставим (6) в (7) и сравнивая с (5), получим:

Xm = Em.

Таким образом, моделирование случайной величины m позволяет получить Хm с определенной вероятностью. Преимущество изложенного метода решения состоит в том, что при обычном методе решения систем линейных уравнений для вычисления одного неизвестного нужно определять и все остальные, в приведенном способе этого делать не нужно, ибо каждый раз определяется одна координата. Это означает, что число арифметических операций пропорционально числу уравнений, а не кубу этого числа, как в численных методах. Отсюда видно, что и здесь проявляется одна из основных черт метода Монте-Карло – его эффективность при решении многомерных задач.

в) Решение задачи Дирихле методом Монте – Карло.

∆U(x,y) = 0 (x,y) € G, U(x,y) │(x,y) € Г = φ(x,y),

Г – контур, ограничивающий область G, кусочно-гладкая кривая.

В области G строим квадратную сетку Sh с шагом h,

xi = x0 + ih, yi = y0 + jh (i, j = 0 ± 1, ± 2, ± 3, …),

где ∆xi = xi+1 – xi = h ∆yi = yi+1 – yi = h (h>0).

Граничные узлы сетки Sh образуют ее границу Гh , т.е. граничные узлы – ряд точек Mpqp , yq), аппроксимирующий криволинейную границу Г области G с точностью до h.

Пусть точка M блуждает равномерно по узлам сетки (1), т.е., находясь во внутреннем узле Mij (xi , yj). Эта частица за один переход с вероятностью р = ¼ может переместиться в один из четырех соседних узлов, причем каждый такой переход не зависит от положения частицы на сетке и от ее прошлой историю. Блуждание частиц заканчивается как только она попадет на границу Гh – это поглощающий экран. Доказано, что с вероятностью р = 1 блуждание точки М через конечное число шагов закончится на границе. Если частица М начала свое блуждание с фиксированной точки изнутри Мi0j0 сетки Sh , то конечная совокупность последовательных положений этой частицы:

Мi0j0 , Мi1j1 , … , Мisjs , где Мisjs принадлежит Г, но при k = 0, 1, 2, … , S – 1

М ikjk не принадлежит границе Г, тогда эта последовательность называется траекторией частицы или историей ее блуждания. Пусть в точках границы Г определена функция φ(x,y). Перенесем это значение на границу Гh сетки Sh . Для каждого граничного узла Mpqp , yq), принадлежащего границе Гh определим ближайшую по горизонтали или вертикали точку N, принадлежащую границе Г и положим

φ(Mpq) = φ(N) = φ(хp , yq) = φpq . Пусть вероятность Р(i, j, p, q) – есть вероятность того, что траектория частицы, вышедшей из узла Мij сетки Sh , закончится в граничном узле Mpq , принадлежащим Гh .

Составим сумму Vij = φpq.

Эту сумму можно рассматривать как математическое ожидание функции φ(x, y) на границе Гh для траекторий, начинающихся в точке Мij . Причем оказывается, что искомые неизвестные Uij задачи Дирихле можно рассматривать как математические ожидания Vij .

Рассмотрим достаточно большое число N равномерных случайных блужданий частицы по узлам сетки Sh , исходящих из фиксированного узла Мij и заканчивающихся на границе Г. Пусть (, ), при k = 1, 2, … , N соответствующие точки выхода частицы на границу Гh . Заменяя математическое ожидание Vij эмпирическим математическим ожиданием, будем иметь

Uij ≈ Vij = 1/N.

Эта формула дает статистическую оценку величины Uij и может быть применена для приближенного решения задачи Дирихле.

Недостатком рассмотренного метода для задачи Дирихле является слабая сходимость по вероятности при эмпирического математического ожидания:

= 1/N,

к математическому ожиданию Vij = Uij .

Естественно, что блуждание частицы М, начинающееся в точке Мij , автоматически является случайным блужданием частицы, начинающейся в любой промежуточной точке траектории этой частицы.