C++ implementation of the singular value decomposition(SVD)?

Возникла необходимость искать сингулярное разложение матрицы на C++, сразу оговорюсь, что геометрическую подноготную я к сожалению не понимаю, знаю лишь что для найденного разложения должно выполняться следующее соотношение в матричном виде A = U*W*V^T, где матрицы U, W, V являются результатом разложения SVD(A), а ^T операция транспонирования.
Нашел готовую имплементацию здесь. Для матрицы
MvIhgEDZds.png
она выдает следующее
результат TFqrdM6M0t.png.

Однако mathcad несогласен и считает немного иначе, так:
3SmGE61FRy.png

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы