Re: Cholesky Decomposition
- To: mathgroup at smc.vnet.net
- Subject: [mg104581] Re: [mg104516] Cholesky Decomposition
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Wed, 4 Nov 2009 01:36:46 -0500 (EST)
- References: <200911030751.CAA01026@smc.vnet.net>
- Reply-to: drmajorbob at yahoo.com
a = ({
{1, 1, 1, 1},
{1, 5, 5, 5},
{1, 5, 14, 14},
{1, 5, 14, 15}
});
{lu, p, c} = LUDecomposition@a
{{{1, 1, 1, 1}, {1, 4, 4, 4}, {1, 1, 9, 9}, {1, 1, 1, 1}}, {1, 2, 3,
4}, 1}
{l, u} = Through[{IdentityMatrix@Length@# +
LowerTriangularize[#, -1] &, UpperTriangularize}@lu]
{{{1, 0, 0, 0}, {1, 1, 0, 0}, {1, 1, 1, 0}, {1, 1, 1, 1}}, {{1, 1, 1,
1}, {0, 4, 4, 4}, {0, 0, 9, 9}, {0, 0, 0, 1}}}
l.u == a
True
Bobby
On Tue, 03 Nov 2009 01:51:39 -0600, Lars Schouw <schouwla at yahoo.com> wrote:
> How do I get out the lower triangular matrix after doing a Choleseky
> decomposition?
>
> I tried a LU decomposition but not get back what I expect.
>
> For example the symetrix matrix A
> 1 1 1 1
> 1 5 5 5
> 1 5 14 14
> 1 5 14 15
>
> is equal to the product of the tringular matrix L and its transposed
> L^T
> 1 1 1 1 1 0 0 0 1 1 1 1
> 1 5 5 5 = 1 2 0 0 0 2 2 2
> 1 5 14 14 1 2 3 0 0 0 3 3
> 1 5 14 15 1 2 3 1 0 0 0 1
>
> With L
> 1 0 0 0
> 1 2 0 0
> 1 2 3 0
> 1 2 3 1
>
> But in Mathematica I do this:
> A = {{1, 1, 1, 1}, {1, 5, 5, 5}, {1, 5, 14, 14}, {1, 5, 14, 15}}
> {lu, p, c} = LUDecomposition[A]
> l = lu SparseArray[{i_, j_} /; j < i -> 1, {4, 4}] + IdentityMatrix[4]
>
> and get
> {{1, 0, 0, 0}, {1, 1, 0, 0}, {1, 1, 1, 0}, {1, 1, 1, 1}}
>
> Any idea what I am doing wrong?
>
> Lars
>
>
--
DrMajorBob at yahoo.com
- References:
- Cholesky Decomposition
- From: Lars Schouw <schouwla@yahoo.com>
- Cholesky Decomposition