solves the triangular system of linear equations opts[a].x==b and resets b to the result x.

Details and Options

  • To use TRSV, you first need to load the BLAS Package using Needs["LinearAlgebra`BLAS`"].
  • The following arguments must be given:
  • ul
  • input string
  • upper/lower triangular string
  • ts
  • input string
  • transposition string
  • dg
  • input string
  • diagonal ones string
    ainput expressionrectangular matrix
    binput/output symbolvector; the symbol value is modified in place
  • The upper/lower triangular string ul may be specified as:
  • "U"the upper triangular part of a is to be used
    "L"the lower triangular part of a is to be used
  • The transposition string ts describes the operator opts and may be specified as:
  • "N"no transposition
    "C"conjugate transpose
  • The diagonal ones string dg may be specified as:
  • "U"the main diagonal of a is assumed to contain only ones
    "N"the actual values of the main diagonal of a are used
  • Dimensions of the matrix and vector arguments must be such that the dot product is well defined.


open allclose all

Basic Examples  (1)

Load the BLAS package:

Compute Inverse[UpperTriangularize[a]].b and save it in b:

Scope  (4)

Real matrix and vectors:

Complex matrix and vectors:

Arbitrary-precision matrix and vectors:

Symbolic matrix and vectors:

Properties & Relations  (3)

For invertible matrices a, TRSV["U","N","N",a,b] is equivalent to b=Inverse[UpperTriangularize[a]].b:

For invertible matrices a, TRSV["L","T","N",a,b] is equivalent to b=Inverse[Transpose[LowerTriangularize[a]]].b:

Note this is not TRSV["U","N","N",a,b] as the lower triangular part is used for the transpose:

If dg="U", the diagonal values of a are assumed to be ones:

The diagonal has been effectively replaced by ones:

Possible Issues  (3)

The last argument must be a symbol:

The last argument must be initialized to a vector:

If a is a rectangular matrix then only the leading upper or lower triangular part of a is used:

The matrix a is effectively truncated to its upper left corner:

Wolfram Research (2017), TRSV, Wolfram Language function,


Wolfram Research (2017), TRSV, Wolfram Language function,


Wolfram Language. 2017. "TRSV." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2017). TRSV. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2023_trsv, author="Wolfram Research", title="{TRSV}", year="2017", howpublished="\url{}", note=[Accessed: 25-July-2024 ]}


@online{reference.wolfram_2023_trsv, organization={Wolfram Research}, title={TRSV}, year={2017}, url={}, note=[Accessed: 25-July-2024 ]}