Main Content

# LDL Solver

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

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

## Version History

Introduced before R2006a