Main Content

LDL Solver

Solve SX = B when S is square Hermitian positive definite matrix

  • LDL Solver block

Libraries:
DSP System Toolbox / Math Functions / Matrices and Linear Algebra / Linear System Solvers

Description

The LDL Solver block solves the linear system of equations SX = B by applying LDL factorization to the Hermitian positive definite square matrix at the S port. For more details, see Algorithms.

Ports

Input

expand all

Specify the system matrix S as a square matrix of size M-by-M that is Hermitian positive definite. Only the diagonal and lower triangle of the matrix are used, and any imaginary component of the diagonal entries is disregarded. When the input is not positive definite, the block reacts with the behavior specified by the Non-positive definite input parameter. For more details, see the description of the Non-positive definite input parameter.

Data Types: single | double
Complex Number Support: Yes

Specify the right-side matrix B of the system equation SX = B as an M-by-N matrix.

A length-M unoriented vector input for right side B is treated as an M-by-1 matrix.

Data Types: single | double
Complex Number Support: Yes

Output

expand all

Unique solution to the system of equations SX = B, returned as an M-by-N matrix, X.

For more information on how the block determines this solution, see Algorithms.

Data Types: single | double
Complex Number Support: Yes

Parameters

expand all

Specify the response to nonpositive definite matrix inputs as Ignore, Warning, or Error.

The algorithm requires that the input be Hermitian positive definite. When the input is not positive definite, the block reacts with the behavior specified by the Non-positive definite input parameter. When you set this parameter to:

  • Ignore — The block proceeds with the computation and do not issue an alert. The output is not a valid solution.

  • Warning — The block proceeds with the computation and display a warning message in the MATLAB® command window. The output is not a valid solution.

  • Error — The block displays an error dialog and terminate the simulation.

Note

The Non-positive definite input parameter is a diagnostic parameter. Like all diagnostic parameters on the Configuration Parameters dialog, it is set to Ignore in the code generated for this block by Simulink® Coder™ code generation software.

Block Characteristics

Data Types

double | single

Direct Feedthrough

no

Multidimensional Signals

no

Variable-Size Signals

no

Zero-Crossing Detection

no

Algorithms

The LDL algorithm uniquely factors the Hermitian positive definite input matrix S as

S = LDL*

where L is a lower triangular square matrix with unity diagonal elements, D is a diagonal matrix, and L* is the Hermitian (complex conjugate) transpose of L.

The equation

LDL*X = B

is solved for X by the following steps:

  1. Substitute

    Y = DL*X

  2. Substitute

    Z = L*X

  3. Solve one diagonal and two triangular systems.

    LY = B

    DZ = Y

    L*X = Z

Extended Capabilities

Version History

Introduced before R2006a