2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

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

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Аппроксимация графика по точкам [сплайны литература]
Сообщение04.03.2010, 23:16 


04/03/10
2
Дано:
У меня есть значения, снятые в определенные моменты времени.
Каждое следующее значение больше предыдущего (график монотонно возрастает, см. ниже).

График с линейной аппроксимацией:
Изображение

Необходимо:
Интерполировать график то ли сплайном третьего порядка, то ли какоим-то полиномом, в общем главное, чтобы линия проходила четко через все точки и была гладкая кривая. Чтобы не было разрывов первого и второго родов и чтобы функция так же монотонно возрастала.

Пробую сиё сделать в пакете STATISTICA, но там никакая аппроксимация не проходит через точки (кроме линейной).
Посоветуйте что делать.. :cry:

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам
Сообщение04.03.2010, 23:32 
Заслуженный участник


11/05/08
32166
Disore в сообщении #294653 писал(а):
чтобы линия проходила четко через все точки

Это явно не адекватно, на графике явно виден случайный шум. Ищите что-нибудь вроде метода наименьших квадратов.

Но -- не глобально, конечно. На втором участке -- своя аппроксимация, на третьем -- своя.

А для первого и вовсе никаких мало-мальски достаточных данных для аппроксимации нет. Там, в принципе, может быть всё что угодно.

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам
Сообщение05.03.2010, 00:14 


04/03/10
2
Не не не, нету шума. Не нужен метод наименьших квадратов. Каждое след. значение больше предыдущего. Эти значения подобны количеству просмотров видео на Ютубе к примеру, то есть в момент выкладывания видео просмотров 0, а с течением времени они растут. Так и здесь. Надо что-то, что будет проходить явно через все точки. А как эта аппроксимация сработает на первом участке не столь критично, главное "проехать" через все точки.

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам
Сообщение05.03.2010, 13:34 


28/12/08
74
Вы можете интерполлировать
1) возможно, что Ексель умеет интерполлировать данные
2) в Ориджине (кубичекий сплайн, например)
3) написать простенький код (работающий алгоритм можна найти в Википедии)
4) можете выслать мне данные, я прогоню через свою программу, и вышлю Вам результат аппроксимации (быстро сделать не обещаю).
5) могу выслать вам код на фортране, и Вы прогоните данные сами. А если ещё и укажите мне на возможную оптимизацию, то я Вам буду ещё и признателен. Хотя вряд ли удасться там что-либо оптимизировать, уж больно простой код.

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам
Сообщение05.03.2010, 16:04 
Заслуженный участник
Аватара пользователя


01/08/06
3128
Уфа
http://en.wikipedia.org/wiki/Monotone_cubic_interpolation

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам
Сообщение05.03.2010, 16:40 
Аватара пользователя


06/01/06
967
Disore в сообщении #294653 писал(а):
Изображение

Disore в сообщении #294669 писал(а):
Каждое след. значение больше предыдущего. Эти значения подобны количеству просмотров видео на Ютубе к примеру, то есть в момент выкладывания видео просмотров 0, а с течением времени они растут.

Может быть это: http://ru.wikipedia.org/wiki/Логистическое уравнение ?

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам
Сообщение05.03.2010, 16:41 
Заслуженный участник


12/07/07
4522
Если классический кубический сплайн окажется монотонным, то, возможно, лучше использовать именно его. Достаточные условия монотонности классического кубического сплайна приводятся в работе
Волков Ю.С. О монотонной интерполяции кубическими сплайнами. // Вычислительные технологии. Т.6, № 6, (2001). pdf.
(В этой работе можно найти и ссылки на другие публикации посвященные данной тематике.)

В сети свободно доступна и работа
Пинчуков В.И. ENO-модификация нелокального кубического сплайна на равномерной сетке // Вычислительные технологии. Т.5, № 6, (2000).pdf

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам
Сообщение05.03.2010, 20:03 
Заслуженный участник


11/05/08
32166
GAA в сообщении #294866 писал(а):
Если классический кубический сплайн окажется монотонным,

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

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам
Сообщение05.03.2010, 22:18 


