This is machine translation

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

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

LDL Solver

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


Math Functions / Matrices and Linear Algebra / Linear System Solvers



The LDL Solver block solves the linear system SX=B by applying LDL factorization to the matrix at the S port, which must be square (M-by-M) and Hermitian positive definite. Only the diagonal and lower triangle of the matrix are used, and any imaginary component of the diagonal entries is disregarded. The input to the B port is the right side M-by-N matrix, B. The M-by-N output matrix X is the unique solution of the equations.

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

When the input is not positive definite, the block reacts with the behavior specified by the Non-positive definite input parameter. The following options are available:

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

  • Warning — Proceed with the computation and display a warning message in the MATLAB® Command Window. The output is not a valid solution.

  • Error — Display 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.


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


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


Non-positive definite input

Response to nonpositive definite matrix inputs.

Supported Data Types

  • Double-precision floating point

  • Single-precision floating point

See Also

Autocorrelation LPCDSP System Toolbox
Cholesky SolverDSP System Toolbox
LDL FactorizationDSP System Toolbox
LDL InverseDSP System Toolbox
Levinson-DurbinDSP System Toolbox
LU SolverDSP System Toolbox
QR SolverDSP System Toolbox

See Linear System Solvers for related information.

Introduced before R2006a

Was this topic helpful?