近期对SVD分解的精度进行初步的测试:对比如下方法
1、采用VS上的opencv代码进行SVD分解
2、采用matlab进行SVD分解
3、采用HLS进行SVD分解
VS和MATLAB,奇异值在0附近的算法精度比较统一。
而HLS在奇异值0附近精度,二维或者三维矩阵上精度还可以,随维度的变化精度变差,甚至正负号都会与前面两者有差别。
VS的V矩阵与matlab 保持统一,U矩阵跟随S的排序不同,会有负号或者位置上的差别,绝对值统一。
HLS的奇异值在对角线上升序排列,其他二者依据算法初衷,降序排列。
后期尝试修改hls_svd函数源码,增加其精度。