Last Modified: June 25, 2019

Performs the Schur decomposition of a square matrix.

A square real matrix.

This input accepts a 2D array of double-precision, floating point numbers or 2D array of complex double-precision, floating point numbers.

Method to order the eigenvalues and the corresponding triangular matrix in real Schur form and the orthogonal matrix.

Name | Value | Description |
---|---|---|

No Reorder | 0 | Does not change the order of the eigenvalues. |

Real Ascending | 1 | Lists the eigenvalues in ascending order according to their real parts. |

Real Descending | 2 | Lists the eigenvalues in descending order according to their real parts. |

Magnitude Ascending | 3 | Lists the eigenvalues in ascending order according to their magnitudes. |

Magnitude Descending | 4 | Lists the eigenvalues in descending order according to their magnitudes. |

**Default: **No Reorder

Error conditions that occur before this node runs.

The node responds to this input according to standard error behavior.

Standard Error Behavior

Many nodes provide an **error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

**Default: **No error

The block upper triangular matrix in real Schur form.

The orthogonal matrix.

A complex vector that contains all the computed eigenvalues of the input matrix.

Error information.

The node produces this output according to standard error behavior.

Standard Error Behavior

**error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

The following expression defines the Schur decomposition of a square *n* × *n* matrix *A*.

*A* = *Q**S**Q*^{H}

where *S* is in Schur form and *Q*^{H} is the conjugate transpose of matrix *Q*.

For a real matrix *A*, *Q* is an *n* × *n* orthogonal matrix. *S* is a block upper triangular matrix in real Schur form, whose elements on the main diagonal are all 1 × 1 or 2 × 2 blocks, as shown in the following matrix.

$S=\left[\begin{array}{cccc}{S}_{11}& {S}_{12}& \dots & {S}_{1m}\\ 0& {S}_{22}& \ddots & {S}_{2m}\\ \vdots & \ddots & \ddots & \vdots \\ 0& 0& \dots & {S}_{mm}\end{array}\right]$

where *S*_{ii} are square blocks of dimension 1 or 2 and *i* = 1, 2, ..., *m*.

For a complex matrix *A*, *Q* is an *n* × *n* unitary matrix. *S* is an upper triangular matrix in complex Schur form.

**Where This Node Can Run: **

Desktop OS: Windows

FPGA: Not supported

Web Server: Not supported in VIs that run in a web application