Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
np.linalg.qr(A)或scipy.linalg.orth(A)用于查找正交基(python)_Python_Numpy_Matrix_Vector - Fatal编程技术网

np.linalg.qr(A)或scipy.linalg.orth(A)用于查找正交基(python)

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函数的包装器获得的 我不

如果我有一个由五个向量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函数的包装器获得的


我不认为人们对其中一个有强烈的偏好。SVD将稍微更稳定,但计算速度也会稍慢。实际上,我认为你不会看到太大的不同

我需要转换矩阵A吗?不,你不需要。你的应用程序是什么?我需要将一些实体向量投影到一个低维子空间,该子空间由a中的向量构成,但由于a中的向量彼此不正交,所以我需要找到正交向量basis@Abrar那么,,我想sp.linalg.orth会更容易使用,除非您需要有效访问行列式。QR分解是否为A的列空间提供正交基础?这是一样的吗?列空间正好是$A$(也称为范围)列的跨度。但是,它与SVD的基础不同。如果它不相同,我应该使用哪一个取决于您的应用程序。这两种方法都给出了一组具有相同跨度的向量。我认为这两种方法都可以很好地工作,但您可以在设置中始终对其进行测试,以比较两种方法的时间和精度