Задать вопрос

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

Вопрос в следующем - почему данная имплементация верно считает цифры, но путает их местами и мудрит со знаками? Если она не рабочая, то где можно найти рабочую?
  • Вопрос задан
  • 4111 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Stepik
    Внутреннее устройство контейнеров в STL (C++)
    2 недели
    Далее
  • Skillbox
    Разработчик на C++
    7 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы