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 的形狀。

更新於:2021-11-25

372 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告