long long int a=min_a//сторона квадарата
double circle(double, double); //Выдает квадрат y в зависимости от координаты Х и радиуса круга.
#define min_a 100 //Начальный радиус
#define limit_a 1e6 //Максиальный радиус круга
#define limit_Nmax 1e7 //Максимальное количество точек
Чтобы это выяснить, я написал такую программу:
Поэтому, выражение (5), к сожалению, строго не выполняется. Логичны вопросы, каковы оптимальные размеры квадрата и как много нужно применить точек?
НО! При моделировании мы применяем псевдослучайные числа, которые не являются случайным процессом.
p =4 Nпопавших в круг / Nточек; (5)
p / 4 = Nпопавших в круг / Nточек; (4)
lim(Nточек ) (P2-P1)=0; (3)
Так, при большом количестве точек в численном эксперименте вероятности должны вести себя cледующим образом:
P2=Nпопавших в круг / Nточек; (2)
Вероятность попадания точки в круг можно также посчитать после численного эксперимента ещё проще: посчитать количество точек, попавших в круг, и поделить их на общее количество поставленных точек:
Выглядит это так:
P1=Sкруг / Sквадрата = pR2 / a 2 = pR2 / (2 R ) 2= pR2 / (2 R) 2 = p / 4 (1)
Существует много способов вычисления числа Пи. Самым простым и понятным является численный метод Монте-Карло, суть которого сводится к простейшему перебору точек на площади. Суть расчета заключается в том, что мы берем квадрат со стороной a = 2 R, вписываем в него круг радиусом R. И начинаем наугад ставить точки внутри квадрата. Геометрически, вероятность P1 того, чтот точка попадет в круг, равна отношению площадей круга и квадрата:
Вычисление числа Пи методом Монте-Карло
14 сентября 2011 в 16:43
Вычисление числа Пи методом Монте-Карло / Хабрахабр
Комментариев нет:
Отправить комментарий