0

SVD 的 MATLAB 文档指出,返回的对角矩阵具有按降序排列的奇异值。有没有办法找出奇异值的自然顺序是什么?我问的原因是因为奇异值对应于与输入矩阵的行相关的维度。

4

2 回答 2

4

不,SVD 的定义并没有引入排序。将讨论限制在X方阵上并采用与引用的matlab 文档相同的表示法,如果X = U*S*V'是 的 SVD X,那么对于每个置换矩阵 P,我们可以形成一个有效的 SVD 为X = (U*P)*(P'*S*P)*(V*P)'。用递减值表示矩阵S只是为了方便:每个排列P'*S*P都会做同样的工作。

作为旁注:P*X = P*U*S*V'表明矩阵的行排列X 不会改变奇异值S,这可以被认为独立于 的任何行(或列)排列X

于 2012-08-12T21:26:09.770 回答
3

我希望在回复之前对这里的问题有所了解。例如,我在文件交换中发布的eigenshuffle工具允许您重新排序特征问题序列的特征值和特征向量,因此它们在序列上彼此最大程度地一致。也许您的问题是相似的,因此您可能会将奇异值视为随驱动系统的某些参数而变化的函数。

但实际上,用于计算 SVD 的方法没有对奇异值进行自然排序。事实上,唯一有意义的顺序是出现的顺序 - 降序。奇异值的顺序不依赖于矩阵行的顺序,因为这个问题似乎含糊其辞,所以我不确定那里的意思。

如果您可以使您的需求更清楚,请随时修改问题。

于 2012-08-12T19:10:53.737 回答