метод Монте-Карло
От: Аноним  
Дата: 04.04.04 10:52
Оценка:
Трехмерное тело образовано объединением нескольких сфер произвольного размера и взаимного расположения. Как найти объем этого тела, используя метод Монте-Карло?

Или подскажите как учесть в интеграле несколько сфер.

Спасибо.
Re: метод Монте-Карло
От: freestars  
Дата: 04.04.04 12:38
Оценка:
Здравствуйте, Вы писали:

А>Трехмерное тело образовано объединением нескольких сфер произвольного размера и взаимного расположения. Как найти объем этого тела, используя метод Монте-Карло?


Находишь параллелепипед в котором заключены все шары. Считаешь его объем. Затем рандомом кидаешь точки в этот параллелепипед и смотришь попадает ли точка в тело (достаточно чтоб она оказалась хотя бы в одном из шаров). Подсчитываешь кол-во кинутых точек и кол-во попавших. Тогда объем твоего тела = объем параллелепипеда * кол-во точек которые попали в тело / кол-во всех кинутых точек.
Re: метод Монте-Карло
От: Eugene Sh Россия  
Дата: 04.04.04 13:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Трехмерное тело образовано объединением нескольких сфер произвольного размера и взаимного расположения. Как найти объем этого тела, используя метод Монте-Карло?

Это уже рассказали
А>Или подскажите как учесть в интеграле несколько сфер.
Можно попробовать так.
Находишь параллелепипед, который содержит все эти сферы. Он задаётся 6-ю числами: x_min, x_max, y_min, y_max, z_min, z_max. Тогда объём фигуры можно будет найти как интеграл от z_min до z_max функции S(z), где S(z0) — площадь фигуры, получающейся при сечении шаров плоскостью z=z0. Эта фигура — объединение кругов (возможно пустое). Каждый круг — пересечение плоскости и отдельного шара. Найти центры и радиусы кругов несложно.
Теперь осталось найти площадь объединения кругов. Действуем аналогично: S = интеграл от y_min до y_max функции L(y), где L(y0) — мера множества, получаемого при пересечении фигуры с прямой y=y0. Эта мера — просто сумма длин отрезков, получаемых в пересечении. Их найти тоже можно — находим отрезки, получаемые при пересечении каждого круга с прямой. Потом находим объединение этих отрезков — это будет несколько (возможно 0) непересекающихся отрезков. Находим сумму длин этих отрезков — Это и есть L(y0).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.