maxframe.tensor.linalg.solve_triangular#

maxframe.tensor.linalg.solve_triangular(a, b, lower=False, sparse=None)[源代码]#

求解方程 a x = b 中的 x,假设 a 是一个三角矩阵。

参数:
  • a ((M, M) array_like) -- 一个三角矩阵

  • b ((M,) or (M, N) array_like) -- 方程 a x = b 中的右端矩阵

  • lower (bool, optional) -- 仅使用 a 的下三角部分的数据。默认使用上三角部分。

  • sparse (bool, optional) -- 是否返回稀疏值。

返回:

x -- 方程组 a x = b 的解。返回值的形状与 b 相同。

返回类型:

(M,) or (M, N) ndarray

示例

求解下三角系统 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 maxframe.tensor as mt
>>> a = mt.array([[3, 0, 0, 0], [2, 1, 0, 0], [1, 0, 1, 0], [1, 1, 1, 1]])
>>> b = mt.array([4, 2, 4, 2])
>>> x = mt.linalg.solve_triangular(a, b, lower=True)
>>> x.execute()
array([ 1.33333333, -0.66666667,  2.66666667, -1.33333333])
>>> a.dot(x).execute()  # Check the result
array([ 4.,  2.,  4.,  2.])