interp_decomp#
- scipy.linalg.interpolative.interp_decomp(A, eps_or_k, rand=True, rng=None)[Quelle]#
Berechnet die ID einer Matrix.
Eine ID einer Matrix A ist eine Faktorisierung, die durch einen Rang k, ein Spaltenindex-Array idx und Interpolationskoeffizienten proj definiert ist, so dass
numpy.dot(A[:,idx[:k]], proj) = A[:,idx[k:]]
Die ursprüngliche Matrix kann dann wie folgt rekonstruiert werden:
numpy.hstack([A[:,idx[:k]], numpy.dot(A[:,idx[:k]], proj)] )[:,numpy.argsort(idx)]
oder über die Routine
reconstruct_matrix_from_id. Dies kann äquivalent geschrieben werden alsnumpy.dot(A[:,idx[:k]], numpy.hstack([numpy.eye(k), proj]) )[:,np.argsort(idx)]
in Bezug auf die Skelett- und Interpolationsmatrizen
B = A[:,idx[:k]]
und
P = numpy.hstack([numpy.eye(k), proj])[:,np.argsort(idx)]
respektive. Siehe auch
reconstruct_interp_matrixundreconstruct_skel_matrix.Die ID kann mit jeder relativen Genauigkeit oder jedem Rang berechnet werden (abhängig vom Wert von eps_or_k). Wenn eine Genauigkeit angegeben wird (eps_or_k < 1), dann hat diese Funktion die Ausgabesignatur
k, idx, proj = interp_decomp(A, eps_or_k)
Wenn stattdessen ein Rang angegeben wird (eps_or_k >= 1), dann ist die Ausgabesignatur
idx, proj = interp_decomp(A, eps_or_k)
- Parameter:
- A
numpy.ndarrayoderscipy.sparse.linalg.LinearOperatormit rmatvec Zu faktorisierende Matrix
- eps_or_kfloat oder int
Relativer Fehler (wenn
eps_or_k < 1) oder Rang (wenneps_or_k >= 1) der Approximation.- randbool, optional
Ob Zufallsstichproben verwendet werden sollen, wenn A vom Typ
numpy.ndarrayist (randomisierte Algorithmen werden immer verwendet, wenn A vom Typscipy.sparse.linalg.LinearOperatorist).- rng
numpy.random.Generator, optional Zustand des pseudozufälligen Zahlengenerators. Wenn rng None ist, wird ein neuer
numpy.random.Generatorunter Verwendung der Entropie des Betriebssystems erstellt. Typen außernumpy.random.Generatorwerden annumpy.random.default_rngübergeben, um einenGeneratorzu instanziieren. WennrandFalse ist, wird das Argument ignoriert.
- A
- Rückgabe:
- kint
Rang, der erforderlich ist, um die angegebene relative Genauigkeit zu erreichen, wenn
eps_or_k < 1.- idx
numpy.ndarray Spaltenindex-Array.
- proj
numpy.ndarray Interpolationskoeffizienten.