Main Content

dsp.LDLFactor

(Removed) Factor square Hermitian positive definite matrices into components

dsp.LDLFactor has been removed. Use ldl instead. For more information, see Compatibility Considerations.

Description

The LDLFactor object factors square Hermitian positive definite matrices into lower, upper, and diagonal components. The object uses only the lower triangle of S.

To factor these matrices into lower, upper, and diagonal components:

  1. Define and set up your LDL factor object. See Construction.

  2. Call step to factor the matrices according to the properties of dsp.LDLFactor. The behavior of step is specific to each object in the toolbox.

Note

Starting in R2016b, instead of using the step method to perform the operation defined by the System object™, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.

Construction

ldl = dsp.LDLFactor returns an LDL factor System object, ldl, that computes unit lower triangular L and diagonal D such that S = LDL for square, symmetric/Hermitian, positive definite input matrix S.

ldl = dsp.LDLFactor('PropertyName',PropertyValue,...) returns an LDL factor System object, ldl, with each specified property set to the specified value.

Properties

 Fixed-Point Properties

Methods

stepDecompose matrix into components
Common to All System Objects
release

Allow System object property value changes

Examples

collapse all

Note

If you are using R2016a or an earlier release, replace each call to the object with the equivalent step syntax. For example, obj(x) becomes step(obj,x).

Decompose a square Hermitian positive definite matrix using LDL factor.

A = gallery('randcorr',5);
ldl = dsp.LDLFactor;
y = ldl(A)
y = 5×5
 1.0000   -0.3884    0.0296   -0.6152   -0.3903
-0.3884    0.8491   -0.6386   -0.4901    0.3137
 0.0296   -0.6386    0.6529    0.3611    0.5770
-0.6152   -0.4901    0.3611    0.3324    0.5660
-0.3903    0.3137    0.5770    0.5660    0.4403

Algorithms

This object implements the algorithm, inputs, and outputs described on the LDL Factorization block reference page. The object properties correspond to the block parameters, except:

No object property that corresponds to the Non-positive definite input block parameter. The object does not issue any alerts for nonpositive definite inputs. The output is not a valid factorization. A partial factorization is in the upper left corner of the output.

Extended Capabilities

Version History

Introduced in R2012a

expand all

R2023a: dsp.LDLFactor System object has been removed

The dsp.LDLFactor System object has been removed. Use the ldl function instead.

Update Code

This table shows how to update existing code to use the ldl function.

Discouraged UsageRecommended Replacement

The output y of the object is a composite matrix with L as its lower triangular portion, D as the diagonal, and L' as its upper triangular portion.

A = gallery('randcorr',5);
ldlObj = dsp.LDLFactor;
y = ldlObj(A)
y = 5×5
 1.0000   -0.3884    0.0296   -0.6152   -0.3903
-0.3884    0.8491   -0.6386   -0.4901    0.3137
 0.0296   -0.6386    0.6529    0.3611    0.5770
-0.6152   -0.4901    0.3611    0.3324    0.5660
-0.3903    0.3137    0.5770    0.5660    0.4403

The function outputs the lower triangular matrix L and the diagonal D separately.

[L,D,P] = ldl(A)
L = 5×5
  1.0000         0         0         0         0
 -0.3884    1.0000         0         0         0
  0.0296   -0.6386    1.0000         0         0
 -0.6152   -0.4901    0.3611    1.0000         0
 -0.3903    0.3137    0.5770    0.5660    1.0000
D = 5×5
  1.0000         0         0         0         0
       0    0.8491         0         0         0
       0         0    0.6529         0         0
       0         0         0    0.3324         0
       0         0         0         0    0.4403
P = 5×5
  1     0     0     0     0
  0     1     0     0     0
  0     0     1     0     0
  0     0     0     1     0
  0     0     0     0     1

See Also