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
1997
Неправильно выбирать равномерное распределение по радиусу в полярных координатах, иначе густота точек у центра будет больше, чем на периферии.

 Профиль  
                  
 
 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
1813
Москва
Отличная демонстрация одного из парадоксов геометрической теории вероятностей.

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

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

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



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

Сейчас этот форум просматривают: Bing [bot]


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

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