LinearAlgebra`BLAS`
LinearAlgebra`BLAS`

# TRSV

TRSV[ul,ts,dg,a,b]

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 a input expression rectangular matrix b input/output symbol vector; 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 "T" transpose "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.

# Examples

open allclose all

## Basic Examples(1)

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: