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