Форум программистов, компьютерный форум CyberForum.ru

Кусочно-линейная аппроксимация - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.89
Lavios
62 / 62 / 2
Регистрация: 27.01.2011
Сообщений: 250
16.03.2012, 22:03     Кусочно-линейная аппроксимация #1
Добрый времени суток всем.
Необходима помощь в написание алгоритма кусочно-линейной аппроксимации. У меня дана таблица зависимости, грубо говоря градуировка сигнала x(Вход) и y(Выход).
Например:
x y
4 10
5 15
10 30

К примеру при входном сигнале 7, нужно определить в какой диапазон X-a попадает данное число, а потом применив алгоритм кусочно-линейной аппроксимации определить y.

Заранее благодарю за любую оказанную помощ

Добавлено через 20 часов 41 минуту
up.
И нафига переместили тему?)

Добавлено через 4 часа 8 минут
Едим вверх, до сих пор нужна помощь
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
16.03.2012, 22:48     Кусочно-линейная аппроксимация #2
А в чём вообще проблема? Какие трудности-то? Математика простейшая: находим отрезок x1 < x < x2, вычисляем вес для y1: w1 = (x2 - x) / (x2 - x1), вес для точки y2: w2 = (x - x1) / (x2 - x1), складываем: y(x) = y1*w1 + y2*w2
Lavios
62 / 62 / 2
Регистрация: 27.01.2011
Сообщений: 250
17.03.2012, 15:30  [ТС]     Кусочно-линейная аппроксимация #3
Еще возник вопрос, как оптимизировать хранение таблиц, поиск по ним и т.д. Так как входных сигналов может быть > 1000

Добавлено через 6 минут
забыл, с некоторой частотой - т.е. намного больше 1000 в секунду
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
18.03.2012, 09:12     Кусочно-линейная аппроксимация #4
Если сами данные в процессе работы не изменяются, то проще и удобнее всего разместить их в непрерывном массиве, лучше всего в std::vector. Лучше даже в двух - отдельно X, отдельно Y. Поскольку X в такой таблице будет упорядочен по возрастанию, для поиска нужного отрезка следует воспользоваться бинарным поиском, он очень быстрый. Если по каким-то неведомым причинам в исходных данных X не упорядочен по возрастанию, данные следует сначала упорядочить.
Lavios
62 / 62 / 2
Регистрация: 27.01.2011
Сообщений: 250
18.03.2012, 14:45  [ТС]     Кусочно-линейная аппроксимация #5
Цитата Сообщение от Nick Alte Посмотреть сообщение
Если сами данные в процессе работы не изменяются, то проще и удобнее всего разместить их в непрерывном массиве, лучше всего в std::vector. Лучше даже в двух - отдельно X, отдельно Y. Поскольку X в такой таблице будет упорядочен по возрастанию, для поиска нужного отрезка следует воспользоваться бинарным поиском, он очень быстрый. Если по каким-то неведомым причинам в исходных данных X не упорядочен по возрастанию, данные следует сначала упорядочить.
Возможно использование буста, если более быстрые методы у него, не подскажите?
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
18.03.2012, 17:51     Кусочно-линейная аппроксимация #6
В данном случае STL за глаза хватит. И контейнеры, и бинарный поиск там быстры настолько, что нет смысла искать что-то лучше.
Yandex
Объявления
18.03.2012, 17:51     Кусочно-линейная аппроксимация
Ответ Создать тему
Опции темы

Текущее время: 17:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru