roboforum.ru

Технический форум по робототехнике.

Касательная к графику

Все здесь

Касательная к графику

Сообщение CiSi » 25 май 2011, 09:42

требуется построить касательную к графику, как показано на рис.
Изображение
знаем только два массива точек Y и X. Осномная проблемма состоит в том - как определить ту прямую область через которую нужно проводить касательную.
касательную строить получалось но несовсем там где надо.
Помогите с определением прямой области?
Аватара пользователя
CiSi
 
Сообщения: 1027
Зарегистрирован: 04 окт 2007, 16:11
Откуда: иваново
Skype: cybsys1
прог. языки: Delphi
ФИО: Павел

Re: Касательная к графику

Сообщение Romikgy » 25 май 2011, 09:46

нет определения в какой точке необходимо строить касательную? наиболее прямая область на основном графике или как?
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: Касательная к графику

Сообщение Michael_K » 25 май 2011, 09:58

Что за график-то? Физический смысл есть какой-то? Откуда взялся массив?

На вид кажется, что касательная построена в точке максимальной производной. Это случайность?

Прямая область - это там, где вторая производная равна нулю. (Ну, условно...)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Касательная к графику

Сообщение RootAdmin » 25 май 2011, 10:16

Ну, это с первого курса помню - полином надо, потом считать производные функции...
http://www.alexeypetrov.narod.ru/C/sqr_less_about.html
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Касательная к графику

Сообщение Radist » 25 май 2011, 10:22

Насчет производных поддерживаю: касательная проведена через точку перегиба, первая производная в этой точке максимальна, а вторая меняет знак. Но ТС нужно уравнение линии
y(x)=k*x+b. Одна точка есть, а где взять вторую? Можно брать точку выше и точку ниже точки перегиба и по ним рассчитать прямую. Наверное ТС так и делал, но результат его не устроил. Можно брать другие точки и получать другие линии, но не исключена ситуация, что вторая точка линии не принадлежит массиву точек графика. Есть два пути: взять массив побольше - точность метода возрастет; воспользоваться интерполяцией, но все равно останется вопрос какую взять вторую точку.
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Касательная к графику

Сообщение =DeaD= » 25 май 2011, 10:36

Задача поставлена некорректно. Какие требования к этой прямой области? Чтобы она включала не менее N% от точек или не менее N% длины графика по оси X или длины графика как кривой или что вообще?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Касательная к графику

Сообщение CiSi » 25 май 2011, 12:30

Это график растяжения (сила (у), перемещение(х)) например бумаги или металла.
Условие такое "проводим прямую, совпадающую с начальным линейным участком" (то есть через ту область когда материал начинает растягиваться).
Аватара пользователя
CiSi
 
Сообщения: 1027
Зарегистрирован: 04 окт 2007, 16:11
Откуда: иваново
Skype: cybsys1
прог. языки: Delphi
ФИО: Павел

Re: Касательная к графику

Сообщение =DeaD= » 25 май 2011, 12:37

CiSi писал(а):Условие такое "проводим прямую, совпадающую с начальным линейным участком" (то есть через ту область когда материал начинает растягиваться).

Подчеркнутые слова очевидно противоречат друг другу. Таки начальным линейным участком (это очевидно ось абсцисс) или когда материал начинает растягиваться (это проведенная на графике прямая) ???
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Касательная к графику

Сообщение CiSi » 25 май 2011, 13:18

нет, все так. там где проведена прямая К и есть область растяжения, дальше там где изгиб - начинается разрыв материала, а потом спад нагрузки - разрыв (эта область недорисована).

Добавлено спустя 26 минут 43 секунды:
я так понял, сначало надо получить функцию получившегося графика, потом взять ее производную и в зависимости от знака определить места изгибов кривой?
Аватара пользователя
CiSi
 
Сообщения: 1027
Зарегистрирован: 04 окт 2007, 16:11
Откуда: иваново
Skype: cybsys1
прог. языки: Delphi
ФИО: Павел

Re: Касательная к графику

Сообщение Michael_K » 25 май 2011, 13:24

Ок - физический смысл нашелся.
Откуда взялся массив - это экспериментальные данные?
Что именно нужно найти и зачем?

Я бы, честно, эмпирически что-то выдумывал. Ну, например, сгладить данные фильтром или аппроксимировать чем-то. Тупо найти точку среднего усилия.
Искать в ее окрестностях зону максимума первой производной или зону со второй производной близкой к нулю.
Как-то так.

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

Re: Касательная к графику

Сообщение Radist » 25 май 2011, 13:31

2 ТС:
Как вы возьмете функцию графика? Есть апроксимации, конечно, маткад умеет что-то подобное. Кто у вас этим будет заниматься? Комп со своей программой а-ля маткад? Есть координаты точек, производная в точке - предел отношения приращения функции к приращению аргумента. Вторая производная - это производная первой производной. Из первого двумерного массива можно получить еще два двумерных массива, можно найти точку перегиба. Вы пишете, что получали касательную, но она вас не устроила, Напишите каким способом получали, какие были критерии качества и почему ваш результат вас не устроил. Для тех, кто легко владеет маткадом/матлабом, можно было бы привести массив графика, чтобы можно было попробовать найти эту прямую математически. Желательно в виде файла, подключаемого к маткаду.
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Касательная к графику

Сообщение =DeaD= » 25 май 2011, 14:53

Пока не будет нормальной математической постановки задачи - разговаривать не о чем.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Касательная к графику

Сообщение RootAdmin » 25 май 2011, 14:57

Ну так полином (построить функцию по массиву точек) может и МК считать. Медленно но верно.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Касательная к графику

Сообщение Michael_K » 25 май 2011, 15:27

=DeaD= писал(а):Пока не будет нормальной математической постановки задачи - разговаривать не о чем.

Как все-таки математики далеки от реальности :)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Касательная к графику

Сообщение CiSi » 25 май 2011, 15:30

Я делал так: разбивал кривую на отрезки (х1у1-х2у2, х2у2-х3у3 и т.д.), находил для каждого отрезка тангенс угла наклона, потом из массива этих коэфициентов искал наибольшее количество одинаковых, после выбора коэффициента из уравнения прямой вычислял "b" - и в конце рисовал касательную. проблема то как раз и состоит в нахождении именно этой прямой области.

Добавлено спустя 1 минуту 24 секунды:
Michael_K писал(а):
=DeaD= писал(а):Пока не будет нормальной математической постановки задачи - разговаривать не о чем.

Как все-таки математики далеки от реальности :)


согласен, но как показывает практика без математики тоже туго.
Аватара пользователя
CiSi
 
Сообщения: 1027
Зарегистрирован: 04 окт 2007, 16:11
Откуда: иваново
Skype: cybsys1
прог. языки: Delphi
ФИО: Павел

След.

Вернуться в Свободное общение

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

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