Видео:Найти площадь пересечения кругов. Задача для тех, кто учился в школе на пятеркиСкачать
Расчет площади пересечения окружностей методом Монте-Карло
Эта статья родилась как логическое продолжение пятничного поста о методе Бутстрапа, а особенно, комментариев к нему. Не защищая метод Бутстрапа, стоит уделить внимание методам Монте-Карло. Здесь я хочу поделиться своим опытом применения Монте-Карло в одной из своих практических задач, а также обоснованием законности этого применения.
Итак, моя задача заключалась в необходимости вычисления площади фигуры, являющейся пересечением окружностей, с последующей реализацией на языке JavaScript. Площадь под графиком – это интеграл. Интегрирование методом Монте-Карло достаточно широко известно, но, как многие верно заметят, его применение требует некоторого обоснования. За подробностями прошу под кат.
Обоснование
Задача расчета площади пересечения двух окружностей является тривиальной геометрической задачей (координаты центров окружностей и их радиусы нам известны). Площадь пересечения двух окружностей – это сумма площадей соответствующих сегментов этих окружностей. Есть решения для расчета площади пересечения двух, трех, четырех окружностей в различных частных случаях.
А вот решения общего случая для пересечения даже трех окружностей уже далеко не так тривиальны. В процессе поиска я нашел даже исследования по расчету площади пересечения N окружностей, однако они настолько же интересны, насколько и сложны.
Здесь на сцену выходит метод Монте-Карло. Благодаря современным компьютерным мощностям этот метод позволяет провести большое количество статистических испытаний, на основе результатов которых делается обобщение.
Итак, алгоритм расчета площади любой фигуры методом Монте-Карло сводится к следующему:
- Фигура вписывается в прямоугольник. Координаты сторон прямоугольника известны, значит, известна его площадь.
- Псевдослучайным образом внутри прямоугольника генерируется большое количество точек. Для каждой точки определяется, попала ли точка внутрь исходной фигуры или нет.
- В результате площадь исходной фигуры вычисляется исходя из обычной пропорции: отношение количества точек, попавших в фигуру, к общему количеству сгенерированных точек равно отношению площади фигуры к площади ограничивающего ее прямоугольника.
Последняя проблема, которую надо решить, заключается в том, что каким-то образом необходимо определять, попала ли точка внутрь исходной фигуры. В моем случае данная задача решается достаточно просто, поскольку моя фигура состоит из окружностей, координаты центров и радиусы которых известны.
Реализация задачи на JavaScript
Пара гвоздей в метод Бутстрапа
Если говорить именно о методе Бутстрапа, то мое личное мнение заключается в том, что случайная генерация набора данных по имеющемуся набору в общем случае не может служить для оценки закономерностей, поскольку сгенерированная информация не является достоверной. В общем, это же, только более умными (и нередко более резкими) словами, говорят и многие авторы, например, Орлов в своем учебнике по Эконометрике.
Видео:Теорема о числе точек пересечения двух окружностейСкачать
Площадь пересечения двух кругов
Позволяет рассчитать площадь пересечения двух окружностей произвольных радиусов.
Используются достаточно простые формулы, которые элементарно доказываются.
Дополнительно есть калькулятор, который высчитывает координаты пересечения двух окружностей
Площадь пересечения двух окружностей состоит из двух сегментов FDG и FBG
Вывести формулу расчета площади пересечения двух окружностей можно из двух общеизвестных формул и знаний решения треугольника:
Формулы сектора окружности
и длина хорды окружности
По известным сторонам треугольника AFС определяем высоту на сторону AC.
Удвоением этой высоты мы получаем длину хорды, после этого узнаем угол альфа по второй формуле.
По известным сторонам треугольника AFG узнаем его площадь. Вычитаем её из площади сектора окружности, ведь угол альфа нам уже известен.
И получаем площадь сегмента FBG
Подобным образом вычисляем FDG
Это лишь один из способов решения задачи вычисления площади пересечения двух окружностей.
— радиус первой окружности
— радиус второй окружности
— расстояние между центрами окружностей
Видео:Лучший способ найти площадь кругаСкачать
Пример
Хотим узнать площадь пересечения двух окружностей радиусом в 1 и расстоянием между центрами 0.8079455
Пишем okr 1 1 0.8079455
Площадь двух пересекающихся окружностей равна = 1.5707963388681
Первая окружность радиус 4, вторая окружность радиус 2, расстоянием между центрами 3
Пишем okr 4 2 3
Площадь двух пересекающихся окружностей равна = 9.5701994729833
Первая окружность радиус 4, вторая окружность радиус 2, расстоянием между центрами 0
Видео:Длина окружности. Площадь круга. 6 класс.Скачать
Площадь пересечения двух кругов
ГЕОМЕТРИЯ для SSC CGL-41 | Длина общих хорд круга | Продвинутая математика для SSC CGL | CHSL [IN HINDI]
- C1 при ( x1 , y1 ) с участием radius1
- C2 в ( x2 , y2 ) с участием radius2
Как вы рассчитываете площадь их пересечения? Все стандартные математические функции ( sin , cos и т.д.), конечно, доступны.
- mathworld.wolfram.com/Circle-CircleIntersection.html
- Спасибо. Я действительно знал о ссылке до публикации. Я действительно искал конкретное уравнение, используя перечисленные мной переменные.
Хорошо, используя ссылку Wolfram и подсказку Misnomer для просмотра уравнения 14, я получил следующее решение Java, используя перечисленные мной переменные и расстояние между центрами (которое может быть тривиально получено из них):
- 1 Да, я проверил там, и там уже есть ветка, где официально одобренный ответ гласит, что хорошо вернуться и ответить на свой вопрос. Но не похоже, что большинство пользователей SO действительно следуют этой политике. Не обижайтесь на Мисномера, и я ценю его попытку помочь. Но прямо сейчас у него есть 3 голоса за то, что они дали мне ссылку, о которой я уже знал до публикации. Я проделал тяжелую работу по переводу информации в этой ссылке в код и получил только один голос «за». Я неоднократно видел такое поведение толпы на SO, и это меня сбивает с толку.
- @ Крис .. ты только что проголосовал против моего ответа, потому что . ты хотел, чтобы у твоего было больше голосов . а теперь это сбивает меня с толку . но в любом случае . пожалуйста, напишите хотя бы комментарий с объяснением отрицательных голосов в следующий раз ..
- 1 re: начисление очков за ответы самостоятельно — это слишком упрощает игру в систему. И с философской точки зрения логично, что вас следует вознаграждать, только если вы приносите пользу другим, а не себе. Re: отрицательное голосование — imho, это следует делать только в том случае, если ответ неправильный или вводящий в заблуждение. Ответ, содержащий полезную информацию, даже если это не совсем то, что вам нужно, может быть полезен другим.
- 2 Также, возможно, стоит добавить пояснительные комментарии (и код) к условиям ошибки и их значению. Например. Если (выражение в sqrt) 1
- 1 @ user1145925 При r = 1, R = 2, d = 1 правильная область пересечения фактически равна Pi, а не Pi / 2.
Вот функция JavaScript, которая делает именно то, что искал Крис:
Однако этот метод вернет NaN, если один круг полностью находится внутри другого или они вообще не соприкасаются. Немного другая версия, которая не терпит неудачу в этих условиях, выглядит следующим образом:
Я написал эту функцию, прочитав информацию, найденную на математическом форуме. Я нашел это более ясным, чем объяснение Wolfram MathWorld.
- Спасибо — мне это помогло! Модифицированная версия была именно тем, что мне нужно.
- Это неверный ответ. Я не совсем уверен, где логическая ошибка, но она не работает, по крайней мере, в этих случаях (когда r1 приближается к 2 снизу): x0 = 0, y0 = 0, r0 = 1, x1 = 1, y0 = 0, r1 = 2. В частности, ваш код дает площадь, приближающуюся к Пи, когда она должна приближаться к Пи / 2.
- 1 @ user1145925, для входов x0 = 0, y0 = 0, r0 = 1, x1 = 1, y0 = 0, r1 = 2 вывод Pi верен, поскольку круг 0 имеет площадь Pi и полностью содержится внутри круга 2.
Вы можете проверить это аналитическое решение и применить формулу с вашими входными значениями.
Здесь приводится другая формула для случая, когда радиусы равны:
- 1 +1 Первая ссылка имеет полный вывод формулы. Второй полезен, если радиусы окружностей одинаковые.
- Спасибо за ссылки. Есть ли более общая формула, которую можно вывести, используя конкретно указанные мной переменные (например, не предполагая общего радиуса)?
- 1 Думаю, первая ссылка уравнение 14 дает вам общее решение, но мне нужно освежить математику, чтобы увидеть, что именно происходит . также вам может потребоваться больше, чем радиусы кругов, чтобы найти это, также попробуйте это, если полезно — 2000 кликов .com / MathHelp /…
- Ладно. Я надеялся, что существует простое уравнение с использованием перечисленных мной переменных. Я попытаюсь изучить уравнение 14 и найти способ заменить в него переменные, которые у меня были.
Здесь я делал инструмент для генерации персонажей на основе пересечений кругов . вы можете найти его полезным.
📽️ Видео
Задача о площади фигуры, ограниченной 4 окружностямиСкачать
Найдите площадь фигуры между тремя касающимися окружностямиСкачать
Взаимное расположение окружностей. Точки пересечения окружностейСкачать
Пересечение двух окружностейСкачать
Почему площадь круга равна pi•R²Скачать
Длина окружности. Площадь круга - математика 6 классСкачать
Как найти площадь части круга? (неровной)Скачать
Эта задача спасла жизнь, или ищем площадь пересечения эллипсовСкачать
2 круга 1 квадрат ➜ Задача от @AndyMath ➜ Найдите площадь квадрата на рисункеСкачать
Площадь круга. Математика 6 класс.Скачать
Всё про углы в окружности. Геометрия | МатематикаСкачать
Как найти центр круга #2Скачать
Найдите площадь круга на рисунке, если площади других кругов равны πСкачать
Взаимное расположение окружностей. 7 класс.Скачать
Математика | 5 ЗАДАЧ НА ТЕМУ ОКРУЖНОСТИ. Касательная к окружности задачиСкачать
Длина окружности и площадь кругаСкачать