Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Определения площади прямоугольника методом Монте Карло
СообщениеДобавлено: 07 окт 2021, 20:22 
Не в сети
Начинающий
Зарегистрирован:
28 фев 2020, 11:31
Сообщений: 3
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Здравствуйте, каким образом можно найти площадь прямоугольника используя метод Монте Карло, через площадь круга. Я написал небольшую программу на python, но результатам площади прямоугольника не верный.
import numpy as np
N=1000000 #Кол-во разыгрываемых точек
R1=3 #Радиус окружности
ugol=np.random.uniform(0, 2*np.pi, N) #Определение N полярных углов по равномерному распределению от 0 до 2 [math]\pi[/math]
r=np.random.uniform(0, R1, N) #Определение N полярных радиус по равномерному распределению от 0 до R1
x=r*np.cos(ugol)
y=r*np.sin(ugol)
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) #Вывод площади

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Определения площади прямоугольника методом Монте Карло
СообщениеДобавлено: 08 окт 2021, 09:01 
Не в сети
Последняя инстанция
Зарегистрирован:
06 дек 2014, 09:11
Сообщений: 7070
Cпасибо сказано: 115
Спасибо получено:
1662 раз в 1508 сообщениях
Очков репутации: 283

Добавить очки репутацииУменьшить очки репутации
Во-первых, код надо оформлять с тегом "code-color".
У вас же питон, а вы все отступы обнулили.
Во-вторых, зачем выделять массив и занимать память, если рандом можно организовать в цикле без массива.
Привыкли конечно к гигам оперативы. А если бы миллиард точек захотели бы взять? Хотя возможно массив рандома формируется быстрее, надо проверить. Если так - то за ошибку не считаем))
Ну и самое главное. Распределение, сначала выбираем радиус, а затем угол - вовсе не будет равномерным в круге.
Почитайте в топике viewtopic.php?f=10&t=75179 первый ответ MihailM. Только дальше не читайте, потому что бред пошел...
Это к тому как обманчивы и противоречивы вроде естественные предположения.
На опыте сразу видишь ошибку. Но новичку очень тяжело разобраться.
Если мы возьмем круг, например, 1/10 от радиуса, то в нем должно быть 1/100 часть точек. А по вашему распределению получается 1/10. Вот и получается, что точки сгущаются к центру.

Правильно будет сделать так:
Выбираем точки равномерно в описанном квадрате. Делаем проверку на попадание в круг, а уже из этих точек смотрим попадание в заданный прямоугольник. Примерно 22% точек будет сгенерирована лишнего, но это плата за "нестандартное" равномерное распределение.
С точки зрения здравого смысла получается, что мы сначала выливаем воду из чайника и сводим задачу к предыдущей. Но как задали, так задали. Другого способа получить равномерное распределение в круге, если таковой имеется, я сходу не скажу.

import numpy as np

N=1000000 #Кол-во разыгрываемых точек
R1=3 #Радиус окружности

n1=0
n2=0
while n2<N:
x = np.random.uniform(-R1, R1)
y = np.random.uniform(-R1, R1)
if x*x+y*y<=R1*R1: #Условие попадания точки в круг
n2 +=1
if abs(x)<=0.5 and abs(y)<=0.5: #Условие попадания точки в прямоугольник
n1 +=1

print(np.pi*R1*R1*n1/N) #Вывод площади


Результат в юпитере
Изображение

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

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Моделирование методом Монте-Карло

в форуме Численные методы

KA_px

2

517

26 мар 2019, 09:51

Вычислить площадь фигуры методом Монте-Карло

в форуме MathCad

Nastila

3

355

15 апр 2023, 12:53

Методом статистических испытаний (Монте-Карло) найти площадь

в форуме MATLAB

VgKroo

8

736

23 дек 2020, 19:34

Нахождение площадей полигонов Вороного методом Монте Карло

в форуме Аналитическая геометрия и Векторная алгебра

kuzo

0

583

24 сен 2015, 01:37

Вычислить площадь фигуры методом Монте-Карло в MathCaD

в форуме MathCad

Nastila

0

97

20 апр 2023, 10:17

Методом Монте-Карло вычислить площадь закрашенной фигуры

в форуме MathCad

Jack3995

1

1215

30 сен 2018, 01:04

Вычислить площадь закрашенной фигуры Методом Монте-Карло

в форуме MathCad

cooldeniskas

6

805

27 апр 2020, 11:26

Метод Монте Карло

в форуме Теория вероятностей

Krotikov

0

179

24 дек 2021, 19:13

Метод Монте-Карло

в форуме Математическая статистика и Эконометрика

Yrii

2

401

13 сен 2015, 13:58

Метод Монте-Карло

в форуме Численные методы

galachel

4

446

24 фев 2016, 20:25


Часовой пояс: UTC + 3 часа [ Летнее время ]



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

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


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

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved