Rate this Page

torch.triangular_solve#

torch.triangular_solve(b,A,upper=True,transpose=False,unitriangular=False,*,out=None)#

Solves a system of equations with a square upper or lower triangular invertible matrixAAand multiple right-hand sidesbb.

In symbols, it solvesAX=bAX = b and assumesAA is square upper-triangular(or lower-triangular ifupper= False) and does not have zeros on the diagonal.

torch.triangular_solve(b, A) can take in 2D inputsb, A or inputs that arebatches of 2D matrices. If the inputs are batches, then returnsbatched outputsX

If the diagonal ofA contains zeros or elements that are very close to zero andunitriangular= False (default) or if the input matrix is badly conditioned,the result may containNaN s.

Supports input of float, double, cfloat and cdouble data types.

Warning

torch.triangular_solve() is deprecated in favor oftorch.linalg.solve_triangular()and will be removed in a future PyTorch release.torch.linalg.solve_triangular() has its arguments reversed and does not return acopy of one of the inputs.

X=torch.triangular_solve(B,A).solution should be replaced with

X=torch.linalg.solve_triangular(A,B)
Parameters
  • b (Tensor) – multiple right-hand sides of size(,m,k)(*, m, k) where* is zero of more batch dimensions

  • A (Tensor) – the input triangular coefficient matrix of size(,m,m)(*, m, m)where* is zero or more batch dimensions

  • upper (bool,optional) – whetherAA is upper or lower triangular. Default:True.

  • transpose (bool,optional) – solvesop(A)X = b whereop(A) = A^T if this flag isTrue,andop(A) = A if it isFalse. Default:False.

  • unitriangular (bool,optional) – whetherAA is unit triangular.If True, the diagonal elements ofAA are assumed to be1 and not referenced fromAA. Default:False.

Keyword Arguments

out ((Tensor,Tensor),optional) – tuple of two tensors to writethe output to. Ignored ifNone. Default:None.

Returns

A namedtuple(solution, cloned_coefficient) wherecloned_coefficientis a clone ofAA andsolution is the solutionXX toAX=bAX = b(or whatever variant of the system of equations, depending on the keyword arguments.)

Examples:

>>>A=torch.randn(2,2).triu()>>>Atensor([[ 1.1527, -1.0753],        [ 0.0000,  0.7986]])>>>b=torch.randn(2,3)>>>btensor([[-0.0210,  2.3513, -1.5492],        [ 1.5429,  0.7403, -1.0243]])>>>torch.triangular_solve(b,A)torch.return_types.triangular_solve(solution=tensor([[ 1.7841,  2.9046, -2.5405],        [ 1.9320,  0.9270, -1.2826]]),cloned_coefficient=tensor([[ 1.1527, -1.0753],        [ 0.0000,  0.7986]]))