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.

 Akzeptierte Antwort

Kai Gehrs
Kai Gehrs am 17 Mai 2011

0 Stimmen

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 Kommentar

Chien-Chia Huang
Chien-Chia Huang am 17 Mai 2011
Thanks, Kai. But MuPad is contained in new Matlab version. I did not found it in my "antique" R2007b.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 16 Mai 2011

1 Stimme

Toolboxes cannot be transferred between versions.

5 Kommentare

Chien-Chia Huang
Chien-Chia Huang am 16 Mai 2011
Thanks Walter, I realized that. Think I cannot do this in old-version Matlab, Maple does work, though.
Walter Roberson
Walter Roberson am 16 Mai 2011
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.
Andrei Bobrov
Andrei Bobrov am 17 Mai 2011
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)'])
Chien-Chia Huang
Chien-Chia Huang am 17 Mai 2011
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].
Walter Roberson
Walter Roberson am 17 Mai 2011
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);

Melden Sie sich an, um zu kommentieren.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by