2

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

どうすれば調整できますか?予想よりもベースが少なくなっています。Google は、最初の数ページで明らかに有用な結果を提供してくれません。

4

1 に答える 1

4

orth特異値分解を使用します。の定義はorth現在https://github.com/scipy/scipy/blob/master/scipy/linalg/decomp_svd.pyにあります。これを書いている時点で、orth(docstring をドロップする) ための完全なコードは次のとおりです。

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

その結果、 未満の特異値はtol0 と見なされ、それらの方向は の範囲の一部とは見なされませんAtol相対許容誤差です。max(M, N)*epsの最大特異値の倍数に設定されます。Aここepsで、 は浮動小数点マシンのイプシロンです。

orthの計算方法を制御する引数はありませんtolが、ご覧のとおり、関数は数行しかありません。orth無視する特異値を決定するために別の方法を使用する場合は、独自の関数を作成するための出発点として使用できます。

于 2016-06-11T11:02:45.463 に答える