Engee documentation

LDL Solver

Solving a system of linear equations with a quadratic Hermitian positive definite coefficient matrix using the usage of LDL expansion.

blockType: SubSystem

Path in the library:

/Signal Operations/Math Functions/Matrices and Linear Algebra/Linear System Solvers/LDL Solver

Description

Block LDL Solver solves a system of linear equations usage of LDL decomposition of the input matrix , where

  • — square Hermitian positive definite matrix on at the entrance S;

  • — matrix of free terms on at the entrance B;

  • — solution of a system of equations, a matrix on the output is X.

The algorithm

The LDL decomposition algorithm uniquely represents a Hermitian positive definite input matrix How

Where

  • — lower triangular matrix with single diagonal elements (unit triangular matrix);

  • — diagonal matrix;

  • — Hermitian (complex conjugate) transposed matrix .

The resulting equation will have the form:

When replacing and it turns out one system of equations with a diagonal matrix and two systems of equations with triangular matrices:





Ports

Input

# S — matrix of coefficients
matrix M by M

Details

The Matrix in the equation size on . The matrix must be Hermitian positive definite. The block uses only elements of the diagonal and above the main diagonal of the matrix and ignores the rest. Imaginary parts in diagonal elements are ignored. The Inputs S and B must have the same number of lines.

If the input matrix is not positive definite, then the behavior of the block depends on the value of the parameter Non-positive definite input.

Data types

Float32, Float64, Int8, Int16, Int32

Complex numbers support

Yes

# B — the matrix of free terms
matrix M by N | vector M by 1

Details

The Matrix in the equation , given as a matrix of size on or a vector of size on .

If a vector is given on , then the block processes the input vector of length on port B as a matrix on . The Inputs U and B must have the same number of lines.

Data types

Float32, Float64, Int8, Int16, Int32

Complex numbers support

Yes

Output

# X — solving a system of equations
matrix M by N | vector M by 1

Details

The solution of the system of equations returned in the form of a matrix on or vectors on . The size of the output matrix X is the same as the size of the input matrix B.

Data types

Float64

Complex numbers support

Yes

Parameters

Main group

# Non-positive definite input — block behavior if the input matrix is not positive definite
Ignore | Warning | Error

Details

Specify the behavior of the block in case the input matrix is not positive definite:

  • Ignore — the unit continues calculations and does not issue a warning. The result is not the right solution.

  • Warning — the block continues calculations, but in the command window Engee A warning message is displayed. The result is not the right solution.

  • Error — the error dialog box is displayed and the calculations are stopped.

Parameter Non-positive definite input it is diagnostic. Like all diagnostic parameters, it is set to Ignore in the code generated for this block by the code generator.
Values

Ignore | Warning | Error

Default value

Ignore

Program usage name

dropdown_1

Tunable

No

Evaluatable

Yes