Skip to Content

§3. Кратные интегралы: где жребий незаменим

В §1 мы честно признали: для одномерного интеграла Монте-Карло проигрывает методу прямоугольников. Напомню минусы жребия:

  • точность всего 1/n1/\sqrt{n} против 1/n21/n^2 у прямоугольников;
  • чтобы оценить погрешность по формуле (2), надо знать (или прикидывать) разброс Dξ\mathbf{D}\xi;
  • и сама оценка верна лишь с некоторой вероятностью, а не железно.

Казалось бы, фуфловый метод. Но сейчас будет разворот на 180 градусов — есть задачи, где Монте-Карло единственный, кто вообще справляется.

Проклятие размерности

Представь интеграл не по отрезку, а по kk-мерному кубу — по многим переменным сразу:

I=∫01 ⁣ ⁣ ⁣⋯∫01φ(x1,…,xk) dx1…dxk.I = \int_0^1 \!\!\dots \int_0^1 \varphi(x_1, \dots, x_k)\,dx_1 \dots dx_k.

Попробуй взять его честной сеткой (как прямоугольники). Беда в том, что число узлов сетки растёт как nkn^k — степень kk в показателе. Это называют проклятием размерности. Прикинь масштаб: чтобы обсчитать десятимерный куб, беря узлами хотя бы только его вершины, надо 210=10242^{10} = 1024 раза вычислить функцию. А если сетка погуще — число узлов улетает в космос. И это при том, что одно вычисление φ\varphi может само по себе быть долгим (например, требовать решения уравнений).

Монте-Карло плюёт на размерность

А теперь фишка, ради которой всё затевалось. Методу Монте-Карло на размерность вообще плевать. Чтобы оценить тот же kk-мерный интеграл, делаешь ровно то же, что в §1:

  • кидаешь nn случайных точек в kk-мерный куб (просто берёшь псевдослучайные числа и режешь их на группы по kk координат);
  • усредняешь значения φ\varphi в этих точках: I^n=1n∑φ(ηi)\hat I_n = \tfrac1n \sum \varphi(\eta_i).

И точность остаётся той же — порядка 1/n1/\sqrt{n}, независимо от kk. Хоть два измерения, хоть сто — жребию без разницы, он просто кидает точки да усредняет. Вот где он бьёт все честные методы: там, где сетка захлёбывается от размерности, Монте-Карло спокойно работает.

Объём области через долю попаданий

Особый и очень наглядный случай — когда φ\varphi это индикатор области: равна 11 внутри некоторой фигуры DD и 00 снаружи. Тогда среднее I^n\hat I_n — это просто доля точек, попавших внутрь DD, и она приближает объём этой области.

Классика: кинем точки в единичный квадрат и посчитаем долю, попавшую под дугу четверти круга (x2+y2≤1x^2 + y^2 \le 1). Площадь четверти круга равна π/4\pi/4, значит доля попаданий ≈π/4\approx \pi/4. Умножив на 4, снова ловим число π\pi — но теперь не усреднением функции, а подсчётом попаданий в область:

Монте-Карло: объём области через долю попаданий

Кидаем точки в единичный квадрат. Красные — под дугой (x²+y² ≤ 1), серые — снаружи.Доля под дугой ≈ площадь четверти круга = π/4. Умножаем на 4: оценка π = 3.1307 (точное 3,1416).

По-дворовому: хочешь прикинуть площадь кривой лужи на асфальте — не меряй линейкой, а раскидай горсть семок наугад по размеченному квадрату и посчитай, сколько легло в лужу. Доля попавших, умноженная на площадь квадрата, и есть площадь лужи. И этот трюк работает в любой размерности — хоть лужа, хоть шар в десятимерном кубе (а вот тут нас ждёт сюрприз — см. §4).

Есть и улучшенная версия — расслоённая выборка: куб заранее режут на мелкие подкубики и в каждый кидают по точке. Так точность чуть выше, чем при полностью случайном разбросе, — но суть та же.

Проверь себя

Тест

Почему для интеграла по кубу высокой размерности Монте-Карло выигрывает у метода прямоугольников?
Обновлено