Version:

Last Modified: September 22, 2017

Solves the Sylvester matrix equation.

Type of matrix *A* and matrix *B*.

Specifying the matrix type allows this node to execute more quickly by avoiding unnecessary computations, which could introduce numerical inaccuracy.

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

General | 0 | The input matrix is a matrix that you cannot describe with one of the other categories. |

Upper Triangular | 3 | The input matrix is upper triangular. |

**Default: **Upper Triangular

Matrix *B* in the Sylvester equation.

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

This input must be a square matrix or upper quasi-triangular matrix in canonical Schur form.

Matrix *C* in the Sylvester equation.

Form of the Sylvester equation.

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

Plus | 0 | op(A)X + X op(B) = aC, where A is the input matrix A, B is the input matrix B, and C is the input matrix C. |

Minus | 1 | op(A)X - X op(B) = aC, where A is the input matrix A, B is the input matrix B, and C is the input matrix C. |

**Default: **Plus

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

Operation this node performs on matrix *A* in the Sylvester equation.

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

Not Transposed | 0 | op(A) = A, where A is the input matrix A. |

Transposed | 1 | op(A) = transpose of A, where A is the input matrix A. |

**Default: **Not Transposed

Operation this node performs on matrix *B* in the Sylvester equation.

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

Not Transposed | 0 | op(B) = B, where B is the input matrix B. |

Transposed | 1 | op(B) = transpose of B, where B is the input matrix B. |

**Default: **Not Transposed

Solution of the Sylvester equation.

Scaling factor *a* of the Sylvester equation.

A Boolean that specifies whether this node uses perturbed values to solve the equation.

True | Uses perturbed values to solve the Sylvester equation. The eigenvalues of matrix A and matrix B are common or close and indicate the solution of the Sylvester equation is not unique. |

False | Does not use perturbed values to solve the Sylvester equation. |

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 equations define the Sylvester matrix equation:

op(*A*)*X* + *X*op(*B*) = *a**C*

or

op(*A*)*X* - *X*op(*B*) = *a**C*

where

- op(
*A*) is*A*or the conjugate transpose of*A* - op(
*B*) is*B*or the conjugate transpose of*B* *a*is a scaling factor to avoid overflow in*X*

The Sylvester matrix equation has a unique solution if and only if λ ± β ≠ 0, where λ and β are the eigenvalues of *A* and *B*, respectively, and the sign (±) depends on the equation you want to solve. When the solution of the Sylvester matrix equation is not unique, this node sets **perturbed** to True and might not return the correct solution.

**Where This Node Can Run: **

Desktop OS: Windows

FPGA: This product does not support FPGA devices

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