Cholesky factorization on symbolic matrix

Hi all,
I want to use Cholesky factorization on some symbolic matrices but I am still working with R2007b, quite an old version.
I met error message when I did it.
Is there any other way out to do this in R2007b?
--
I do have an authorized R2011a but the toolboxes are not included. (I have no idea why my school did not purchase the full version.)
So guess I cannot, for this time being, work with R2011a unless I know how to transfer all the toolboxes from my current version to the latest one.
Could anyone tell me how to do this? (Just copy all the files?)
Thanks in advance.

 Accepted Answer

If you want to do the computation inside of MuPAD, you can use
n:= 4:
A:= matrix([[c.i.j $ i = 1..n] $ j = 1..n]):
linalg::factorCholesky(A,NoCheck)
The option 'NoCheck' means that it is not checked whether A is symmetric and positive definite.

1 Comment

Thanks, Kai. But MuPad is contained in new Matlab version. I did not found it in my "antique" R2007b.

Sign in to comment.

More Answers (1)

Toolboxes cannot be transferred between versions.

5 Comments

Thanks Walter, I realized that. Think I cannot do this in old-version Matlab, Maple does work, though.
I would not rush to expect that MuPad will be able to do this task better than Maple would
I do not recall at the moment which version of Maple was the symbolic engine for 2007b. Current maple versions are able to do Cholesky decomposition of symbolic matrices, and this is not something that I recall seeing a being new in any of the last 5 releases of Maple. It is possible, though, that the basic Symbolic Toolbox did not include the facility; it might have required the Extended Symbolic Toolbox.
In Maple, I would use something like,
with(LinearAlgebra):
A := Matrix(<<c11,c12,c13,c14>|<c12,c22,c23,c24>|<c13, c23, c33, c34>|<c14, c24, c34, c44>,shape=symmetric,attributes=[positive_definite]):
LUDecomposition(A,method=Cholesky)
The result has a lot of conjugate() calls in it;
simplify(%) assuming real;
takes some time but should compact the expression.
uses Maple in MATLAB (MTM)
for i = 1:3,for j =1:3, C(i,j) = sym(['C' num2str(i) num2str(j)]); end; end
maple(['LinearAlgebra[LUDecomposition](Matrix(' char(C) '),method=Cholesky)'])
Thanks Walter. I did exactly what you say in your comment and got what I wanted.
Also to Andrei, I have tried and it works. But the answer is not as "pretty" as that in Maple. What should "C" be? what I input is C = [1 a b c;a 1 d e;b d 1 f;c e f 1].
I would suggest
maple('Chol := C->LinearAlgebra[LUDecomposition](Matrix(C,form=symmetric),method=Cholesky)':);
syms a b c d e f
C = [1 a b c;a 1 d e;b d 1 f;c e f 1];
maple('Chol', C);

Sign in to comment.

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!