scipy.linalg.solve_triangular¶
- scipy.linalg.solve_triangular(a, b, trans=0, lower=False, unit_diagonal=False, overwrite_b=False, debug=None, check_finite=True)[源代码]¶
解这个方程式 a x = b 为 x ,假设a是一个三角矩阵。
- 参数
- 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 是单数的
注意事项
0.9.0 新版功能.
示例
解下三角方程组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]
>>> 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.])