Difference between revisions of "Decompose"

 
Line 12: Line 12:
 
== Testing for positive definiteness ==
 
== Testing for positive definiteness ==
 
To avoid an error, the following [[User-Defined Functions|user-defined function]] can be used to test for positive definiteness:
 
To avoid an error, the following [[User-Defined Functions|user-defined function]] can be used to test for positive definiteness:
:Declaration:  
+
 
::'''IsPosDefinite'''(A: Number[I, J]; I, J: Index)  
+
Declaration:  
:Description:  
+
:'''IsPosDefinite'''(A: Number[I, J]; I, J: Index)  
::Returns true (1) if «A» is positive-definite, 0 (false) otherwise.
+
Description:  
:Definition:  
+
:Returns true (1) if «A» is positive-definite, 0 (false) otherwise.
 +
Definition:  
 
::<code>Min(EigenDecomp(A + Transpose(A, I, J), I, J)[.Item = 'value'], J) > 0</code>
 
::<code>Min(EigenDecomp(A + Transpose(A, I, J), I, J)[.Item = 'value'], J) > 0</code>
  

Latest revision as of 23:03, 8 March 2016


Decompose(C, I, J)

Returns the Cholesky decomposition (square root) matrix of matrix «C» along dimensions «I» and «J». Matrix «C» must be symmetric and positive-definite. (Positive-definite means that v*C*v > 0, for all vectors v.)

Cholesky decomposition computes a lower diagonal matrix L such that L*L' = C, where L' is the transpose of L.

Testing for positive definiteness

To avoid an error, the following user-defined function can be used to test for positive definiteness:

Declaration:

IsPosDefinite(A: Number[I, J]; I, J: Index)

Description:

Returns true (1) if «A» is positive-definite, 0 (false) otherwise.

Definition:

Min(EigenDecomp(A + Transpose(A, I, J), I, J)[.Item = 'value'], J) > 0

Complex numbers

When «C» contains complex numbers, then the matrix must be Hermitian and positive definite. The Hermitian condition is the same as the symmetric condition for real-valued matrices, but requires the transpose to be the complex conjugate of the matrix.

See Also

Comments


You are not allowed to post comments.