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.

 採用された回答

Kai Gehrs
Kai Gehrs 2011 年 5 月 17 日

0 投票

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 件のコメント

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

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2011 年 5 月 16 日

1 投票

Toolboxes cannot be transferred between versions.

5 件のコメント

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

サインインしてコメントする。

製品

Community Treasure Hunt

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

Start Hunting!

Translated by