np.linalg.qr(A)或scipy.linalg.orth(A)用于查找正交基(python)
如果我有一个由五个向量v1…v5组成的向量空间,求a的正交基,其中a=[v1,v2…v5],a是5Xn 我应该使用np.linalg.qr(A)或scipy.linalg.orth(A)用于查找正交基(python),python,numpy,matrix,vector,Python,Numpy,Matrix,Vector,如果我有一个由五个向量v1…v5组成的向量空间,求a的正交基,其中a=[v1,v2…v5],a是5Xn 我应该使用np.linalg.qr(A)还是scipy.linalg.orth(A) 提前感谢您需要使用: scipy.linalg.orth(A) 普遍接受的规则是使用scipy.linalg,因为它比np.linalg涵盖更多的功能。希望有帮助 注意,sp.linalg.orth使用SVD,而np.linalg.qr使用qr分解。这两种因子分解都是通过LAPACK函数的包装器获得的 我不
np.linalg.qr(A)
还是scipy.linalg.orth(A)
提前感谢您需要使用:
scipy.linalg.orth(A)
普遍接受的规则是使用scipy.linalg,因为它比np.linalg涵盖更多的功能。希望有帮助 注意,
sp.linalg.orth
使用SVD,而np.linalg.qr
使用qr分解。这两种因子分解都是通过LAPACK函数的包装器获得的
我不认为人们对其中一个有强烈的偏好。SVD将稍微更稳定,但计算速度也会稍慢。实际上,我认为你不会看到太大的不同 我需要转换矩阵A吗?不,你不需要。你的应用程序是什么?我需要将一些实体向量投影到一个低维子空间,该子空间由a中的向量构成,但由于a中的向量彼此不正交,所以我需要找到正交向量basis@Abrar那么,,我想sp.linalg.orth会更容易使用,除非您需要有效访问行列式。QR分解是否为A的列空间提供正交基础?这是一样的吗?列空间正好是$A$(也称为范围)列的跨度。但是,它与SVD的基础不同。如果它不相同,我应该使用哪一个取决于您的应用程序。这两种方法都给出了一组具有相同跨度的向量。我认为这两种方法都可以很好地工作,但您可以在设置中始终对其进行测试,以比较两种方法的时间和精度