Математический форум Math Help Planet
Обсуждение и решение задач по математике, физике, химии, экономике Теоретический раздел |
Часовой пояс: UTC + 3 часа [ Летнее время ] |
новый онлайн-сервис число, сумма и дата прописью |
|
Часовой пояс: UTC + 3 часа [ Летнее время ] |
Страница 1 из 1 |
[ Сообщений: 2 ] |
|
Автор | Сообщение | |
---|---|---|
Frekby |
|
|
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) #Вывод площади |
||
Вернуться к началу | ||
swan |
|
|
Во-первых, код надо оформлять с тегом "code-color".
У вас же питон, а вы все отступы обнулили. Во-вторых, зачем выделять массив и занимать память, если рандом можно организовать в цикле без массива. Привыкли конечно к гигам оперативы. А если бы миллиард точек захотели бы взять? Хотя возможно массив рандома формируется быстрее, надо проверить. Если так - то за ошибку не считаем)) Ну и самое главное. Распределение, сначала выбираем радиус, а затем угол - вовсе не будет равномерным в круге. Почитайте в топике viewtopic.php?f=10&t=75179 первый ответ MihailM. Только дальше не читайте, потому что бред пошел... Это к тому как обманчивы и противоречивы вроде естественные предположения. На опыте сразу видишь ошибку. Но новичку очень тяжело разобраться. Если мы возьмем круг, например, 1/10 от радиуса, то в нем должно быть 1/100 часть точек. А по вашему распределению получается 1/10. Вот и получается, что точки сгущаются к центру. Правильно будет сделать так: Выбираем точки равномерно в описанном квадрате. Делаем проверку на попадание в круг, а уже из этих точек смотрим попадание в заданный прямоугольник. Примерно 22% точек будет сгенерирована лишнего, но это плата за "нестандартное" равномерное распределение. С точки зрения здравого смысла получается, что мы сначала выливаем воду из чайника и сводим задачу к предыдущей. Но как задали, так задали. Другого способа получить равномерное распределение в круге, если таковой имеется, я сходу не скажу. import numpy as np Результат в юпитере |
||
Вернуться к началу | ||
[ Сообщений: 2 ] |
Похожие темы | Автор | Ответы | Просмотры | Последнее сообщение |
---|---|---|---|---|
Моделирование методом Монте-Карло
в форуме Численные методы |
2 |
517 |
26 мар 2019, 09:51 |
|
Вычислить площадь фигуры методом Монте-Карло
в форуме MathCad |
3 |
355 |
15 апр 2023, 12:53 |
|
Методом статистических испытаний (Монте-Карло) найти площадь
в форуме MATLAB |
8 |
736 |
23 дек 2020, 19:34 |
|
Нахождение площадей полигонов Вороного методом Монте Карло | 0 |
583 |
24 сен 2015, 01:37 |
|
Вычислить площадь фигуры методом Монте-Карло в MathCaD
в форуме MathCad |
0 |
97 |
20 апр 2023, 10:17 |
|
Методом Монте-Карло вычислить площадь закрашенной фигуры
в форуме MathCad |
1 |
1215 |
30 сен 2018, 01:04 |
|
Вычислить площадь закрашенной фигуры Методом Монте-Карло
в форуме MathCad |
6 |
805 |
27 апр 2020, 11:26 |
|
Метод Монте Карло
в форуме Теория вероятностей |
0 |
179 |
24 дек 2021, 19:13 |
|
Метод Монте-Карло | 2 |
401 |
13 сен 2015, 13:58 |
|
Метод Монте-Карло
в форуме Численные методы |
4 |
446 |
24 фев 2016, 20:25 |
Часовой пояс: UTC + 3 часа [ Летнее время ] |
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13 |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |