2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Максимальное линейное приближение данных
Сообщение24.05.2011, 09:06 
Заблокирован


19/06/09

386
Доброго времени суток!

Есть какая-то функция, для которой известны все ее значения допустим во всех натуральных числах от 0 до 100.
Эту функцию надо как-то приблизить, причем не абы как, а кусочно-линейной непрерывной функцией, которая имеет, например, 10 узлов(точек излома).
Два узла должны быть расположены в концах отрезка [0;100].
Надо найти минимальную кусочно-линейную приближающую функцию(или ее узлы), такую, чтобы сумма квадратов отклонений приближающей функции от нашей по всем известным точкам была минимальной.

Я ищу численное решение. Количество точек известной функции как и количество узлов искомой могут меняться.

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

Может у вас есть какие-то мысли?

 Профиль  
                  
 
 Re: Максимальное линейное приближение данных
Сообщение24.05.2011, 14:18 
Заслуженный участник


26/07/09
1559
Алматы
Ваша задача случаем не имеет чего-нибудь общего с задачей из темы параметризация поверхности?

 Профиль  
                  
 
 Re: Максимальное линейное приближение данных
Сообщение24.05.2011, 15:06 


17/04/11
70
Очень давно что-то похожее делал для укладки трубы по геодезическим точкам.
Писал программу расчёта. Теория - статья какого-то итальянца на итальянском в Биометрике. Статью находили в Ленинке. Вот и всё.

 Профиль  
                  
 
 Re: Максимальное линейное приближение данных
Сообщение24.05.2011, 19:17 
Заслуженный участник
Аватара пользователя


30/01/09
6703
jetyb. Запишите Вашу задачу как задачу линейной регрессии и примените метод наименьших квадратов.

 Профиль  
                  
 
 Re: Максимальное линейное приближение данных
Сообщение24.05.2011, 20:45 
Заслуженный участник


09/08/09
3438
С.Петербург
jetyb,
я думаю, можно попробовать порешать нелинейную задачу МНК для нахождения координат $x_2, ..., x_9, y_1, ..., y_{10}$ точек излома аппроксимирующей ломаной с линейными ограничениями $x_1 < x_2 < ... < x_9 < x_{10}$.

мат-ламер в сообщении #449734 писал(а):
Запишите Вашу задачу как задачу линейной регрессии и примените метод наименьших квадратов.
Стесняюсь спросить: а как Вы предлагаете записать задачу линейной регрессии при неизвестных абсциссах точек излома?

 Профиль  
                  
 
 Re: Максимальное линейное приближение данных
Сообщение24.05.2011, 21:10 
Заслуженный участник
Аватара пользователя


30/01/09
6703
Цитата:
Стесняюсь спросить: а как Вы предлагаете записать задачу линейной регрессии при неизвестных абсциссах точек излома?

В условии не говорится насчёт того, что они неизвестны и мы их можем двигать.

-- Вт май 24, 2011 22:13:37 --

Извиняюсь, прочёл попытки решения. Действительно узлы неизвестны. В какой-то книге Завьялова по сплайнам такая задача рассматривается.

-- Вт май 24, 2011 22:15:19 --

Книга называется, типа, сплайны в инженерной геометрии. Но точно не помню.

-- Вт май 24, 2011 22:24:42 --

jetyb в сообщении #449537 писал(а):
Но для каждого набора x - координат узлов вид искомой кусочно - линейной функции меняется, и я не представляю как составить какое - нибудь удобоваримое минимизуемое выражение от узлов.

Но ведь это можно записать в удоваримой форме, пригодной для программирования.

 Профиль  
                  
 
 Re: Максимальное линейное приближение данных
Сообщение25.05.2011, 12:25 
Заслуженный участник
Аватара пользователя


11/03/08
9579
Москва
Как вариант решения - регрессия на функции вида
$$
f_i(x)=\begin{cases}
0,&\text{если $x \lt<i$;}\\
x-i,&\text{если $x>i$.}
\end{cases}
$$
используя какой-либо алгоритм пошаговой регрессии.

 Профиль  
                  
 
 Re: Максимальное линейное приближение данных
Сообщение25.05.2011, 21:09 


17/10/08

1313
Напрашивается генетический алгоритм, у которого переменные $x_i$, а целевая функция – минимальная сумма квадратов разностей.
Данные есть? Можно попробовать.

 Профиль  
                  
 
 Re: Максимальное линейное приближение данных
Сообщение26.05.2011, 08:42 
Заблокирован


19/06/09

386
Генетический алгоритм? Интересно.
Правда если считать, что следующее поколение получилось из предыдущего сдвигом некоторых узлов на шаг влево - вправо, то могут возникнуть проблемы с огромным размером нового поколения (в задаче я ищу в среднем около 100 узлов для 500 точек). Но если сперва искать не 100, а 10 узлов, а в получившихся отрезках снова искать по 10 узлов, то что-то может и получиться. Подумаю.

мат-ламер в сообщении #449805 писал(а):
Но ведь это можно записать в удоваримой форме, пригодной для программирования.
Можно, только получится чисто программистская функция, содержащая циклы и условные операторы, а к ним сложно применить какие-то матметоды, не продифференцируешь, даже не сравнишь, а прямой перебор нереален.

Хорошо бы перевести выражение в чисто математический вид, не содержащих каких-либо условий, тогда к нему можно бы было применять и регрессию, и МНК.

 Профиль  
                  
 
 Re: Максимальное линейное приближение данных
Сообщение26.05.2011, 08:57 
Заслуженный участник
Аватара пользователя


11/03/08
9579
Москва
Изображение
Вот опыт применения описанного выше подхода. Для расчёта использовалась пошаговая регрессия с добавлением переменных (Forward) пакета Statistica, F на включение 4, на исключение 3. Получено 8 узлов. Подстройку их числа можно делать, меняя F (конечно, если писать свою программу, то проще задавать число добавляемых).

 Профиль  
                  
 
 Re: Максимальное линейное приближение данных
Сообщение26.05.2011, 09:10 


14/01/11
2922
Это как же кусочную функцию задать без условий? Разве что через модули.
$y(x)=a_1(x-x_1)+\sum_{i=2}^{n}a_i|x-x_i|$.

 Профиль  
                  
 
 Re: Максимальное линейное приближение данных
Сообщение26.05.2011, 09:56 
Заблокирован


19/06/09

386
Евгений Машеров
Класс! Осталось разобраться в приведенном алгоритме.
Спасибо.

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

 Профиль  
                  
 
 Re: Максимальное линейное приближение данных
Сообщение26.05.2011, 15:15 
Заслуженный участник
Аватара пользователя


11/03/08
9579
Москва
Алгоритм, по сути, сводится к поочередному включению в модель базисных функций и проверке, не стали ли в результате ранее включённые незначимы. Описание пошаговой регрессии можно найти в разных источниках, например, в книге Себера "Линейный регрессионный анализ"
http://depositfiles.com/ru/files/6619118

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

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

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



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

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


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

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