當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python SciPy linalg.solve_triangular用法及代碼示例

本文簡要介紹 python 語言中 scipy.linalg.solve_triangular 的用法。

用法:

scipy.linalg.solve_triangular(a, b, trans=0, lower=False, unit_diagonal=False, overwrite_b=False, check_finite=True)#

假設 a 是一個三角矩陣,對 x 求解方程 a x = b。

參數

a (M, M) 數組

三角矩陣

b (M,) 或 (M, N) 數組

a x = b 中的右側矩陣

lower 布爾型,可選

僅使用 a 的下三角形中包含的數據。默認是使用上三角形。

trans {0, 1, 2, ‘N’, ‘T’, ‘C’},可選

要解決的係統類型:

反式

係統

0 或“N”

a x = b

1 或“T”

a^T x = b

2 或“C”

a^H x = b

unit_diagonal 布爾型,可選

如果為 True,則假定 a 的對角元素為 1 並且不會被引用。

overwrite_b 布爾型,可選

允許覆蓋 b 中的數據(可能會提高性能)

check_finite 布爾型,可選

是否檢查輸入矩陣是否僅包含有限數。禁用可能會提高性能,但如果輸入確實包含無窮大或 NaN,則可能會導致問題(崩潰、非終止)。

返回

x (M,) 或 (M, N) ndarray

係統 a x = b 的解。返回形狀匹配 b.

拋出

LinAlgError

如果 a 是單數

注意

例子

求解下三角係統 a x = b,其中:

[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.])

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.linalg.solve_triangular。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。