scipy.sparse.linalg.
spsolve_triangular#
- scipy.sparse.linalg.spsolve_triangular(A, b, lower=True, overwrite_A=False, overwrite_b=False, unit_diagonal=False)[source]#
求解方程式
A x = b
中的 x,假設 A 為三角形矩陣。- 參數:
- A(M, M) 稀疏陣列或矩陣
稀疏方型三角形矩陣。應為 CSR 或 CSC 格式。
- b(M,) 或 (M, N) 類陣列
A x = b
中的右手邊矩陣- lowerbool,可選
A 是否為下或上三角形矩陣。預設為下三角形矩陣。
- overwrite_Abool,可選
允許變更 A。啟用可提升效能。預設為 False。
- overwrite_bbool,可選
允許覆寫 b 中的資料。啟用可提升效能。預設為 False。若 overwrite_b 為 True,應確保 b 具有適當的 dtype 以儲存結果。
- unit_diagonalbool,可選
若為 True,則 a 的對角線元素會假設為 1。
版本 1.4.0 新增。
- 返回:
- x(M,) 或 (M, N) ndarray
系統
A x = b
的解。返回值的形狀與 b 的形狀相符。
- 引發:
- LinAlgError
若 A 為奇異或非三角形矩陣。
- ValueError
若 A 的形狀或 b 的形狀不符合需求。
註解
版本 0.19.0 新增。
範例
>>> 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