http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.linalg.orth.html
我该如何调整它?我得到的基础比预期的要少。谷歌在前几页没有给我明显有用的结果。
http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.linalg.orth.html
我该如何调整它?我得到的基础比预期的要少。谷歌在前几页没有给我明显有用的结果。
orth
使用奇异值分解。orth
当前存在于https://github.com/scipy/scipy/blob/master/scipy/linalg/decomp_svd.py的定义,在我写这篇文章时, orth
(删除文档字符串)的完整代码是:
def orth(A):
u, s, vh = svd(A, full_matrices=False)
M, N = A.shape
eps = numpy.finfo(float).eps
tol = max(M, N) * numpy.amax(s) * eps
num = numpy.sum(s > tol, dtype=int)
Q = u[:, :num]
return Q
结果是小于 的奇异值tol
被认为是 0,并且那些方向不被认为是 的范围的一部分A
。 tol
是一个相对容差:它被设置为max(M, N)*eps
的最大奇异值的倍数A
,其中eps
是浮点机器 epsilon。
orth
没有提供任何参数来控制如何tol
计算,但正如您所见,该函数只有几行代码。如果您想使用不同的方法来决定忽略哪些奇异值,您可以将orth
其用作编写自己的函数的起点。