10/10/09
89
А в чём проблема?
Полином трудно составить?

-- Пт мар 05, 2010 23:54:31 --

Вот смотрите.
У вас есть точки и значения функции в этих точках - соответственно можно составить полином P(x).
Далее его надо сделать возрастающим.
Допустим у вас точки a, b, c
Вы составляете дополнительный полином R(x)=(x-a)(x-b)(x-c).
Ясно, что полином P(x)+R(x) в точках a,b,c , будет давать нужные цифры.
Добьёмся, чтобы полином R(x) всюду возрастал.
Допустим, что это не так и в точке x=e функция R(x) начинает убывать (а до этого всюду возрастала). Тогда полином D(x)=(-x+e)R(x) будет уже возрастать и после точки x=e.
Допустим, что мы добились того, что функция D(x) всюду возрастает, т.е. её производная больше нуля и её минимальное значение на указанном промежутке равно M1.
Возьмём теперь производную от функции P(x). Допустим, что она не всюду положительна, но тогда на указанном промежутке, очевидно, она достигает своего минимума M2.
Очевидно существует такое число E>0, что E*M1>|M2|.

Функция P(x)+E*D(x) будет монотонно возрастать, она будет гладкой, в нужных точках будет приниматиь нужные значения.

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам
Сообщение05.03.2010, 23:40 


10/10/09
89
У меня ошибка в выборе полинома D(x)

-- Сб мар 06, 2010 01:08:13 --

Для нахождения функции D(x) можно воспользоваться тем обстоятельством, что если D(x)=R(x)*F(x), то функция F(x) может быть любой.
Положим
$D(x)=e^{T(x)} \cdot R(x)}$
Чтобы производна от функции D(x) была положительной, требуется выполнение неравенства:
$T(x)' \cdot R(x)+R(x)'>0$
Возьмём $T(x)'=\frac {-R(x)'+1}{R(x)}$
Нужная функция T(x) определяется.

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам
Сообщение06.03.2010, 09:49 


10/10/09
89
ewert в сообщении #294935 писал(а):
GAA в сообщении #294866 писал(а):
Если классический кубический сплайн окажется монотонным,

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

нужный график построить можно, но я согласен с ewert

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам
Сообщение06.03.2010, 19:27 
Заслуженный участник


12/07/07
4522
ewert, в своем предыдущем сообщении я в первую очередь пытался дополнить worm2 (в указанных мною статьях даны ссылки на более поздние работы, посвященные интерполяцией монотонными сплайнами, по сравнению со ссылкой в википедии). [Опять же я не отметил какие ограничения надо наложить на функцию, и эти ограничения не указаны топикстартером. Много чего я не указал. Пусть Disore в литературе по ссылкам в статьях это посмотрит.]

(Оффтоп)

Что до исходных данных. Я в картинку не вглядывался. Топик стартер написал, что данные точные, вот и хорошо, я ему на слово верю. Возможно, он не все написал. Тут не угадаешь. Может ему эмпирическую функцию распределения надо нарисовать.

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам
Сообщение06.03.2010, 20:15 
Заслуженный участник


11/05/08
32166
Нечаянно испортил сообщение. Приношу свои извинения и прошу автора восстановить сообщение.

В исходном сообщении говорилось: несмотря на то, что автор вопроса говорит о том, что данные без шума, они, очевидно, шум содержат. // GAA

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам [сплайны литература]
Сообщение16.03.2013, 19:49 
Аватара пользователя


04/02/09
12
МАТЛАБ, функция pchip (кусочно гладкая функция, пройдёт через все точки)

 Профиль  
                  
 
 Re: Аппроксимация графика по точкам
Сообщение16.03.2013, 19:59 
Аватара пользователя


21/01/09
3925
Дивногорск
Disore в сообщении #294669 писал(а):
Не не не, нету шума. Не нужен метод наименьших квадратов. Каждое след. значение больше предыдущего. Эти значения подобны количеству просмотров видео на Ютубе к примеру.

Пример, который вы привели говорит как раз о наличии случайной составляющей, то есть о шуме.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Модераторы: Модераторы Математики, Супермодераторы



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

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


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group