реклама на сайте
подробности

 
 
> Алгоритм нелинейной регрессии для AVR, возможно-ли такое
nikolas_osu
сообщение Nov 6 2009, 06:37
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 101
Регистрация: 6-12-07
Из: Оренбург
Пользователь №: 33 046



Необходимо аппроксимировать 400 точек полиномом 11 степени, потом полиномы 11 степени будут передаваться по медленному каналу связи...
Есть ли какие-нибудь готовые алгоритмы для этого?..
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Xenia
сообщение Nov 6 2009, 07:16
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(nikolas_osu @ Nov 6 2009, 09:37) *
Необходимо аппроксимировать 400 точек полиномом 11 степени, потом полиномы 11 степени будут передаваться по медленному каналу связи...
Есть ли какие-нибудь готовые алгоритмы для этого?..


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

Полином 11-ой степени уже не подарок, т.к. расчет в лоб потребует инвертирования матрицы, которая к тому же очень плохо определена (близка к матрице Гильберта). Поэтому такой расчет на AVR лучше не делать, а если и посылать в него данные, то не коэффициенты полинома, а уже готовую обращенную матрицу, чтобы тот только множил на нее вектор данных и больше ни о чем не заботился. А ту матрицу пусть хоть писюк посчитает. Только при этом нужно учесть, что такая матрица-сомножитель для вашего случая будет иметь размерность 400x11=4400 элементов, а если каждый по 4 байта (тип float), то выйдет 17.6 килобайт. Уже многонько, не каждая AVR-ка потянет. А с точностью double потребуется еще вдвое больше памяти. Да и само умножение получится не быстрым при такой большой матрице и медленной реализации умножения.

А если говорить об алгоритмах, то тут, полагаю, надо попытать расчет коэффициентов через полиномы Чебышева. Кажется где-то есть такой способ, отличающийся устойчивостью. Однако в любом случае AVR придется делать одну и ту же операцию умножения вектора длиной 400 на матрицу размером 400х12. А алгоритмы будут различаться между собой только тем, как такая матрица вычисляется. В любом случае вычислять ее надо будет не на AVR, а засылать ему уже готовую.
Go to the top of the page
 
+Quote Post
_pv
сообщение Nov 9 2009, 21:12
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата
Алгоритм нелинейной регрессии для AVR
Есть ли какие-нибудь готовые алгоритмы для этого?..

http://www.google.ru/search?&q=polynomial+fitting

только почему она нелинейная-то?

Цитата( @ Nov 6 2009, 14:16) *
На платформе AVR, как и на любой другой, можно запрограммировать любые вычисления, если ... хватит места под данные. Особеность тут только та, что МК этой платформы не имеют аппаратного умножения чисел с плавающей точкой, а с использованием эмуляции сложный расчет может занять порядочное время.
А ту матрицу пусть хоть писюк посчитает. Только при этом нужно учесть, что такая матрица-сомножитель для вашего случая будет иметь размерность 400x11=4400 элементов, а если каждый по 4 байта (тип float), то выйдет 17.6 килобайт.

Ну матрица будет всего 11х11, не так уж и много. Если даже по Гауссу занулять, за секунду вроде можно успеть, да и операции с плавающей запятой наверное можно ускорить немного, от точности зависит, никто же соответствия ieee-754 не требует.

Однако, целесообразность сего действа действительно крайне сомнительна.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- nikolas_osu   Алгоритм нелинейной регрессии для AVR   Nov 6 2009, 06:37
|- - vvs157   Цитата(_pv @ Nov 10 2009, 00:12) Ну матри...   Nov 9 2009, 22:20
|- - Oldring   Цитата(vvs157 @ Nov 10 2009, 01:20) Но то...   Nov 10 2009, 08:10
- - _Pasha   Цитата(nikolas_osu @ Nov 6 2009, 10:37) Н...   Nov 6 2009, 07:57
|- - nikolas_osu   Цитата(_Pasha @ Nov 6 2009, 12:57) Какое ...   Nov 6 2009, 08:01
- - Oldring   Цитата(nikolas_osu @ Nov 6 2009, 09:37) Н...   Nov 6 2009, 20:52
|- - Tanya   Цитата(Oldring @ Nov 6 2009, 23:52) Аппро...   Nov 7 2009, 04:21
- - Builder   Цитата(nikolas_osu @ Nov 6 2009, 09:37) Н...   Nov 6 2009, 21:40
|- - _Pasha   Цитата(Builder @ Nov 7 2009, 01:40) Ну а ...   Nov 6 2009, 21:57
- - Xenia   Вообще-то за 0.7 сек можно спокойно передать эти 4...   Nov 6 2009, 22:38
- - анатолий   В мобильнике считается полином 10 степени и от ~ 2...   Nov 7 2009, 15:10
- - Oldring   Цитата(анатолий @ Nov 7 2009, 18:10) В мо...   Nov 7 2009, 17:39
- - анатолий   Цитата(Oldring @ Nov 7 2009, 20:39) Ну ещ...   Nov 10 2009, 12:24
- - Oldring   Цитата(анатолий @ Nov 10 2009, 15:24) Это...   Nov 10 2009, 12:40
- - fontp   Цитата(Oldring @ Nov 10 2009, 15:40) И та...   Nov 10 2009, 12:46
- - анатолий   Цитата(Oldring @ Nov 10 2009, 15:40) Непр...   Nov 10 2009, 16:31


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 09:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01356 секунд с 7
ELECTRONIX ©2004-2016