Значение SVD отличается между Matlab 2011b и 2012b
Я пытаюсь реализовать одну и ту же матрицу F для функции SVD в обеих версиях Matlab. Однако я обнаружил, что знак матрицы U и V из обоих решений противоположен. Могу ли я узнать, какие версии MATLAB дают лучший или более точный ответ? или на самом деле оба ответа верны?
1 ответ
Решение
Разложение матрицы по сингулярному значению определяется только с точностью до знака, поэтому знаки U
а также V
произвольны, и оба ответа верны. Какие бы знаки ни производил MATLAB, все равно должно быть, что F = U*S*V
, так U
а также V
составляют правильное разложение по сингулярным числам F
, (Обратите внимание на "а", а не "на").
Вы не должны полагаться на MATLAB, производящий определенные знаки, и он может варьироваться от версии к версии.