** Отредактировано **
Я попытался изменить упомянутый алгоритм Якоби на фиксированную точку, используя libfixmath, но я не получаю правильных результатов. . Что я пропустил??
C новичком здесь. Я каким-то образом загнал себя в пучину и не могу найти выход. Если бы вы могли помочь, это было бы здорово!
Ситуация: я пытаюсь реализовать алгоритм ICA на C. Я сделал это, используя арифметику с плавающей запятой (double, float). Теперь я хочу, чтобы этот код преобразовал его в фиксированную точку, чтобы я мог импортировать его на 32-битный микроконтроллер ARM (поэтому я не могу использовать двойное число, число с плавающей запятой и т. д.).
Я нашел четыре библиотеки, которые, я думаю, могут мне помочь:
- http://sourceforge.net/projects/avrfix/files/
- http://www.dsprelated.com/showcode/40.php
- http://sourceforge.net/p/fixedptc/code/ci/default/tree/
- libfixmath
Я не использовал 1. 2. или 3. В настоящее время я пробую libfixmath, потому что почти все вычисления выполняются с матрицами.
Моя проблема заключается в попытке найти собственные значения и собственные векторы матрицы ковариации (положительная симметричная матрица 3x3). Я искал библиотеки или функции, которые выполняют собственное разложение, SVD и т. д., но ничего не нашел.
Как сделать такие вычисления в фиксированной точке? Есть ли какие-либо функции/библиотеки, которые я не нашел? Должен ли я изменить собственную функцию, которая у меня есть в плавающей запятой (построчное преобразование в фиксированную точку - т.е. fix16_from_dbl() )?
Моя текущая собственная функция (не моя, конечно, я думаю, что она из числовых рецептов)
Другой актуальный вопрос: вот фиксированный SVD StackOverflow
****Это мой первый вопрос, если есть что поправить в моем вопросе, пожалуйста, так и скажите....не ешьте меня заживо! :)
** Отредактировано **
libfixmath делает Cholesky1, wiki2 и QR-разложение.
Я пытался поиграть с математикой и получить собственные векторы или собственные значения матрицы с этими данными (данными из вышеуказанных функций), но мне это не удалось.
Если кто знает как это сделать, то проблема решена.
*Должен ли я опубликовать его на веб-сайте математического стека?
1 http://rosettacode.org/wiki/Cholesky_decomposition
2 http://en.wikipedia.org/wiki/Cholesky_decomposition#The_Cholesky.E2.80.93Banachiewicz_and_Cholesky.E2. 80.93Crout_algorithms