【发布时间】:2020-04-10 22:58:03
【问题描述】:
我需要用相应的左右特征向量计算矩阵的第一个奇异值。 Python中有没有办法避免计算矩阵的完整奇异值分解以提取其最大奇异值?
【问题讨论】:
我需要用相应的左右特征向量计算矩阵的第一个奇异值。 Python中有没有办法避免计算矩阵的完整奇异值分解以提取其最大奇异值?
【问题讨论】:
我不太确定我是否理解您想要获得的内容。您的意思是以下之一吗?
1) 如果您想要简单地提取矩阵产品的第一个值,这对我有用:
Ua,Sa,Va=np.linalg.svd(A) #Changing A for your matrix.
U=Ua[1,0]
S=Sa[0]
V=Va[1,0]
2)另一方面,如果您打算在找到最大奇异值后暂停 SVD,我认为这是不可能的,因为奇异值分解是三个的乘积矩阵,即使您正在寻找的是最高奇异值,SVD 也必须完全运行才能获得它。 另外,SV 对角矩阵的第一个元素不一定是第一个被计算的元素。
【讨论】: