Значение svd отличается между Matlab 2011b и 2012b

Я пытаюсь реализовать одну и ту же матрицу F для функции svd в обеих версиях Matlab. Однако я обнаружил, что знаки матриц U и V из обоих решений противоположны. Могу ли я узнать, какие версии MATLAB дают лучший или более точный ответ? или на самом деле оба ответа верны?


person kenneth    schedule 05.06.2013    source источник
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