Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: АЛУ и большая разрядность данных
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
bva_rzn
Доброго времени суток.

ПЛИС Cyclone IV E.

Решаю задачу решения СЛАУ. Ax=B. Система 5 на 5.
В матрице A все числа целые (разрядность 52 бита).
Взял метод Холецкого без вычисления квадратного корня (разложение LDL^t). Получилось около 20 делений.
Если числа переводить во floaе, то кажное умножение займёт 33 такта.
Причём в проекте необходимо решить три таких системы.

И здесь возник вопрос: при такой разрядности данных (52 бита) есть ли смысл переходить на фиксированную точку?

Спасибо.



iiv
Цитата(bva_rzn @ Jul 25 2013, 17:56) *
Решаю задачу решения СЛАУ. Ax=B. Система 5 на 5.

У Вас есть больше информации о матрице - например, если Вы взяли Холецкого, значит - положительно определенная, но вот об обусловленности, диагональном преобладании, структуре Вы ничего не сказали?

Как Вариант, взять метод сопряженного градиента, параллелится легко, сойдется гарантированно за 5 шагов, не вывалится как Холецкий если будет почти сингулярная, и если сильно постараться, то будет только одно деление и квадратный корень. Без последнего тоже можно обойтись, но нужно явно прорисовать весь алгоритм и тащить эту нормировку с шага на шаг, а в последнем - искать его итеративно (ИМХО, проще все-таки с квадратным корнем).

EDIT и самое главное, сопряженный градиент тривиально пишется в целочисленной арифметике - все векторы у Вас нормированные, то есть, при экспоненте 2**52 Вы можете не задумываясь соскалировать каждый вектор на эту же величину и взять целое. Есть куча более элегантных решений и для CG и без оного, но они обычно на 5*5 матрицах не применяются sad.gif
bva_rzn
Да, матрица положительно определённая, симметричная.
Метод сопряжённых градиентов применяется для поиска экстренума нелинейной функции, но у меня система линейная.
iiv
Цитата(bva_rzn @ Jul 25 2013, 19:23) *
Да, матрица положительно определённая, симметричная.

я это не спрашивал, это у Вас должно быть, чтобы Холецкого пользовать.

Цитата(bva_rzn @ Jul 25 2013, 19:23) *
Метод сопряжённых градиентов применяется для поиска экстренума нелинейной функции, но у меня система линейная.

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

Но, боюсь, Вам все-таки мат часть надо будет внимательнее учить, Холецкий с выделенной диагональю (LDL^T) для Вашей матрицы требует не как Вы сказали 20 делений, а только 5, плюс 30 умножений, но все это нужно делать или с плавающей точкой, или можно с фиксированной, но с выбором ведущего, или знать больше о матрице.
Maverick
Цитата(bva_rzn @ Jul 25 2013, 15:56) *
Доброго времени суток.
Спасибо.

Вы это смотрели?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.