Я пытаюсь реализовать одну и ту же матрицу F для функции svd в обеих версиях Matlab. Однако я обнаружил, что знаки матриц U и V из обоих решений противоположны. Могу ли я узнать, какие версии MATLAB дают лучший или более точный ответ? или на самом деле оба ответа верны?
Значение svd отличается между Matlab 2011b и 2012b
comment
Оба ответа правильны и так же хороши, как друг друга. Знак часто отличается между реализациями. См. stackoverflow.com/questions/5935893/ stackoverflow.com/questions/16053380/ и mathworks.com.au/matlabcentral/newsreader/view_thread/297670
- person Bull   schedule 05.06.2013
Ответы (1)
Разложение матрицы по сингулярным числам определено только с точностью до знака, поэтому знаки U
и V
произвольны, и оба ответа верны. Какие бы знаки ни производил MATLAB, все равно должно быть так, что F = U*S*V
, поэтому U
и V
составляют правильное разложение по сингулярным числам F
. (Обратите внимание на «а», а не на «то»).
Вы не должны полагаться на то, что MATLAB выдает определенные знаки, и они могут варьироваться от версии к версии.
person
Sam Roberts
schedule
05.06.2013