11.1.3. Почти линейная плотность распределения
Пусть требуется получить случайную величину с плотностью распределения f(x) , удовлетворяющей следующему условию:
f(x) = 0, если x < s или x > s + h;
a − b(x − s) |
≤ f(x) ≤ b − b(x − s) |
, если s ≤ x ≤ s + h. (11.38) |
h |
h |
|
Плотность распределения (11.38) называется почти линейной, условию (11.38) удовлетворяет целый класс монотонных функций,
|
заключенных |
в области между прямыми y = a − b |
x − s |
и |
|
h |
|
|
|
|
|
|
y = b − b |
x − s |
(рис. 11.9). |
|
|
h |
|
|
|
|
|
|
Рис. 11.9. Функция f(x) описывает почти линейную плотность распределения случайной величины
Следующий алгоритм позволяет получить случайные величины с почти линейной плотностью распределения:
1) генерируются два случайных числа R1 и R2 , равномерно распределенные на (0,1), при этом R1 ≤ R2 (если это не так, то R1 и R2 меняются местами);
301
|
|
|
a |
|
|
|
|
|
|
2) |
если R2 |
≤ b , то переходим к пункту 4; |
|
3) |
если R2 |
> R1 |
+ |
f(s + hR1) |
|
, то возвращаемся к пункту 1; |
|
|
b |
|
|
|
|
|
|
|
|
4) |
если R2 |
≤ R1 |
+ |
f(s + hR1) |
, то рассчитывается число ξ = s + hR1 , |
|
b |
|
|
|
|
|
|
|
которое будет распределено с почти линейной плотностью.
Блок-схема алгоритма показана на рис. 11.10.
Рис. 11.10. Блок-схема алгоритма получения случайных чисел с почти линейной плотностью распределения
Прежде всего, заметим, что пункт 2 в алгоритме позволяет существенно увеличить скорость всего алгоритма, так как число a/b рассчитывается на компьютере намного быстрее, чем сложная
|
функция y(R1 ) = R1 |
+ |
f(s + hR1 ) |
, а разница между этими |
|
b |
|
|
|
|
значениями, как правило, невелика (рис. 11.11).
Докажем справедливость алгоритма.
При переходе к шагу 4 алгоритма имеем, что точка с координатами (R1 ,R2 ) – это случайная точка в закрашенной области на
|
рис. 11.11, при этом |
|
|
|
|
|
|
|
|
|
1 |
|
|
0 ≤ R1 |
≤ R2 ≤ R1 + b f(s + hR1) , |
|
а из условия (11.38) имеем |
|
|
|
|
|
a |
≤ |
(x − s) |
+ |
f(x) |
≤ 1, |
|
b |
h |
b |
|
|
|
|
|
или, учитывая, что |
|
|
|
|
|
|
|
|
x = s + hR1 , |
|
|
получаем |
|
|
|
|
|
|
a |
≤ R1 + f(s + hR1) ≤ 1 . |
|
b |
|
|
|
|
|
(11.39)
(11.40)
(11.41)
(11.42)
Вероятность того, что ξ ≤ s + hR1 при 0 ≤ R1 ≤ 1 , равна отношению
площади слева от вертикальной линии ко всей закрашенной площади, т.е.
|
|
|
|
x |
|
|
P{ξ ≤ s + hR |
|
} = |
∫b−1f(s + hR1 )dR1 |
|
1 |
0 |
|
= |
|
|
|
|
|
1 |
|
|
|
|
|
|
∫b−1f(s + hR1 )dR1 |
(11.43) |
|
|
|
0 |
|
|
|
|
|
|
|
s+hx |
|
|
|
|
|
|
|
∫ f(u)du |
s+hx |
|
= |
s |
|
|
|
= A |
∫ f(u)du, |
|
s+h |
|
|
|
|
где А – константа, соответствующей нормировкой можно добиться, чтобы A = 1 .
Из (11.43) следует, что случайная величина ξ имеет почти линейную плотность распределения (11.38).
303
Рис. 11.11. Все точки (x,y), попадающие в закрашенную область, имеют почти |
|
|
|
|
|
линейную плотность распределения |
|
|
На рис. 11.12 показан пример генерации случайных величин с |
почти линейным законом распределения, определяемым функцией |
распределения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
−x2 |
−x4 |
|
−3 |
) /0.488, если 0.8 ≤ x < 1.192; |
|
|
|
|
|
|
|
|
− π |
|
(11.44) |
|
|
|
f(x) = (e |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0, если 1.192 ≤ x ≤ 1.25. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
|
|
|
|
|
|
6000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
N(x) |
4000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
0.6 |
0.7 |
0.8 |
0.9 |
1 |
|
6000 |
|
|
|
|
|
|
|
b |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N(x) |
4000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0.85 |
|
0.9 |
|
0.95 |
|
1 |
|
1.05 |
1.1 |
1.15 |
1.2 |
1.25 |
|
|
0.8 |
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f(x) |
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0.85 |
|
0.9 |
|
0.95 |
|
1 |
|
1.05 |
1.1 |
1.15 |
1.2 |
1.25 |
|
|
0.8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
Рис. 11.12. Случайные величины, имеющие почти линейный закон распределения |
Функция распределения f(x) показана в окне c, в окне a дана
исходная гистограмма равномерно распределенных случайных величин, в окне b – гистограмма случайных величин с почти
304
линейной плотностью распределения, полученных при помощи алгоритма на рис. 11.10.
11.1.4.Двумерные распределения
Вэтом разделе мы кратко коснемся вопросов, связанных с
двумерными распределениями.
Совокупность двух случайных величин (X,Y) рассматриваемых совместно называется системой случайных величин. Система двух случайных величин (X,Y) геометрически интерпретируется как случайная точка с этими координатами на плоскости xy.
Функцией распределения F(x,y) системы двух случайных величин (X,Y) называется вероятность совместного выполнения двух неравенств X < x , Y < y :
F(x,y) = P{(X < x) I (Y < y) }. |
(11.45) |
Геометрически F(x,y) интерпретируется как вероятность попадания случайной точки (X,Y) в закрашенную область на рис. 11.13, ограниченную снизу и слева только областью определения случайных величин X и Y.
Плотность распределения системы двух случайных величин находится как
f(x,y) = |
∂2F(x,y) . |
(11.46) |
|
∂x ∂y |
|
Функция распределения системы случайных величин, связанных функциональной зависимостью z=g(X,Y), определяется формулой
G(z) = ∫∫f(x,y)dx dy , |
(11.47) |
D(z)
где D(z) – область на плоскости xy, для которой g(x,y)<z.
Рис. 11.13. Геометрическая интерпретация функции распределения системы двух случайных величин. D(X,Y) – область определения случайных величин X и Y
Рассмотрим конкретный пример. Пусть необходимо получить систему случайных величин x и y с плотностью распределения
f(x,y) ~ ex−y , |
(11.48) |
причем |
|
0 ≤ x < y ≤ 1 . |
(11.49) |
Поступим следующим образом. Сгенерируем сначала случайную величину y − x . Имеем функциональную зависимость
z = y − x , |
(11.50) |
и область D(z) определяется условием |
|
D(z) : y − x < z . |
(11.51) |
На плоскости xy в единичном квадрате область D(z) ограничена снизу прямой y=x, а сверху – прямой y=x+z (рис. 11.14). Функция распределения случайной величины z имеет вид
1−z x+z |
1 |
1 |
|
G(z) ~ ∫dx ∫dy ex−y + ∫dx∫dy ex−y = ze−z , |
(11.52) |
0 |
x |
1−z |
x |
|
после нормировки имеем |
|
|
|
|
|
|
G(z) = ze1−z . |
(11.53) |
Таким образом, согласно методу обратной функции, для нахождения z следует решить трансцендентное уравнение
306
где R1 – случайное число, равномерно распределенное на (0,1).
Уравнение (11.54) имеет единственный корень и наиболее эффективно решается численно методом деления отрезка пополам.
Рис. 11.14. Область интегрирования D(z) ограничена прямыми y=x и y=x+z
Теперь, имея случайную величину z с законом распределения (11.53), найдем закон распределения случайной величины x при заданном z. Имеем:
x |
1 |
x |
|
f(x)|z=y−x = ∫dx∫dye−z ~ ∫dx , |
(11.55) |
0 |
0 |
0 |
|
т.е. случайная величина x распределена равномерно на интервале (0,1 − z) , так как, по условию задачи, x < y .
Таким образом,
y = z + x = z + R2 (1 − z),
R2 – случайное число, равномерно распределенное на (0,1).
На рис. 11.15 показана гистограмма этого распределения, полученная генерацией 50000 случайных чисел.
Следует отметить, что вдоль линий y − x = const распределение, с
точностью до статистического разброса, является равномерным, в соответствии с (11.55).
Рис. 11.15. Гистограмма системы двух случайных величин, имеющих плотность распределения (4.42) с условием (4.43). Общее число точек 50000
В заключение раздела отметим, что и для генерации двумерных распределений случайных величин справедлив метод фон Неймана.
11.2. Случайные величины и центральная предельная теорема. Общая схема метода Монте-Карло
При исследовании взаимодействующих систем расчет термодинамических средних вида (9.1) при достаточно большом размере системы не представляется возможным из-за огромного числа слагаемых в сумме. В этом случае метод точной диагонализации неприменим, и эффективным методом численного расчета является метод Монте-Карло. Он позволяет даже в случае макроскопически большого числа степеней свободы получить асимптотически точные результаты для термодинамических характеристик системы. Создателями этого метода считаются Дж. Нейман и С. Улам (1949 г.) (см. [42]).
Методы стохастического моделирования, такие как метод МонтеКарло, используются как для физических задач, так и для решения сложных математических проблем, где другие аналитические и приближенные подходы не работают.
Самый простейший пример использования стохастического моделирования – вычисление площади сложной плоской фигуры S. Поместим фигуру S внутрь единичного квадрата (рис. 11.16). Выберем внутри квадрата N случайных точек (координаты точек можно выбирать с помощью датчика равномерно распределенных случайных чисел). Обозначим через N′ число точек, попавших при этом внутрь S. Тогда площадь S будет приближенно равна
причем равенство улучшается с увеличением N.
Рис. 11.16. Вычисление площади плоской фигуры методом Монте-Карло
Аналогично можно сформулировать задачу расчета объема сложной формы, применяя предыдущую процедуру, а также объема произвольной многомерной замкнутой структуры.
Несомненное преимущество такого непосредственного использования метода Монте-Карло – простая структура вычислительного алгоритма. Необходим лишь хороший датчик случайных чисел. Однако для достижения необходимой точности
309
следует провести достаточно много итераций, так как ошибка расчета уменьшается в среднем как 1/ 
N . Для более эффективной
сходимости задачу следует решать при помощи модифицированных алгоритмов Монте-Карло и использовать различные функции распределения случайных величин, учитывающие особенности каждой конкретной рассматриваемой задачи.
Еще один наглядный пример уже физической задачи –
моделирование броуновского движения в замкнутом объеме. Разместим случайным образом N частиц в объеме V трехмерного пространства с декартовой системой координат. Будем полагать частицы идеальными, не взаимодействующими. Моделирование заключается в следующем: выбирается случайным образом частица, а затем, также случайным образом, выбираются ее новые координаты в некоторой окрестности ее исходного расположения, и частица перемещается в новое положение в пространстве. Взаимодействие частиц с границами объема будем полагать упругим, т.е. частицы будут отражаться от границ. Поведение частиц через некоторое время после начала моделирования становится хаотическим, и можно рассчитать, например, что давление частиц P (среднее число частиц, проходящее в единицу счетного времени через любую поверхность одинаковой площади внутри или на границе выделенного объема) одинаково по всем направлениям, обратно пропорционально величине объема V и прямо пропорционально количеству частиц N, что соответствует уравнению состояния идеального газа PV ~ N.
В расчет можно ввести также понятие температуры, величина которой пропорциональна линейному размеру, на который разрешается в алгоритме передвигать частицу за одно перемещение, это отражает тот факт, что кинетическая энергия частицы пропорциональна температуре. Тогда, соответственно, будет справедливо соотношение PV ~ NT .
Достаточно простому моделированию поддается и задача перколяции или протекания. Рассмотрим квадратную решетку размером L × L . При помощи датчика случайных чисел будем располагать частицы в узлах решетки с заданной вероятностью 0 < p < 1. Совокупность частиц, расположенных наиболее близко