Factor square Hermitian positive definite matrix into triangular components
The Cholesky Factorization block uniquely factors the square Hermitian positive definite input matrix S as
where L is a lower triangular square matrix with positive diagonal elements and L* is the Hermitian (complex conjugate) transpose of L. The block outputs a matrix with lower triangle elements from L and upper triangle elements from L*. The output is not in the same form as the output of the MATLAB® chol function. In order to convert the output of the Cholesky Factorization block to the MATLAB form, use the following equation:
R = triu(LL');
Here, LL' is the output of the Cholesky Factorization block. Due to roundoff error, these equations do not produce a result that is exactly the same as the MATLAB result.
Block Output Composed of L and L*
The block output is valid only when its input has the following characteristics:
Hermitian — The block does not check whether the input is Hermitian; it uses only the diagonal and upper triangle of the input to compute the output.
Real-valued diagonal entries — The block disregards any imaginary component of the input's diagonal entries.
Positive definite — Set the block to notify you when the input is not positive definite as described in Response to Nonpositive Definite Input.
To generate a valid output, the block algorithm requires a positive definite input (see Input Requirements for Valid Output). Set the Non-positive definite input parameter to determine how the block responds to a nonpositive definite input:
Ignore — Proceed with the computation and do not issue an alert. The output is not a valid factorization. A partial factorization will be present in the upper left corner of the output.
Warning — Display a warning message in the MATLAB Command Window, and continue the simulation. The output is not a valid factorization. A partial factorization will be present in the upper left corner of the output.
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 box, it is set to Ignore in the code generated for this block by Simulink® Coder™ code generation software.
Note that L and L* share the same diagonal in the output matrix. Cholesky factorization requires half the computation of Gaussian elimination (LU decomposition), and is always stable.
Response to nonpositive definite matrix inputs: Ignore, Warning, or Error. See Response to Nonpositive Definite Input.
Golub, G. H., and C. F. Van Loan. Matrix Computations. 3rd ed. Baltimore, MD: Johns Hopkins University Press, 1996.
|Port||Supported Data Types|