SciPy 中哪個線性函式用於求解帶狀矩陣方程?
名為 scipy.linalg.solve_banded 的線性函式用於求解帶狀矩陣方程。此函式的形式如下:
scipy.linalg.solve_banded(l_and_u, ab, b, overwrite_ab=False, overwrite_b=False, debug=None, check_finite=True)
此線性函式將求解方程 ax = b 的 x,其中 a 是帶狀矩陣。
帶狀矩陣 **a** 透過使用以下矩陣對角線有序形式儲存在 **ab** 中:
ab[u + i - j, j] == a[i,j]
ab 的示例如下:
* a01 a12 a23 a34 a45 a00 a11 a22 a33 a44 a55 a10 a21 a32 a43 a54 * a20 a31 a42 a53 * *
這裡 a 的形狀為 (6, 6),u = 1,l = 2。
引數
以下是 scipy.linalg.solve_banded() 函式的引數:
**(l, u)** - (整數,整數)
它們表示非零下對角線和上對角線的數量。
**ab** - b(l + u + 1, M) array_like
如上所述,此引數表示帶狀矩陣。
**b** - (M,) 或 (M, K) array_like
此引數表示右側。
**Overwrite_ab** - bool,可選
此引數用於丟棄帶狀矩陣 ab 中的資料。它可能會提高矩陣的效能。
**Overwrite_b** - bool,可選
此引數用於丟棄 b 中的資料。它可能會提高矩陣的效能。
**check_finite** - bool,可選
此引數用於檢查輸入矩陣是否僅包含有限數字。停用它後,我們可能會獲得一些效能提升。如果輸入不包含無窮大,則可能會導致問題。
返回值
**x** - (M,) 或 (M, K) ndarray
它返回帶狀矩陣方程 ax = b 的解。輸出的形狀將取決於 b 的形狀。
廣告