Вероятностные модели. Метод Монте-Карло
Этапы разработки модели на компьютере Описание Формализация Запись на языке компьютера программа приложение Эксперимент(тестирование) Анализ результатов
1. Вероятностные модели - базируются на использовании большого количества испытаний со случайными параметрами - точность полученных результатов зависит от количества проведенных опытов
2. Метод Монте-Карло - используется для вычисления площадей геометрических фигур с помощью вероятностных моделей
Описательная модель метода Монте-Карло 1. Поместить геометрическую фигуру (круг) полностью внутрь квадрата
Описательная модель метода Монте-Карло 2. Будем случайным образом «бросать» точки в этот квадрат
Описательная модель метода Монте-Карло 3. Будем считать, что отношение числа точек, попавших внутрь фигуры, к общему числу точек в квадрате отношению площади фигуры (круга) к площади квадрата
Формальная модель S1 круга = *R 2 тогда S2 квадрата = 4*R 2 Пусть N – количество точек, которые случайным образом «бросаются» в квадрат
Формальная модель тогда, условие попадания точки в квадрат удовлетворяет условиям: -R x R - R y R
Формальная модель Пусть М – количество точек, попавших внутрь круга, т.е. удовлетворяют условию: x 2 +y 2 R 2
Формальная модель Запишем соотношение
12 Компьютерная модель на Turbo Pascal uses crt,graph; Var gd,gm,i,c:integer; n,m,x,y,r:longint; s1,s2,pi:real; ss1,spi:string; uses crt,graph; Var gd,gm,i,c:integer; n,m,x,y,r:longint; s1,s2,pi:real; ss1,spi:string; Целый тип ( ; ) Целый тип ( ; ) Строковый тип
13 Компьютерная модель на Turbo Pascal begin gd:=detect; Initgraph(gd,gm,); n:=10000; r:=100; Rectangle(0,0,2*r,2*r); Circle(0+r,0+r,r); m:=0; randomize; begin gd:=detect; Initgraph(gd,gm,); n:=10000; r:=100; Rectangle(0,0,2*r,2*r); Circle(0+r,0+r,r); m:=0; randomize;
14 Компьютерная модель на Turbo Pascal for i:=1 to n do begin x:=random(2*r); y:=random(2*r); if (x-r)*(x-r)+(y-r)*(y-r)<=r*r then begin m:=m+1; c:=14; end else c:=12; putpixel(x,y,c); end; for i:=1 to n do begin x:=random(2*r); y:=random(2*r); if (x-r)*(x-r)+(y-r)*(y-r)<=r*r then begin m:=m+1; c:=14; end else c:=12; putpixel(x,y,c); end;
15 Компьютерная модель на Turbo Pascal s2:=4*r*r; s1:=s2*(m/n); pi:=4*(m/n); str(s1:6:2,ss1); str(pi:6:2,spi); Outtextxy(25,450,s kryga=+ss1); Outtextxy(25,460,pi=+spi); Readln; Closegraph; End. s2:=4*r*r; s1:=s2*(m/n); pi:=4*(m/n); str(s1:6:2,ss1); str(pi:6:2,spi); Outtextxy(25,450,s kryga=+ss1); Outtextxy(25,460,pi=+spi); Readln; Closegraph; End. Преобразует число Х строку символов число строка символов
Домашнее задание § 5.7.2