当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。