roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 02:29

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Касательная к графику
СообщениеДобавлено: 25 май 2011, 15:49 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Michael_K писал(а):
Как все-таки математики далеки от реальности :)

Это не математики далеки от реальности, это разговоры о неведомых желаниях далеки от конкретной задачи :)

Добавлено спустя 3 минуты 3 секунды:
Просто если мы решаем математическую задачу, значит ставить её надо в математических терминах. Если же мы решаем прикладную задачу - ставить её надо в прикладных терминах.

А тут попытка спрятать прикладную задачу за математическими терминами без внятной формулировки математической задачи.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Касательная к графику
СообщениеДобавлено: 25 май 2011, 15:51 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Да, это тоже правда.
И все-таки большинство реальных задач фактически не имеют четкой математической постановки. Очень часто работают чисто эмпирические методы. Хотя, конечно, анализу (в какой-то степени) и они тоже поддаются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Касательная к графику
СообщениеДобавлено: 25 май 2011, 15:57 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Так ставить такие задачи нельзя в терминах другой области.
Ибо в такой постановке их вообще не решить :)

И тем более нельзя решить задачу ставя её в виде 1 примера графика и указывая в нём пальцем что нужно найти :) потому что такая задача включает в себя решение - вот же оно на рисунке!

Я так понимаю тут надо ставить математически задачу так, что есть ограничение, типа если на графике есть более чем 1 крупный участок (более 10% оси абсцисс в пределах графика) с практически нулевой 2 производной, тогда все участки кроме одного прилегают к границам графика - к левой или правой, и их нужно игнорировать.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Касательная к графику
СообщениеДобавлено: 25 май 2011, 16:00 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Да, я отвечал на первую часть вашей реплики. С дописанным абсолютно согласен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Касательная к графику
СообщениеДобавлено: 25 май 2011, 16:02 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
В указанной мной выше постановке задачи решение может выглядеть, например, так:
1. Фильтруем и усредняем полученные значения, чтобы не было точечных всплесков;
2. Ищем области почти нулевой (<заданного порога) второй производной большие по ширине чем 10% ширины графика;
3. В случае если таких областей отделенных от левой и правой границы графика более чем одна - выдаём ошибку;
4. Если такая отделенная от левой и правой границы одна - выдаём соотв. ей касательную.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Касательная к графику
СообщениеДобавлено: 25 май 2011, 16:02 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
=DeaD= писал(а):
такая задача включает в себя решение - вот же оно на рисунке!

Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Касательная к графику
СообщениеДобавлено: 25 май 2011, 16:59 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2007, 16:11
Сообщения: 1027
Откуда: иваново
Skype: cybsys1
прог. языки: Delphi
ФИО: Павел
=DeaD= писал(а):
1. Фильтруем и усредняем полученные значения, чтобы не было точечных всплесков;

как это сделать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Касательная к графику
СообщениеДобавлено: 26 май 2011, 15:53 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
CiSi писал(а):
как это сделать?

делается "движущее окно" значений

например avr - измеренное значение. avr_med - усредненное значение.
берем последние 16-ть значений (например):

int avr = 0, avr_med = 0;
while (1)
{
//measure avr;
.....
//
avr_med = avr_med * (15/16) + avr/16;
}

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Касательная к графику
СообщениеДобавлено: 26 май 2011, 16:58 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Эмм...

dccharacter, то что вы написали - совсем не движущееся окно (которое по сути КИХ-фильтр), а вовсе даже наоборот - БИХ-фильтр. Для фильтрации экспериментальных данных (тем более, ограниченного набора, тем более, если нужно не терять "фазу" - координату по оси X) он не очень применим.

Чтобы посоветовать конкретный алгоритм фильтрации, нужно смотреть на данные и знать как они снимались (например, через равные промежутки по оси Х или Y или "строго в беспорядке"), как распределен шум/погрешности и т.п.

Практически же, если у вас есть критерий "правильности" (а у вас он, очевидно, есть - вы же сказали, что вас какая-то касательная "не устраивает"), то проще "поиграть" параметрами и способом фильтрации на нескольких наборах данных.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Касательная к графику
СообщениеДобавлено: 26 май 2011, 17:10 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
просто я традиционно сильно затупил (не читал начало треда)

Добавлено спустя 7 минут 59 секунд:
Хм. А если нарисовать отрезок. НАчало отрезка - крайняя левая, конец - крайняя правая. Очевидно, что отрезок будет пересекать график. Берем, и начинаем движение влево - конец отрезка перемещаем на соседнюю точку влево. Пересекает отрезок график? да - двигаемся влево. Нет - начинаем двигать начало отрезка вправо. При этом контролируем ошибки (отклонения) в произвольных точках отрезка. Если они не превышают заданных - значит нашли прямой участок.

Это я предполагаю, что график выглядит так, как на рисунке.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Касательная к графику
СообщениеДобавлено: 27 май 2011, 00:10 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
CiSi писал(а):
как это сделать?

Например так - строим усредненный график - вокруг каждой точки выбираем окрестность с центром в этой точке и общей шириной пусть в 5% ширины графика, если там одна наша точка - оставляем, иначе аппроксимируем точки отрезком и считаем, что наша точка в усредненном графике будет иметь координату Y соответствующую на полученном отрезке координате Х нашей точки.

Лучше конечно не тупо усреднять так по всем, а перед таким усреднением сделать предзаход, в котором вообще выкинуть точки которые при таком усреднении сильно перемещаются по оси Y, скажем больше чем на 5% высоты графика.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO