230 likes | 738 Views
Вероятностные модели Метод Монте-Карло. Вероятностные модели. Вероятностные модели базируются на использовании серий испытаний со случайными параметрами. Точность зависит от количества испытаний. Где находится Монте-Карло?.
E N D
Вероятностные модели Метод Монте-Карло
Вероятностные модели • Вероятностные модели базируются на использовании серий испытаний со случайными параметрами. • Точность зависит от количества испытаний.
Где находится Монте-Карло? Предположите, какое отношение город Монте- Карло имеет к вероятностным моделям? Само название «Монте-Карло» происходит от города Монте-Карло в княжестве Монако, знаменитого своим игорным домом. Дело в том, что одним из простейших механических приборов для получения случайных величин является рулетка…
Цель: • Построить модель, приближенно вычисляющую площадь геометрической фигуры
Пример Y Нам нужно вычислить площадь плоской фигуры S. Это может быть совсем произвольная фигура с криволинейной границей, заданная графически или аналитически. N=40 точек Из них N1 =12 внутри фигуры S N1/N=12/40= 0,30. В то время как истинная площадь S=0,35. 1 N1 S N X 1
Две особенности Метода Монте-Карло:
Описательная модель Пример из жизни • Пример:Детская площадка располагается во дворе квадратной формы • Выпал снег и снежинки равномерным слоем покрыли поверхность двора и площадки • Если собрать снег с площадки отдельно, а потом весь снег во дворе и взвесить его, то полученное отношение приблизительно равно отношению площади площадки и двора Будем строить модель вычисления площади круга, вписанного в квадрат. Какой первый этап?
Описательная модель метода Монте-Карло: • поместим геометрическую фигуру полностью внутрь квадрата; • будем случайным образом «бросать» точки в этот квадрат, то есть с помощью генератора случайных чисел задавать точкам координаты внутри квадрата; • будем считать, что отношение числа точек, попавших внутрь фигуры, к общему числу точек в квадрате приблизительно равно отношению площади фигуры к площади квадрата, причём это отношение тем точнее, чем больше количество точек.
Формализуем задачу R X Круг вписан в квадрат со стороной 2R Площадь квадрата вычисляется по формуле: Sкв=4R2 -R
Y Формальная модель: R М – количество точек попавших внутрь круга(красные); X -R N – количество точек, которые случайно генерируются внутри квадрата(суммакрасных и синих). Sкр=Sкв*M/N
Круг вписан в квадрат со стороной 2R, площадь которого вычисляется по формуле: Sкв=4R2 Случайный выбор координат точек, которые попадают внутрь квадрата (N точек), должен производиться так, чтобы координаты точек x и y удовлетворяли условиям: -R<=x<=R и -R<=y<=R Координаты точек, попавших внутрь круга (М), удовлетворяют условию: x2+ y2<= R2 Тогда площадь круга можно вычислить по формуле: S=4R2* M / N
Компьютерная модель • Проблема 1 Как сгенерировать случайные числа внутри квадрата? x:=Random*4-2; y:=Random*4-2; • Проблема 2 Random функция real возвращает случайное вещественное в диапазоне [0..1) Как осуществить отбор точек попавших внутрь круга? If (x*x+y*y<4) then k:=k+1;
Program Monte_Karlo; Var S,x,y: real; i,M,N: longint; begin Writeln(‘Введите количество точекN:'); Readln(N); Randomize; M:=0; For i:=1 to N do begin x:=Random*4-2; y:=Random*4-2; If (x*x+y*y<4) then M:=M+1; end; S:=16*M/N; Writeln('S=',S:2:5); end. Работа программы при различных N различна. N=1000000 N=10000000 N=100000000
Почему с возрастанием количества случайных точек возрастает точность вычисления площади фигуры? Меньше ошибка, она обратно пропорциональна корню квадратному из числа измерений. Можно ли с помощью метода Монте-Карло определить площадь треугольника, вершины которого имеют координаты (-1,0); (0, 1) и (1,0)? Площадь произвольной фигуры?
Задание: y 1 Определить методом Монте-Карло площадь треугольника, вершины которого имеют координаты (-1,0); (0, 1) и (1,0). -1 0 1 x • Замечание: • Функция генерации случайных чисел работает так: если дать команду f= rnd(), то в переменную f будут попадать числа из интервала [0, 1]. • Условие попадания точек внутрь треугольника : • dblY>=0 и ABS(dblX) + ABS(dblY)<=1
Задание на дом: § 1.4.1 Написать программу: Определить методом Монте-Карло площадь треугольника, вершины которого имеют координаты (-1,0); (0, 1) и (1,0).
Работа программы: Пример 1. Введите N: 1000000 S=6.68218 Пример 2. Введите N: 10000000 S=6.67204 Пример 3. Введите N: 100000000 S=6.66691