# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

# dsp.UpperTriangularSolver System object

Package: dsp

Solve upper-triangular matrix equation

## Description

The `UpperTriangularSolver` object solves UX = B for X when U is a square, upper-triangular matrix with the same number of rows as B.

To solve UX = B:

1. Define and set up your linear system solver. See Construction.

2. Call `step` to solve the equation according to the properties of `dsp.UpperTriangularSolver`. The behavior of `step` is specific to each object in the toolbox.

 Note:   Starting in R2016b, instead of using the `step` method to perform the operation defined by the System object™, you can call the object with arguments, as if it were a function. For example, ```y = step(obj,x)``` and `y = obj(x)` perform equivalent operations.

## Construction

`H = dsp.UpperTriangularSolver` returns a linear system solver, `H`, used to solve UX = B where U is an upper (or unit-upper) triangular matrix.

`H = dsp.UpperTriangularSolver('PropertyName',PropertyValue,...)` returns a linear system solver, `H`, with each specified property set to the specified value.

## Properties

 `OverwriteDiagonal` Replace diagonal elements of input with ones When you set this property to `true`, the linear system solver replaces the elements on the diagonal of the input, U, with ones. Set this property to either `true` or `false`. The default is `false`. `RealDiagonalElements` Indicate that diagonal of complex input is real When you set this property to `true`, the linear system solver optimizes computation speed if the diagonal elements of complex input, U, are real. This property applies only when you set the `OverwriteDiagonal` property to `false`. Set this property to either `true` or `false`. The default is `false`.

## Methods

 step Solve matrix equation for specified inputs
Common to All System Objects
`clone`

Create System object with same property values

`getNumInputs`

Expected number of inputs to a System object

`getNumOutputs`

Expected number of outputs of a System object

`isLocked`

Check locked states of a System object (logical)

`release`

Allow System object property value changes

## Examples

expand all

Note: This example runs only in R2016b or later. If you are using an earlier release, replace each call to the function with the equivalent `step` syntax. For example, myObject(x) becomes step(myObject,x).

```uptriang = dsp.UpperTriangularSolver; u = triu(rand(4, 4)); b = rand(4, 1); ```

Check that result is the solution to the linear equations.

```x1 = inv(u)*b x = uptriang(u, b) ```
```x1 = -179.1887 265.6759 -29.3098 6.7624 x = -179.1887 265.6759 -29.3098 6.7624 ```

## Algorithms

This object implements the algorithm, inputs, and outputs described on the Backward Substitution block reference page. The object properties correspond to the block parameters.