当前位置: > 奇异值分解可能会出现多个矩阵有相同的分解吗?...
题目
奇异值分解可能会出现多个矩阵有相同的分解吗?
本来我觉得这是根本不可能的,但是现在出现了这么一个情况:
这是我用Matlab算奇异值的时候遇到的一个问题:
现在写了一个算奇异值和奇异向量的算法.目前需要验算这个算法,但是验算的时候出了一些问题.
(问题:给出一个200 * 100的长方阵,我让它的奇异值尽量均匀分布,以便于检验,然后进行奇异值计算.)
(记号:原长方阵是A,我的奇异值算法给出了A = V * Sigma * U(T)【(T)是转置】,VU分别是左奇异向量和右奇异向量,Sigma是对角阵,是奇异值)
1、我检验了我算出来的奇异值和matlab库函数算出来的奇异值,近似度相当好.
2、我检验了A(T)*A和U * Sigma^2 * U(T),两个结果基本相近,所以相当于证明了右奇异向量算出来是很接近的.
3、同样地,检验了A*A(T)和V * Sigma^2 * V(T),两个结果基本相近,证明了左奇异向量算出来也是很接近的.
但是!A和V * Sigma * U(T)结果差别很明显啊!这是什么情况啊?
万分感谢啊!
-----------------
我刚才重查了一遍计算结果。刚才也仔细想了一下各种可能。发现确实是你说的这种情况:
因为我限定整个计算在实数域进行,所以你表达式里边的z = 1或者z = -1。问题就来了。我的U和V确实是分开算的,所以U和V同一个奇异值σ对应的z符号可能不一样!所以整个加和一做完就彻底乱了……(伤心啊……)
请问我应该怎么保证他们符号一样啊?
(我用dqds算法算的奇异值,没办法产生奇异向量。所以对A(T)A和AA(T)分别用了逆幂法算了他们的特征向量,从而得到奇异向量。)我应该怎么办啊?
(我现在的目标需要保证A = V * Sigma * U(T)这个式子至少是对的,从而至少给出一组V、U、Sigma。)

提问时间:2021-02-22

答案
标题里的问题是不可能出现的,不过你描述的问题是有可能的,说明你算错了
首先要注意,尽管不同的矩阵不可能有相同的SVD,但对于同一个矩阵来讲,SVD不是唯一的
比较简单的情况,A=∑σ_i v_i u_i^T,可以看出即使没有重奇异值v_i和u_i也可能不唯一,比如(v_i*z)(u_i^T/z)也满足条件,其中z是单位复数
有重奇异值的时候U和V松动的余地更大
所以我估计你的算法里U和V是分开算的,并没有互相故及对方
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
版权所有 CopyRight © 2012-2019 超级试练试题库 All Rights Reserved.