друг к другу на соседних узлах и отделенных от других частиц по крайней мере первой координационной сферой (рис. 11.17), называется кластером. В системе может существовать кластер, который свяжет слева направо или снизу вверх всю систему – стягивающий кластер (рис. 11.18). Это означает, что в системе достигнут предел перколяции.
Рис. 11.17. Кластеры частиц в задаче перколяции
Рис. 11.18. Пример стягивающего кластера. В системе возможно протекание снизу вверх
Вероятность появление стягивающего кластера связана с параметром задачи – вероятностью p: для данного линейного размера решетки L при p < pc (L) на решетке существуют только
конечные кластеры, а при p ≥ pc (L) появляется стягивающий
кластер. Задача заключается в определении порога перколяции для бесконечной решетки, т.е. в определении pc (L → ∞).
Моделирование этой задачи происходит таким образом: сначала обнуляется заполнение всех узлов. Затем сканируется каждый узел квадратной решетки, и датчиком случайных чисел для каждого узла
решетки создается случайное |
число 0 < R < 1 . |
Если R < p , узел |
заполняется частицей, если |
R ≥ p , узел |
остается пустым. |
Просканировав всю решетку, создаем конкретную конфигурацию расположения частиц и определяем, есть ли в системе стягивающий кластер. Если он существует, конфигурация считается успешной и ей присваивается индекс "1", если же нет, то конфигурации присваивается индекс "0". Далее обнуляем заполнение решетки и повторяем всю процедуру заново. После генерации достаточно большого числа конфигураций рассчитывается вероятность появления стягивающего кластера p∞ (L,p) как отношение числа успешных конфигураций к числу всех
реализаций. Меняя параметр p , повторяем процедуру. Действуя таким образом, можно получить зависимость p∞ (L) = f(p) . При
определенном |
значении |
p = pc (L) |
вероятность появления |
стягивающего |
кластера будет равна 1: |
p∞ (L) →1. Далее |
|
|
|
p=pc (L) |
увеличиваем размер системы L и повторяем расчет, находя pc (L) ;
порог перколяции в бесконечной системе определяется исходя из асимптотической зависимости pc от размера системы.
Заметим, что задача о перколяции тесно связана с моделированием протекания тока в реальных физических системах, с моделированием систем джозефсоновских контактов в сверхпроводниках и с другими физическими задачами.
Приведенные выше примеры достаточно просты, так что их напрямую можно использовать для стохастического моделирования. В реальных системах из-за межчастичного взаимодействия, внешних полей, неоднородности пространства для эффективности алгоритма моделирование должно проводиться с учетом всех этих факторов, и использование методов Монте-Карло становится специфичным для каждой конкретной задачи.
Прежде чем подробнее познакомиться с подходом Монте-Карло для физических систем, рассмотрим сначала математическое обоснование этого метода, а также его применение для решения обычных математических задач.
Рассмотрим математический аспект проблемы стохастического моделирования методом Монте-Карло. Случайные величины уже рассматривались в разд. 11.1, там же приводились примеры алгоритмов для генерации случайных величин с различными законами распределения. В этом разделе приведены важные положения теории вероятностей [2, 42], необходимые в дальнейшем для организации алгоритмов Монте-Карло.
Рассмотрим случайную величину ξ , распределенную с плотностью вероятности p(x) на интервале (a,b) . Соответственно, вероятность того, что величина ξ попадет в интервал (a′,b′) , содержащийся в (a,b) , будет равна
b′ |
|
P{a′ < ξ < b′} = ∫p(x)dx . |
(11.58) |
a′
Предполагается, что должны быть выполнены два условия: положительность функции p(x) , а также нормировка функции p(x)
b
на единицу: ∫p(x)dx = 1.
a
Математическим ожиданием случайной величины называется число
b |
|
Mξ = ∫xp(x)dx , |
(11.59) |
a
т.е., фактически, среднее значение ξ .
Сразу отметим важное свойство математического ожидания. Выберем произвольную непрерывную функцию f(x) и рассмотрим случайную величину η = f(ξ) . Можно доказать, что
313
b |
(11.60) |
Mη = Mf(ξ) = ∫ f(x)p(x) dx . |
a |
|
Дисперсией случайной величины называется число |
|
b |
|
Dξ = M(ξ − Mξ)2 = ∫ x2 p(x) dx − (Mξ)2 . |
(11.61) |
a
Из (11.61) видно, что дисперсия – это математическое ожидание квадрата отклонения случайной величины от ее среднего значения. Например, для случайной величины, равномерно распределенной на интервале (0,1) , Mξ = 1/2 , Dξ = 1/12 .
Если имеются две статистически независимые случайные величины
ξи η , то математическое ожидание и дисперсия являются
аддитивными функциями:
M(ξ + η) = Mξ + Mη;
(11.62)
D(ξ + η) = Dξ + Dη.
Для нормального распределения (распределения Гаусса), которое рассматривалось в разд. 11.1.2, с функцией распределения
|
|
1 |
|
− |
(ξ−a)2 |
|
p(ξ) = |
|
|
e 2σ2 |
(11.63) |
|
|
|
|
σ |
|
2π |
|
|
|
|
|
|
|
(рис. 11.19) математическое ожидание и дисперсия равны |
|
|
Mξ = a; |
(11.64) |
|
Dξ = σ2. |
|
|
Любые вероятности нормально распределенной величины вычисляются с помощью интеграла вероятностей (или
интеграла ошибок)
|
2 |
x |
|
Φ(x) = |
∫e−t2 / 2 dt . |
(11.65) |
|
π |
0 |
|
|
|
|
С помощью преобразования интегралов несложно показать, что
P{x′ < ξ < x′′} = |
1 |
t2 e−t2 / 2 dt = |
1 |
(Φ(t2 ) − Φ(t1 )) ; |
|
|
|
|
|
2π t∫1 |
|
|
|
2 |
|
|
|
(11.66) |
|
|
|
t1 = |
x′ − a |
; t2 |
= |
x′′ − a. |
|
|
|
|
|
|
|
|
σ |
|
|
|
σ |
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3.5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2.5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1.5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
0.5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
0.2 |
0.4 |
0.6 |
|
0.8 |
1 |
|
1.2 |
|
1.4 |
1.6 |
1.8 |
2 |
Рис. 11.19. Распределение Гаусса для параметров a = 1; σ = 0.1 |
|
Нормальное распределение играет чрезвычайно важное значение для стохастических численных методов. Нормальные случайные распределения очень часто встречаются при исследовании самых различных систем, как чисто математических, так и физических.
|
|
|
|
|
|
|
|
Приведем |
важное |
свойство нормального |
распределения |
– |
«правило |
трех σ ». |
Если |
выбрать x′ = a − |
3σ ; x′′ = a + 3σ , |
то, |
согласно (11.66), t1 = −3 |
, t2 |
= 3 . Отсюда находим |
|
|
|
P{a − 3σ < |
ξ < a + 3σ} = Φ(3) = 0.997 1. |
(11.67) |
Последняя формула интерпретируется так: при одном испытании практически невозможно получить значение ξ , отличающееся от
Mξ больше, чем на 3σ .
На практике в качестве погрешности часто выбирают не 3σ , а другую величину – так называемую вероятную ошибку. Если рассмотреть величину r = 0.6745σ , то
P{a − r < ξ < a + r} = Φ(0.6745) = 0.5 . |
(11.68) |
Переформулируем (11.68) по-другому: |
|
|
|
|
|
P{ |
|
ξ − a |
|
< r} = 0.5 , |
(11.69) |
|
|
но тогда и |
|
P{ |
|
ξ − a |
|
> r} = 1 − P{ |
|
ξ − a |
|
< r} = 0.5. |
(11.70) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Значит, для случайной величины ξ вероятность отклониться от
своего среднего значения больше чем на r, и меньше чем на r, одинакова.
Рассмотрим теперь очень важную для дальнейшего описания
методов Монте-Карло центральную предельную теорему теории вероятностей. Эта замечательная теорема впервые была сформулирована П. Лапласом и обобщена позднее П.Л. Чебышевым, А.А. Марковым, А.М. Ляпуновым. Доказательство ее достаточно сложно и выходит за рамки данной книги, его можно найти, например, в [2, 43].
Прежде всего отметим, что нормальное распределение обладает особыми свойствами. Если есть две независимые величины ξ и η ,
нормально распределенные с дисперсиями, соответственно, σ1 и σ2 и математическими ожиданиями a1 и a2 , то, кроме того, что, согласно свойству (11.62), математическое ожидание и дисперсия
суммы ξ + η |
будут аддитивны, |
распределение |
суммы ξ + η |
будет также нормальным: |
|
|
|
|
|
|
|
|
|
|
|
|
|
(ξ+η−(a +a |
2 |
))2 |
|
|
|
|
1 |
|
− |
|
1 |
|
|
|
|
|
|
2(σ2 |
+σ2 ) |
|
|
|
p(ξ + η) = |
|
|
e |
. |
(11.71) |
|
|
|
|
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
2π(σ2 + σ2 ) |
|
|
|
|
|
|
|
|
1 |
2 |
|
|
|
|
|
|
Рассмотрим теперь более общую ситуацию. Пусть есть N |
одинаковых |
независимых случайных |
величин |
ξ1 ,ξ2 ,...,ξN с |
одинаковым, но необязательно нормальным распределением вероятностей. Очевидно, что математические ожидания и дисперсии этих величин совпадают. Обозначим
Mξ1 = Mξ2 = ... = MξN = m;
Dξ |
= Dξ |
2 |
= ... = Dξ |
N |
= b2; |
(11.72) |
1 |
|
|
|
ρN = ξ1 + ξ2 + ...+ ξN.
Для распределения суммы независимых случайных величин справедливо
MρN = M(ξ1 + ξ2 + ...+ ξN) = Nm;
Dρ |
N |
= D(ξ |
+ ξ |
2 |
+ ...+ ξ |
N |
) = Nb2. |
(11.73) |
|
1 |
|
|
|
|
Рассмотрим теперь случайную величину ζN , распределенную
нормально с такими же параметрами: a = Nm; σ = b
N . Обозначим ее функцию распределения через pζN (x) .
Центральная предельная теорема утверждает, что для любого интервала (a′,b′) при достаточно больших N имеем:
b′ |
(11.74) |
P{a′ < ρN < b′} ≈ ∫pζN (x)dx . |
a′
Смысл (11.74) очевиден: сумма большого числа одинаковых
случайных величин приближенно нормальна. Более того, обобщение этой теоремы гласит, что необязательно все слагаемые должны быть независимы и одинаково распределены, важно, чтобы отдельные слагаемые не играли большой роли в сумме. Эта теорема и объясняет, почему нормальные случайные величины так часто встречаются в природе: при исследовании системы обычно имеют дело с суммарным воздействием большого числа случайных факторов, в результате формирующих общий «гауссиан».
Теперь можно сформулировать наиболее общую схему метода Монте-Карло. Пусть требуется вычислить среднее значение
A
какой-либо физической величины A:
|
|
∑Aie−Ei / T |
|
|
|
A = |
i |
, |
(11.75) |
|
∑e−Ei / T |
|
|
|
|
i
или, в более общем виде (см. (9.1)),
|
∑Aiwi |
|
∑Aiwi |
|
(11.76) |
A = |
i |
= |
i |
, |
∑wi |
Z |
|
i
где wi – статистический вес, соответствующий собственному состоянию i системы.
Будем рассматривать значения Ai как независимые случайные величины, тогда MAi =
A
. Пусть дисперсия этих случайных величин равна DAi = b2 .
Рассмотрим N независимых случайных величин ξ1 ,ξ2 ,...,ξN , математические ожидания которых совпадают с распределением
A
, а дисперсии одинаковы и равны Dξi = b2 . Если N достаточно велико, то, согласно центральной предельной теореме,
распределение суммы |
этих |
величин |
|
ρN = ξ1 + ξ2 + ...+ ξN |
будет |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
приблизительно нормально с параметрами MρN = N A , |
σρN |
= b N . |
Из «правила трех σ » следует, что |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P{N A |
− 3b |
|
|
N < ρN < N A + 3b |
|
N} ≈ 0.997 , |
(11.77) |
|
следовательно, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3b |
|
|
|
ρN |
|
|
|
|
|
3b |
|
|
|
|
|
P |
A |
− |
|
< |
< A + |
|
≈ 0.997 . |
(11.78) |
|
|
|
|
|
|
|
|
|
|
|
|
N |
|
|
|
|
|
|
N |
N |
|
|
|
|
|
|
|
|
|
Перепишем (11.78) следующим образом: |
|
|
|
|
|
|
|
|
|
|
|
N |
|
|
|
3b |
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
P |
|
|
∑ξi − A |
< |
|
|
|
|
≈ |
0.997 . |
(11.79) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N i=1 |
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Фактически, последнее соотношение дает и метод расчета, и оценку погрешности. Действительно, сгенерируем N значений случайной величины ξ . Из (11.79) видно, что среднее
арифметическое этих значений будет приближенно равно искомому
A
, и с большой вероятностью погрешность такого приближения
|
|
|
|
|
не превосходит величины 3b / |
|
N , где |
|
b2 = 1 |
|
N |
|
∑(ξ − ξ )2 . |
(11.80) |
Ni=1
Сувеличением N эта погрешность стремится к нулю. На практике часто предпочитают вместо этой погрешности выбирать вероятнуюi
ошибку 0.6745b / 
N .
318
11.3. Расчет интегралов методом Монте-Карло
Для конкретизации представленной в предыдущем разделе общей схемы рассмотрим теперь практическую задачу расчета определенного интеграла методом Монте-Карло. Эту задачу, конечно, можно свести к приведенной в начале параграфа задаче о расчете площади фигуры, но, как правило, такой способ не будет эффективным.
Рассмотрим функцию g(x) , заданную на интервале (a,b). Пусть необходимо вычислить интеграл
b
Для расчета выберем произвольную плотность распределения p(x), определенную на том же интервале, причем
|
b |
|
|
|
∫p(x)dx = 1. |
(11.82) |
|
a |
|
|
|
Определим случайную величину |
|
|
|
η = |
g(ξ) |
, |
(11.83) |
|
p(ξ) |
|
|
|
|
где ξ – случайная величина, распределенная с плотностью p(x) на (a,b). Тогда математическое ожидание η будет равно искомому интегралу:
b |
|
|
Mη = ∫ g(x) p(x)dx = I . |
(11.84) |
a |
p(x) |
|
|
|
Рассмотрим N независимых случайных величин η1 ,η2 ,...,ηN и применим к их сумме центральную предельную теорему, тогда
|
|
1 |
N |
|
|
|
|
|
|
|
|
|
|
|
|
∑ηi − I |
< 3 |
Dη |
≈ 0.997 . |
(11.85) |
P |
|
|
N |
|
|
|
N i=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таким образом, если выбрано N случайных значений ξ1 ,ξ2 ,...,ξN , то при достаточно большом N
1 |
N |
g(ξ ) |
|
|
N |
∑= |
p(ξi) |
≈ I , |
(11.86) |
|
i 1 |
i |
|
|
и погрешность расчета не превосходит 3
Dη /N , где
|
|
|
b |
2 |
|
|
|
1 |
N |
2 |
|
|
|
2 |
|
2 |
= ∫a |
g (x) |
|
2 |
|
∑i=1 |
g (ξi) |
|
2 |
|
Dη = Mη |
− I |
|
p(x) |
dx − I |
|
|
N |
p(ξi) |
− I |
|
. (11.87) |
Соотношения (11.86) и (11.87) для расчета интеграла и оценки погрешности получены корректно с учетом центральной предельной теоремы. Следует отметить, что сходимость результата (11.86) к точному значению следует также из закона больших чисел, согласно которому для любого ε > 0
|
|
N |
|
|
|
|
1 |
|
|
|
lim P |
|
∑ηi − I |
|
< ε |
= 1. |
(11.88) |
N→∞ |
N i=1 |
|
|
|
|
|
|
|
|
|
Более того, справедлив усиленный закон больших чисел:
|
1 |
N |
|
= 1. |
(11.89) |
P lim |
∑ηi = I |
N→∞ N i=1 |
|
|
|
Для оптимального расчета интеграла с минимальной погрешностью следует выбирать распределение p(x), пропорциональное g(x)
или, по возможности, близкое к этому. Докажем это утверждение.
Воспользуемся известным неравенством Коши – Буняковского в интегральном виде:
b |
|
2 |
∫ |
u(x)v(x) |
|
|
dx |
a |
|
|
Положим |
|
|
|
|
u(x) |
|
|
v(x) |
тогда из (11.90) находим:
bb
≤ ∫u2 (x)dx ∫v2 (x)dx . |
(11.90) |
|
a |
|
|
a |
|
= |
|
g(x) |
|
; |
|
|
|
|
|
|
|
p(x) |
(11.91) |
|
|
|
|
|
= |
|
p(x), |
|
b |
|
|
|
2 |
b |
|
2 |
(x) |
|
b |
b |
2 |
|
|
|
|
|
|
g |
|
|
|
g (x) |
|
∫ |
|
g(x) |
|
dx |
≤ ∫ |
p(x) |
dx ∫p(x)dx ≡ ∫ |
p(x) |
dx . (11.92) |
|
|
a |
|
|
|
|
a |
|
|
|
|
a |
a |
|
|
Комбинируя (11.92) и определение дисперсии (11.87), находим оценку снизу для дисперсии: