## Symbolic matrix calculus in Maple...

Sorry for the uninformative title. I've never used Maple, but I'm willing to buy a student license and learn it. But before spending too much effort and money I need to know if it suits my needs.

Basically what I need to do is:

1) I have a positive definite symmetric matrix of size nxn, where n can range from 2 to inf. I don't know the elements, except the fact that the diagonal has ones everywhere. All I know is that the elements out of the diagonal are in the range [0,1)

2) I have to compute the lower triangular cholesky decomposition of this matrix, lets call it L.

3) I need to subtract from each element of L the mean of the elements in the respective column. Lets call this matrix L*

4) Then I need to evaluate another nxn matrix computed from the elements of L* following a simple pattern.

5) Finally I need to find the eigenvalues of this last matrix.

What I would ideally want is to get a symbolic representation of the n eigenvalues as symbolic functions of the (unknown) elements of the matrix at point 1.

I can drop the assumption of n being unknown, i.e. fix n=3 and get the 3 functions that, after replacing the right values, give me the eigenvalues, then fix n=4 and get 4 functions, etc.

Is this possible to do in maple?

Thank you

## Cholesky Decomposition for a symbolic matrix...

I wrote down a covariance matrix through the following command:

` A := Matrix([[a, b], [b, c]], shape = symmetric, attributes = [positive_definite]);`
`and then I computed the Cholesky decomposition of this matrix using afterwards the command simplify as well`
`B := LUDecomposition(A, method = Cholesky)`
`C:=simplify(%)`
`What I obtained is this matrix`
`Matrix(2, 2, {(1, 1) = sqrt(a), (1, 2) = 0, (2, 1...`

## Cholesky Decomposition...

Ok If R is the Cholesky decomposition of the Covariance matrix then I need:

i) Cov=R*R'
ii) R'=R

I can show that i) indeed holds but ii) does not seem to work. Why?

restart:
with(LinearAlgebra):
Cov := Matrix([[.1, .2], [.2, 1.3]]);
Ap := LUDecomposition(Cov, 'method' = 'Cholesky');

Cov = Ap.Transpose(Ap);
Ap = Transpose(Ap)

 Page 1 of 1
﻿