- •Метод Монте-Карло
- •История
- •Алгоритм Буффона для определения числа Пи
- •Связь стохастических процессов и дифференциальных уравнений
- •Рождение метода Монте-Карло в Лос-Аламосе
- •Дальнейшее развитие и современность
- •Интегрирование методом Монте-Карло
- •Обычный алгоритм Монте-Карло интегрирования
- •Квантовый метод Монте-Карло
- •Численное интегрирование Материал из Википедии — свободной энциклопедии
- •Одномерный случай
- •Метод прямоугольников
- •Метод трапеций
- •Метод парабол
- •Увеличение точности
- •Метод Гаусса
- •Метод Гаусса-Кронрода
- •Интегрирование при бесконечных пределах
- •Методы Монте-Карло
- •Многомерный случай
- •Литература
- •Глава 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).