Table Of Contents

Test Matrix Type (G Dataflow)

Version:
    Last Modified: March 15, 2017

    Determines whether a matrix is of a specific type.

    connector_pane_image
    datatype_icon

    matrix type

    The specific type of matrix you want to compare the input matrix.

    Name Value Description
    Symmetric Positive Definite 10 Determines whether the input matrix is symmetric positive definite.
    Symmetric Positive Semi-Definite 11 Determines whether the input matrix is symmetric positive semi-definite.
    Symmetric 20 Determines whether the input matrix is symmetric.
    Hermitian 21 Determines whether the input matrix is Hermitian.

    Default: Symmetric Positive Definite

    datatype_icon

    matrix

    A matrix.

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

    datatype_icon

    error in

    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.

    error in does not contain an error error in contains an error
    If no error occurred before the node runs, the node begins execution normally.

    If no error occurs while the node runs, it returns no error. If an error does occur while the node runs, it returns that error information as error out.

    If an error occurred before the node runs, the node does not execute. Instead, it returns the error in value as error out.

    Default: No error

    datatype_icon

    relative tolerance

    A value that determines how close the input matrix must be to the specified matrix type.

    The exact meaning of this input depends on the value of matrix type.

    If relative tolerance is less than 0, this node chooses a tolerance based on the input matrix.

    Default: -1

    datatype_icon

    is type?

    A Boolean that indicates whether the input matrix is the same type as the specified matrix type.

    True The input matrix matches the specified matrix type.
    False The input matrix does not match the specified matrix type.
    datatype_icon

    error out

    Error information.

    The node produces this output 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.

    error in does not contain an error error in contains an error
    If no error occurred before the node runs, the node begins execution normally.

    If no error occurs while the node runs, it returns no error. If an error does occur while the node runs, it returns that error information as error out.

    If an error occurred before the node runs, the node does not execute. Instead, it returns the error in value as error out.

    Algorithm for Testing Positive Definite and Positive Semi-Definite Matrix Types

    In real cases, a symmetric matrix A is positive definite if xTAx > 0 for any non-zero vector x.

    A symmetric matrix A is positive semi-definite if xTAx ≥ 0 for any non-zero vector x.

    In complex cases, a Hermitian matrix A is positive definite if xHAx > 0 for any non-zero vector x.

    A Hermitian matrix A is positive semi-definite if xHAx ≥ 0 for any non-zero vector x.

    This node uses the following steps to perform testing:

    1. Tests whether the input matrix is symmetric (or Hermitian). If the test fails, the output is type? returns False.
    2. Tests whether the symmetric (or Hermitian) matrix is positive definite (or positive semi-definite) by Cholesky factorization. If a symmetric matrix is not positive definite (or positive semi-definite), the algorithm for Cholesky factorization fails when it attempts to calculate the square root of a negative number or divide by zero.

    This node uses the input relative tolerance to determine whether a number is small enough that you consider it as zero when performing Cholesky factorization. If the input relative tolerance is less than zero, the tolerance in Cholesky factorization is

    2.22 e 16 * n * maxdiag

    where n is the order of the input matrix and maxdiag is the maximum value of diagonal elements of the input matrix.

    Otherwise, the tolerance is relative tolerance * n * maxdiag .

    Algorithm for Testing Symmetric and Hermitian Matrix Types

    A real or complex square matrix is symmetric if aij = aji.

    A complex square matrix is Hermitian if a i j = conj ( a j i ) where conj is the complex conjugate function.

    This node uses the input relative tolerance to determine whether the difference between two elements in the input matrix is small enough to consider them equal. If relative tolerance is less than zero, the tolerance is

    2.22 e 16 * n * max

    where n is the order of the input matrix and max is the maximum absolute value of elements in the input matrix. For a complex element, max is the maximum absolute value of its real and imaginary parts.

    Otherwise, the tolerance is relative tolerance * n * max .

    Where This Node Can Run:

    Desktop OS: Windows

    FPGA: This product does not support FPGA devices


    Recently Viewed Topics