2

http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.linalg.orth.html

我该如何调整它?我得到的基础比预期的要少。谷歌在前几页没有给我明显有用的结果。

4

1 回答 1

4

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,并且那些方向不被认为是 的范围的一部分Atol是一个相对容差:它被设置为max(M, N)*eps的最大奇异值的倍数A,其中eps是浮点机器 epsilon。

orth没有提供任何参数来控制如何tol计算,但正如您所见,该函数只有几行代码。如果您想使用不同的方法来决定忽略哪些奇异值,您可以将orth其用作编写自己的函数的起点。

于 2016-06-11T11:02:45.463 回答