Кто может рекомендовать стабильную и правильную реализацию Разделение единственного значения (SVD) в С++? Предпочтительно автономная реализация (не хотелось бы добавлять большую библиотеку для одного метода).
Я использую OpenCV... но openCV SVD возвращает разные разложения (!) для одной матрицы. Я понимаю, что существует более одного разложения простой матрицы... но почему openCV так нравится? случайный базис? или что?
В некоторых случаях эта неустойчивость вызывает ошибки в моих расчетах, и я не могу понять, почему. Однако, результаты возвращаются математикой или wolframalpha - всегда дают правильные вычисления....