2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Определения площади прямоугольника методом Монте Карло
Сообщение07.10.2021, 20:25 


28/02/20
7
Здравствуйте, каким образом можно найти площадь прямоугольника используя метод Монте Карло, через площадь круга. Я написал небольшую программу на python, но результатам площади прямоугольника не верный.
Используется синтаксис Python
import numpy as np
N=1000000 #Кол-во разыгрываемых точек
R1=3 #Радиус окружности
ugol=np.random.uniform(0, 2*np.pi, N) #Определение N полярных углов по равномерному распределению от 0 до 2pi
r=np.random.uniform(0, R1, N) #Определение N полярных радиус по равномерному распределению от 0 до R1
x=r*np.cos(ugol)#Определение N декартовых координат x
y=r*np.sin(ugol)#Определение N декартовых координат y
n1=0
for ii in range(N):
    if x[ii]>=-0.5 and x[ii]<=0.5 and y[ii]>=-0.5 and y[ii]<=0.5: #Условие попадания точки в прямоугольник
        n1+=1
print(np.pi*R1*R1*n1/N) #Вывод площади

 Профиль  
                  
 
 Posted automatically
Сообщение07.10.2021, 20:46 
Заслуженный участник


09/05/12
25179
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
по следующим причинам:

- для отображения кода используйте соответствующие теги (с подсветкой синтаксиса) - в случае Python это совершенно необходимо;
- в программах принято писать комментарии (можно не в коде, а отдельно, но надо пояснять, что и зачем вы делали);
- если что, человека по имени Карл Монте не существовало в природе, поинтересуйтесь, как правильно пишется название метода.

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.

 Профиль  
                  
 
 Posted automatically
Сообщение07.10.2021, 21:30 
Заслуженный участник


09/05/12
25179
 i  Тема перемещена из форума «Карантин» в форум «Программирование»
А почему вот это делалось именно так:
Используется синтаксис Python
r=np.random.uniform(0, R1, N) #Определение N полярных радиус по равномерному распределению от 0 до R1
?

 Профиль  
                  
 
 Re: Posted automatically
Сообщение07.10.2021, 21:53 


28/02/20
7
Pphantom в сообщении #1534221 писал(а):
 i  Тема перемещена из форума «Карантин» в форум «Программирование»
А почему вот это делалось именно так:
Используется синтаксис Python
r=np.random.uniform(0, R1, N) #Определение N полярных радиус по равномерному распределению от 0 до R1
?

Так как угол меняется от 0 до 2пи, то радиус достаточно менять от 0 до R1. Я проверял точки генерируются верно. Но вот итоговая площадь прямоугольника не верная выходит. Я так же использовал в качестве исходной площади прямоугольник и по нему распределял точки, в этом случае неизвестная площадь определялась верно. А вот с окружностью не выходит

 Профиль  
                  
 
 Re: Определения площади прямоугольника методом Монте Карло
Сообщение07.10.2021, 21:54 


20/04/10
1776
Неправильно выбирать равномерное распределение по радиусу в полярных координатах, иначе густота точек у центра будет больше, чем на периферии.

 Профиль  
                  
 
 Re: Определения площади прямоугольника методом Монте Карло
Сообщение07.10.2021, 23:30 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
https://mathworld.wolfram.com/DiskPointPicking.html

 Профиль  
                  
 
 Re: Определения площади прямоугольника методом Монте Карло
Сообщение07.10.2021, 23:36 
Заслуженный участник
Аватара пользователя


05/12/09
1769
Москва
Отличная демонстрация одного из парадоксов геометрической теории вероятностей.

Чтобы правильно получалось, в качестве радиуса надо брать корень квадратный из равномерной величины.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group