Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/30: Рейтинг темы: голосов - 30, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 2

Как найти площадь треугольника методом Монте-Карло?

28.11.2013, 20:16. Показов 6085. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Не могу разрешить задачу суть ее такова. Мне дана плоскость на которой нарисован прямоугольник в него вписан треугольник и даны координаты углов треугольника. Необходимо найти площадь треугольника методом Монте-Карло, оценить его погрешность в процентах и длительность выполнения программы, но загвоздка у меня в том что я не знаю как реализовать равномерное распределение точек в нутри прямоугольника.

Добавлено через 2 минуты
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# -*- coding: utf-8 -*- 
import math
import random
 
e = 0
n = 7 # Степень числа N
t = 0.01 #  Точность сравнения вещественных чисел
N = 0 # Колличество точек
M = 0 # Колличество точек попавщих в треугольник
 
cx = input("Введите координату точки c по X:")
cy = input("Введите координату точки c по Y:")
bx = input("Введите координату точки b по X:")
by = input("Введите координату точки b по Y:")
ex = input("Введите координату точки e по X:")
ey = input("Введите координату точки e по Y:")
 
 
def PloshPr(ex,ey): #Вычисление площади прямоугольника 
    PloshPr = math.sqrt(ey**2) * math.sqrt(ex**2) 
    print "Ploshad Prjam", PloshPr
    return PloshPr
    
    
def PloshTr(cx,cy,bx,by,ex,ey): #Вычисление площади прямоугольника
    PloshTr = abs((cx-bx)*(ey-by)-(cy-by)*(ex-bx))/2.0
    return PloshTr
    
    
def  Proverka(M,N,n,ex,ey,t,e):
        for i in range(3, n+1):     
            N = 10**i           
            touch = [(random.uniform(0,ex+1),random.uniform(0,ey+1)) for i in range(10**i)] # Заполнение списка рандомными координатами   
            for (x,y) in touch:
                Stouch =  PloshTr(x,y,bx,by,ex,ey)+PloshTr(cx,cy,x,y,ex,ey)+PloshTr(cx,cy,bx,by,x,y) #Проверка попала ли точка в треугольник 
                if abs(PloshTr(cx,cy,bx,by,ex,ey) - Stouch) < t:
                    M = M+1
                else:
                    e = e+1
        PlTr = PloshPr(ex,ey)*M/N # Вычисление площади треугольника
        print "N=",N
        print "E", e
        print "M", M
        print PlTr
 
PloshPr(ex,ey)
PloshTr(cx,cy,bx,by,ex,ey)      
Proverka(M,N,n,ex,ey,t,e)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.11.2013, 20:16
Ответы с готовыми решениями:

Методом Монте-Карло определить площадь геометрической фигуры
Используя метод Монте-Карло определить площадь геометрической фигуры. Найти среднее и дисперсию эксперимеww Дано: Площадь поверхности...

Площадь n мерной сферы единичного радиуса методом Монте-Карло
1) Как вычисляется площадь обычной сферы методом Монте-Карло ? 2) Как это сделать в произвольном n мерном пространстве ? радиус = 1

Вычислить площадь фигуры методом монте-карло без использования рандомных чисел
Вычислить площадь фигуры методом монте-карло без использования рандомных чисел. Срочно.

1
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 2
30.11.2013, 16:24  [ТС]
Вот полный текст задания: "Исходными данными для каждого приложения являются координаты угловых точек заданного треугольника (abc, bcd или cbe, где xa<xe<xd). Для вычисления площади треугольника необходимо вначале вычислить площадь прямоугольника, описывающего заданный треугольник, а затем N раз сгенерировать по два случайных числа для координат x и y, определяющие точку внутри прямоугольника. Генерируемые случайным образом точки должны равномерно заполнять площадь прямоугольника. Для этого случайные числа должны иметь равномерное распределение (по ширине и высоте прямоугольника соответственно).
Для каждой точки выполняется проверка, попала ли точка внутрь заданного треугольника. Если из N точек M точек оказалось внутри тре-угольника, а площадь прямоугольника равна S, то площадь треугольника будет приближенно равна .
Поскольку площадь треугольника легко вычисляется по правилам геометрии, мы можем определить относительную погрешность прибли-женного вычисления этой площади методом Монте-Карло. Естественно, чем больше N, тем меньше погрешность такого вычисления.
Каждое приложение шесть раз повторяет эксперимент и вычисляет площадь треугольника методом Монте-Карло для соответственно. В каждом эксперименте определяется относительная погрешность вычисления площади (в процентах) и его длительность (в миллисекундах)." При в вводе координат А(4,0) В(6,0) С(8,4) "С вершина треугольника" площадь треугольника равна 4. Программа выдает 2,7; 2,8; 3,2 в чем может быть причина такого откланения ?

Добавлено через 19 часов 39 минут
Всем спасибо за помощь))). Вопрос снят тему можно закрывать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.11.2013, 16:24
Помогаю со студенческими работами здесь

Найти приближённое значение Пи методом Монте-Карло
При помощи метода Монте-Карло определите приближённое значение числа π. Метод Монте-Карло — общее название группы численных методов,...

Расcчитать методом Монте-Карло интеграл
Помогите пожалуйста с этими задачами: Примеров нет как их делать,ничего непонятно 1)Расcчитать методом Монте-Карло интеграл ф-ции...

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

Вычислить интеграл с заданной точностью методом Монте-Карло
вычислите с точностью до двух десятичных знаков интеграл, используя в качестве оценки вероятной ошибки величину.

Нахождение площади фигуры методом Монте Карло (python)
Добрый вечер, у меня возникла проблема с точностью площади, при нахождении методом Монет Карло. И я думаю что проблема заключается в том...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru