Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Метод Монте Карло

.doc
Скачиваний:
97
Добавлен:
10.02.2015
Размер:
34.3 Кб
Скачать

Метод Монте-Карло.

Метод Монте-Карло, или метод статистических испытаний, - это численный метод, основанный на моделировании случайных величин и построении статистических оценок для искомых величин.

Суть метода состоит в следующем. Для вычисления площади некоторой фигуры, проведем эксперимент: поместим данную фигуру в квадрат и будем наугад бросать точки в этот квадрат. Естественно предполагать, что чем больше площадь фигуры, тем чаще в нее будут попадать точки. Таким образом, можно сделать допущение: при большом числе точек, наугад выбранных внутри квадрата, доля точек, содержащихся в данной фигуре, приближенно равна отношению площади этой фигуры и площади квадрата.

Такой метод приближенного нахождения площадей фигур и носит название метода Монте-Карло.

Пример. Вычисление числа π методом Монте-Карло.

Постановка задачи: для вычисления числа π методом Монте-Карло рассмотрим круг радиуса 1 с центром в точке (1, 1). Круг вписан в квадрат, сторона которого, а=2. Тогда площадь квадрата Sквадрата= a 2 = 22 = 4.

Решение.

Выбираем внутри квадрата N случайных точек. Выбрать точку означает задать ее координаты – числа x и y.

Обозначим Nкруга – число точек попавших при этом внутрь круга.

Точка принадлежит квадрату, если 0≤x≤2 и 0≤y≤2.

Если (x-1)2 +(y-1)2 ≤ 1, то точка попадает в круг, иначе она находится вне круга. Геометрически очевидно, что

Отсюда

То есть для круга единичного радиуса:

Но для круга единичного радиуса , следовательно получаем: .

Данная формула дает оценку числа π. Чем больше N, тем больше точность этой оценки. Следует заметить, что данный метод вычисления площади будет справедлив только тогда, когда случайные точки будут не просто случайными, а еще и равномерно разбросанными по всему квадрату.

Для моделирования равномерно распределенных случайных чисел в интервале от 0 до 1 в языке программирования Turbo Pascal используется датчик случайных чисел – функция RANDOM, которая выдает последовательность случайных величин, равномерно распределенных от 0 до 1.

Таким образом, суть компьютерного эксперимента заключается в обращении к функции RANDOM для получения N раз координат х и у точки. При этом определяется, попала ли точка с координатами (х,у) в круг единичного радиуса. В случае попадания значение величины Nкруга увеличивается на 1.

Программа:

Program monte_karlo;

var i, n, n1 : LongInt; x, y, pi : real; begin Randomize;

WriteLn('Введите количество точек n=');

Readln(n); for i:=1 to n do begin x:=2*Random; y:=2*Random; if sqr(x-1)+sqr(y-1)<=1 then n1:=n1+1; end; pi:=4*n1/n; WriteLn('pi=', pi:15:11); end.