Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2011, 18:03   #1
Nurik1
Новичок
Джуниор
 
Регистрация: 19.11.2011
Сообщений: 2
По умолчанию геометрическая задача

даны действительные числа x,y. в треугольнике?вершинами которого служат точки (0,0),(0,1),(x,y),найти точку (для определения ее координат разрешается использовать методы приближенных вычислений), сумма расстояний от которой до вершин треугольника минимальна. Известно (теорема Штейнера),что для треугольника с углами, не превосхлдящими 2П/3(т.е 120 гр), эта точка совпадает с точкой Торричелли, т.е точкой, из которой все стороны треугольника видны под углом 2П/3. Если же в треугольнике имеется угол, больший 2п/3, то решением задачи будет вершина этого угла
Nurik1 вне форума Ответить с цитированием
Старый 20.11.2011, 05:03   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Nurik1 Посмотреть сообщение
(для определения ее координат разрешается использовать методы приближенных вычислений)
Это хорошо, но этих самых методов тут может быть куча.
Самое простое - это НЕ использовать теорему Штейнера, а тупо запрограммировать формулу для суммы расстояний. Получается функция двух перменных, и ее надо минимизировать. Это можно делать просто вычислением значений на сетке (находим минимальное, потом мельчим сетку вокруг него), либо с вычислением производных - например, градиентный спуск (ооочень капризный метод..)

Как тут применить теорему Штейнера?.. Ну, можно построить окружность на сторонах, как на хордах величиной 120 градусов (то есть построить на каждой стороне равносторонний треугольник и описать вокруг него окружность) и находить их пересечение. Но это тогда будет не приближенное, а точное вычисление. То есть, я имею в виду, без итераций, а просто поформуле (с машинным ограничением по точности).

Как делать по теореме Штейнера, но итеративно - можно подумать.. Но нужно ли?
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 20.11.2011, 10:07   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

а не проще найти максимальное расстояние между двумя точками треугольника и искомую поставить посередине этого отрезка?
Хм... не проще) пардон)
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 20.11.2011, 12:07   #4
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
а не проще найти максимальное расстояние между двумя точками треугольника и искомую поставить посередине этого отрезка?
Готов спорить, что проще! Еще проще пойти поспать..
Только какое отношение это имеет к задаче?

Извини, Naive - я понял, что ты понял, но все же не удержался )).
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Геометрическая задача Liza Dalbek Помощь студентам 2 22.12.2010 19:48
Геометрическая задача Liza Dalbek Общие вопросы C/C++ 0 22.12.2010 14:18
Геометрическая задача HackNick Общие вопросы C/C++ 5 02.09.2010 20:49
Геометрическая задача С++ bloo[d] Общие вопросы C/C++ 9 30.01.2008 18:27