scipy.sparse.linalg.

spsolve_triangular#

scipy.sparse.linalg.spsolve_triangular(A, b, lower=True, overwrite_A=False, overwrite_b=False, unit_diagonal=False)[Quellcode]#

Löst die Gleichung A x = b nach x, unter der Annahme, dass A eine Dreiecksmatrix ist.

Parameter:
A(M, M) sparse array oder Matrix

Eine spärliche quadratische Dreiecksmatrix. Sollte im CSR- oder CSC-Format vorliegen.

b(M,) oder (M, N) array_like

Rechte Seite der Matrix in A x = b

lowerbool, optional

Ob A eine untere oder obere Dreiecksmatrix ist. Standard ist untere Dreiecksmatrix.

overwrite_Abool, optional

Erlaubt die Änderung von A. Aktivierung führt zu einer Leistungssteigerung. Standard ist False.

overwrite_bbool, optional

Erlaubt das Überschreiben von Daten in b. Aktivierung führt zu einer Leistungssteigerung. Standard ist False. Wenn overwrite_b True ist, sollte sichergestellt werden, dass b einen geeigneten Datentyp hat, um das Ergebnis speichern zu können.

unit_diagonalbool, optional

Wenn True, wird angenommen, dass die Diagonalelemente von a gleich 1 sind.

Hinzugefügt in Version 1.4.0.

Rückgabe:
x(M,) oder (M, N) ndarray

Lösung des Systems A x = b. Die Form der Rückgabe entspricht der Form von b.

Löst aus:
LinAlgError

Wenn A singulär oder nicht dreieckig ist.

ValueError

Wenn die Form von A oder die Form von b nicht den Anforderungen entspricht.

Hinweise

Hinzugefügt in Version 0.19.0.

Beispiele

>>> import numpy as np
>>> from scipy.sparse import csc_array
>>> from scipy.sparse.linalg import spsolve_triangular
>>> A = csc_array([[3, 0, 0], [1, -1, 0], [2, 0, 1]], dtype=float)
>>> B = np.array([[2, 0], [-1, 0], [2, 0]], dtype=float)
>>> x = spsolve_triangular(A, B)
>>> np.allclose(A.dot(x), B)
True