Vovan писал(а):-1, ибо корявая задача, бесконечные уточнения и передача авторства (например Виталию, ибо уже ОН ставит задачу, без ведома автора)
"Всенаправленный приёмник" - что это??? Бред какой-то! Дайте реальное определение и пример реализации. Теоретическая точка-"приёмник" (эх! вынужден на ентом языке разговаривать, хоть это и не верно) в пространстве - не принимается.
Касательно "алгоритма оценки" от boez: распространение звука (гы! в вакууме
, ну конечно же в воздушной среде
), по-Вашему, имеет линейную зависимость? Если да - читать акустику, если нет - изложите почему, а иначе - голословие (asm)
ИМХО топику место в "задачах не из инета".
Ну автору небольшое замечание конечно сделать стоит - за расплывчатую постановку. Попробую на правах человека с высшим математическим образованием поставить четкое абстрактное условие. Автора прошу поправить, если я его не так понял.
Кстати, я не понял, чем вас не устроил всенаправленный приемник? Пример 1: радиоприемник с вертикальной штыревой, да или с любой другой всенаправленной антенной. Пример 2: Фотодиод, направленный вверх, а над ним зеркальный конус. Пример 3: микрофон, направленный вверх, а над ним твердый конус/иное круглое тело.
Так вот, имеем на плоскости фиксированную точку ("маяк") и подвижную точку ("робота"). Также имеем непрерывно дифференцируемую монотонно убывающую функцию одного переменного (зависимость уровня сигнала на приемнике, то что автор назвал "мощностью", от расстояния до маяка). В любой момент мы можем получить значение этой функции для заданного положения робота, а также имеем возможность перемещать робота с постоянной скоротью в некотором направлении и поворачивать это направление на заданный угол. Задача - описать алгоритм, приводящий робота на маяк.
Между прочим, заданным условиям все три названных выше варианта приемника удовлетворяют, с соответствующими передатчиками и при условии отсутствия препятствий и отражений.
А теперь почему мой алгоритм будет работать. А потому что нам нафиг не нужна линейность, вполне достаточно непрерывной дифференцируемости, если шаги "ступеньки" будут достаточно малы и перемещении на этот шаг производная функции расстояния не будет сильно меняться. Для функции 1/r (радио) или 1/r^2 (свет, звук), с которой убывает у нас сигнал, это означает что размер ступеньки должен быть просто существенно меньше расстояния до маяка. Тогда, несмотря на то что функция уровня сигнала в целом линейной не является, на каждом отрезке ступеньки ее можно считать линейной, причем даже не от расстояния, а от координаты Х в системе с началом координат на маяке и осью Ох, проходящей через робота. А уж в таком случает очевидно, что приращение сигнала равно производной функции сигнала в точке, равной текущему расстоянию до робота, умноженной на косинус угла между направлением движения робота и направлением на маяк. А поворот на 90 градусов нужен, чтобы найти синус того же угла, после чего сам угол находится однозначно. Ну конечно в пределах погрешностей, к которым добавились всякие члены второго порядка от наших линеаризаций - но на то они и второго порядка, чтоб уменьшаться быстрее уменьшения длины отрезка.
В общем, основная идея - непрерывно дифференцируемую функцию всегда можно заменить линейной на малом отрезке.