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.

 Respuesta aceptada

Kai Gehrs
Kai Gehrs el 17 de Mayo de 2011
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 comentario

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

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 16 de Mayo de 2011

1 voto

Toolboxes cannot be transferred between versions.

5 comentarios

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

Iniciar sesión para comentar.

Productos

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by