Difference between revisions of "Decompose"

Line 3: Line 3:
 
[[Category:Doc Status C]] <!-- For Lumina use, do not change -->
 
[[Category:Doc Status C]] <!-- For Lumina use, do not change -->
  
'''Decompose(C,I,J)'''
+
==Decompose(C, I, J)==
  
Returns the Cholesky decomposition (square root) matrix of
+
Returns the Cholesky decomposition (square root) matrix of matrix «C» along dimensions «I» and «J». Matrix «C» must be symmetric
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''.)
and positive-definite. (Positive-definite means that v * C * v > 0,
 
for all vectors v.)
 
  
Cholesky decomposition computes a lower diagonal matrix L
+
Cholesky decomposition computes a lower diagonal matrix ''L'' such that ''L*L' = C'', where ''L''' is the transpose of ''L''.
such that L * L' = C, where L' is the transpose of L.
 
  
= 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:
 +
:Function
 +
::'''IsPosDefinite'''(A: Number[I, J]; I, J: Index)
 +
:Description:
 +
::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>
  
To avoid an error, the following [[User-Defined Functions|UDF]] can be used to test for positive definiteness:
+
== Complex numbers ==
Function IsPosDefinite( A : Number[I,J] ; I,J : Index )
+
When «C» contains [[Complex Numbers|complex numbers]], then the matrix must be [http://en.wikipedia.org/wiki/Hermitian_matrix 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.
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 =
 
 
 
''new in [[Analytica 4.5]]''.
 
When «C» contains complex numbers, then the matrix must be [http://en.wikipedia.org/wiki/Hermitian_matrix 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 =
 
  
 +
== See Also ==
 
* [[SingularValueDecomp]]
 
* [[SingularValueDecomp]]
 
* [[EigenDecomp]]
 
* [[EigenDecomp]]
 +
* [[Transpose]]
 +
* [[Matrix functions]]
 +
* [[Complex Numbers]]

Revision as of 00:56, 22 January 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:

Function
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.