solve_triangular#
- scipy.linalg.solve_triangular(a, b, trans=0, lower=False, unit_diagonal=False, overwrite_b=False, check_finite=True)[Quelle]#
Löst die Gleichung
a @ x = bfürx, wobei a eine Dreiecksmatrix ist.Die Dokumentation wurde unter der Annahme verfasst, dass die Array-Argumente bestimmte „Kern“-Formen haben. Array-Argumente dieser Funktion können jedoch zusätzliche „Batch“-Dimensionen vorangestellt haben. In diesem Fall wird das Array als Stapel von niedrigdimensionalen Schnitten behandelt; siehe Gestapelte lineare Operationen für Details.
- Parameter:
- a(M, M) array_like
Eine Dreiecksmatrix
- b(M,) oder (M, N) array_like
Matrix der rechten Seite in
a x = b- lowerbool, optional
Verwendet nur Daten aus dem unteren Dreieck von a. Standardmäßig wird das obere Dreieck verwendet.
- trans{0, 1, 2, ‘N’, ‘T’, ‘C’}, optional
Typ des zu lösenden Systems
trans
system
0 oder ‘N’
a x = b
1 oder ‘T’
a^T x = b
2 oder ‘C’
a^H x = b
- unit_diagonalbool, optional
Wenn True, werden die Diagonalelemente von a als 1 angenommen und nicht referenziert.
- overwrite_bbool, optional
Erlaubt das Überschreiben von Daten in b (kann die Leistung verbessern)
- check_finitebool, optional
Ob überprüft werden soll, ob die Eingabematrizen nur endliche Zahlen enthalten. Das Deaktivieren kann zu einer Leistungssteigerung führen, kann aber zu Problemen (Abstürzen, Nicht-Terminierung) führen, wenn die Eingaben Unendlichkeiten oder NaNs enthalten.
- Rückgabe:
- x(M,) oder (M, N) ndarray
Lösung des Systems
a x = b. Die Form der Rückgabe entspricht b.
- Löst aus:
- LinAlgError
Wenn a singulär ist
Hinweise
Hinzugefügt in Version 0.9.0.
Beispiele
Löst das untere Dreieckssystem a x = b, wobei
[3 0 0 0] [4] a = [2 1 0 0] b = [2] [1 0 1 0] [4] [1 1 1 1] [2]
>>> import numpy as np >>> from scipy.linalg import solve_triangular >>> a = np.array([[3, 0, 0, 0], [2, 1, 0, 0], [1, 0, 1, 0], [1, 1, 1, 1]]) >>> b = np.array([4, 2, 4, 2]) >>> x = solve_triangular(a, b, lower=True) >>> x array([ 1.33333333, -0.66666667, 2.66666667, -1.33333333]) >>> a.dot(x) # Check the result array([ 4., 2., 4., 2.])