2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Сколько точек взять, чтобы построить график?
Сообщение18.11.2013, 17:17 
Привет!

Мне надо начертить график в программе.

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

Знаю, есть такие теории на счет того, сколько брать столбиков в гистограмме в зависимости от числа наблюдений, а есть ли что-то подобное для рисования графиков в зависимости от кривизны линии (известно, допустим, что это парабола), или просто есть рекомендация?
Спасибо!

 
 
 
 Re: Сколько точек взять, чтобы построить график?
Сообщение18.11.2013, 18:03 
(Многие программы оставляют право выбора количества точек за пользователем. Вы пишете программу для построения или используете? (Из сообщения не ясно.))

Грубо говоря, чем сильнее отличается от нуля вторая производная функции, тем в том месте нужно было бы больше точек, чтобы отразить изменения первой. Если вторая производная известна с самого начала, можно и поизучать её, а вот если нет — с её численным нахождением выйдет похожая проблема.

 
 
 
 Re: Сколько точек взять, чтобы построить график?
Сообщение18.11.2013, 18:19 
Somenoob в сообщении #790086 писал(а):
в зависимости от числа наблюдений

Видимо значения в точках экспериментальные (с шумом) , может и расположены неравномерно?

 
 
 
 Re: Сколько точек взять, чтобы построить график?
Сообщение18.11.2013, 19:05 
Я использую программу, мне нужно в каждой точке при известном $x$ решить, допустим, оптимизационную задачу и найти $y$.

Xey, на счет шумов, у меня их нет, просто пример похожей задачи.

Значит вторая производная, ну логично, чем кривее линия, тем больше точек. Проблема в том, что мне придется численно ее считать, хотя в этом случае уж лучше сразу побольше точек взять и начертить :) Времени меньше уйдет.

 
 
 
 Re: Сколько точек взять, чтобы построить график?
Сообщение19.11.2013, 01:31 
Аватара пользователя
Я бы задал максимальное $|y_{i+1}-y_i|$.

 
 
 
 Re: Сколько точек взять, чтобы построить график?
Сообщение19.11.2013, 09:35 
Аватара пользователя
А вам жалко точек? Возьмите несколько тысяч. Этого точно хватит.

 
 
 
 Re: Сколько точек взять, чтобы построить график?
Сообщение19.11.2013, 10:04 
Sphinx Pinastri в сообщении #790270 писал(а):
А вам жалко точек? Возьмите несколько тысяч. Этого точно хватит.

Жалко времени, так как тысячу точек долго получать.

 
 
 
 Re: Сколько точек взять, чтобы построить график?
Сообщение19.11.2013, 13:42 
Аватара пользователя
Если это парабола, то 16 точек хватит. Но у вас же видимо график сложный. А так обычно число точек должно равняться число точек на мониторе к примеру 1280.
(*)Но если хотите гладкую, то разбиваете отрезок по полам, а половины еще пополам до тех пор пока средняя точка не будет отклоняться прямой на 0.5(лучше 1/8) пикселя выводимого на устройство вывода.
Прямая строиться по тем точкам которые разбиваем пополам.
В видео-картах к примеру разбиение идет через примерно 16 точек. Т.е 1280/16=80 точек. Это видимо больше аппаратная особенность.

По поводу гладкости, если график гладкий, то большие расчёты можно заменить сплайном третий степени. Будет считаться моментально. Да и вывод сплайнов функция стандартная, один из алгоритмов (*).

 
 
 
 Re: Сколько точек взять, чтобы построить график?
Сообщение08.01.2014, 14:02 
Аватара пользователя
А можно посмотреть уравнение из которого считается функция, график которой необходимо построить? Возможно, именно график можно будет построить гораздо быстрее, чем решать вашу задачу численно.

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group