- •Метод Монте-Карло
 - •История
 - •Алгоритм Буффона для определения числа Пи
 - •Связь стохастических процессов и дифференциальных уравнений
 - •Рождение метода Монте-Карло в Лос-Аламосе
 - •Дальнейшее развитие и современность
 - •Интегрирование методом Монте-Карло
 - •Обычный алгоритм Монте-Карло интегрирования
 - •Квантовый метод Монте-Карло
 - •Численное интегрирование Материал из Википедии — свободной энциклопедии
 - •Одномерный случай
 - •Метод прямоугольников
 - •Метод трапеций
 - •Метод парабол
 - •Увеличение точности
 - •Метод Гаусса
 - •Метод Гаусса-Кронрода
 - •Интегрирование при бесконечных пределах
 - •Методы Монте-Карло
 - •Многомерный случай
 - •Литература
 - •Глава 6. Статистические расчеты на Mathcad
 - •10.4. Метод Монте-Карло для вычисления двойного интеграла
 
10.4. Метод Монте-Карло для вычисления двойного интеграла
Рассмотрим двойной интеграл
![]()
, 
![]()
Преобразуем интеграл так, чтобы новая область интегрирования целиком содержалась внутри единичного квадрата. Сделаем замену
.    
 (10.7) 
Тогда
.
Якобиан преобразования равен 
.
Таким образом 
![]()
![]()
.
Выбираем  две равномерно распределенные
на отрезке [0,1] последовательности
случайных чисел  
 и
.
Точку 
 можно
рассматривать как случайную. Выбрав
достаточно большое число n точек  
,
проверяем, какие из них принадлежат
области интегрирования (первая категория)
и какие не принадлежат ей (вторая
категория). Для удобства меняем нумерацию
точек. 
.
.
Можно вычислить среднее значение функции в области интегрирования
.      
(10.8) 
Тогда искомый интеграл выражается формулой
  
.      
(10.9) 
Если площадь 
вычислить
трудно, то можно принять 
.
Тогда
  
.     
(10.10) 
С точки зрения вычислительного алгоритма - это один цикл, внутри которого дважды обращаются к датчику случайных чисел, затем проверяют принадлежность точки к области интегрирования и суммируют значения функции в тех точках, которые принадлежат области интегрирования.
Проанализируем эту формулу, в случае увеличения кратности интеграла. Формула не изменится - также останется одна сумма - т.е. один цикл, в отличие от формул типа Симпсона, рассмотренных в предыдущем параграфе, где увеличение кратности интеграла приводит к увеличению вложенных циклов. В данном случае внутри одного цикла добавляется несколько команд, т.е. это не ведет к многократному увеличению объёма вычислений.
Пример 2. Вычислить интеграл методом Монте-Карло.
,
где область   интегрирования
 определяется
следующими неравенствами 
![]()
.
| 
				 1  | 
		
| 
				 1  | 
		
| 
				 
  | 
		

Рис. 10.6
   Рассмотрим таблицу случайных
чисел, каждую пару объединим в точку 
.
Пусть n=20 и m получилось равным 4, т.е.
четыре точки  принадлежат 
.
Вычисляем 
 и 
учитывая, что 
,
получаем значение интеграла 
.
В данном примере площадь интегрирования
 определяется
точно, но можно было бы воспользоваться
приближенной формулой 
.
 Точное значение данного интеграла
.
Определим относительную погрешность
результата: 
.
   Если ещё раз реализовать этот
метод с n=20, т.е. взять 40 чисел из таблицы
случайных чисел и объединить их парами,
то может получится m не равное 4, например,
в область интегрирования попадёт 5 точек
и получится другое значение 
.
Здесь наглядно видно, что вычислительный
процесс является недетерминированным.
В случае одномерного интеграла

схема применения метода Монте-Карло может быть такой:
пусть t равномерно распределенная на [0,1] случайная величина, тогда преобразование x=a+(b-a)t дает равномерно распределенную на [a,b] случайную величину x. Таким образом, все точки будут принадлежать области интегрирования. Следовательно, вычислительный алгоритм ещё упрощается, так как не надо проверять условие - попала ли точка в область интегрирования.
Иногда при вычислении кратных интегралов сочетают метод Монте-Карло с классическими квадратурами - так называемые случайные квадратурные формулы, основная идея которых состоит в том, что узлы и коэффициенты какой-либо квадратурной суммы (например, интерполяционной) выбираются случайно. Таким образом, получается так называемый метод слоистой выборки, в котором узлы выбираются по одному в каждой части фиксированного разбиения области интегрирования, а коэффициенты пропорциональны соответствующим объёмам. При этом порядок скорости сходимости метода Монте-Карло повышается и в некоторых случаях становится максимально возможным на рассматриваемом классе задач. В общем случае область интегрирования разбивается на параллелепипеды. В каждом параллелепипеде значение интеграла вычисляется через среднее значение в случайной точке и точке симметричной ей относительно центра параллелепипеда.
Если подынтегральная функция зависит от параметра, то целесообразно использовать метод зависимых испытаний, который состоит в следующем: оценивается интеграл для различных значений параметра по одним и тем же случайным узлам.
   Важным качеством метода Монте-Карло
является сравнительно слабая зависимость
среднеквадратической погрешности 
 от
числа измерений, причём порядок сходимости
по числу узлов 
  всегда
один и тот же: 
.
Это позволяет оценивать интегралы очень
высокой кратности. 
А теперь вычислим тот же интеграл методом Монте-Карло
![]()
![]()
![]()
Поскольку в нашем случае объем области интегрирования равен 1, полученное среднее значение совпадает со значением интеграла. При относительной погрешности в 0.001% время вычисления интеграла по методу Монте-Карло существенно меньше.
Интеграл
можно вычислить и другим способом.
Заключим область интегрирования внутрь
прямоугольной области, "набросаем"
внутрь полученной области N случайных
точек. Тогда интеграл найдем из
соотношения
,где
N – общее число точек, n – число
точек, лежащих внутри области
интегрирования, V – объем области,
включающей область интегрирования.
Максимальное значение подынтегральной функции в области интегрирования не превосходит 125, следовательно, мы может заключить всю область интегрирования внутрь четырехмерного цилиндроида высотой 125 и объемом V=125. Сгенерируем N четверок случайных чисел и подсчитаем, сколько из них лежит под поверхностью f(x,y).
![]()
