Thanks for that, Chris.  I also worked out a similar derivation - though I
wasn't able to prove to myself that the equation B = L*M' + M*L' has a
unique solution for M.

This feels similar to the Sylvester Equation, but its not quite the same...


On Mon, Jun 2, 2014 at 10:13 PM, Chris Foster <[email protected]> wrote:

> On Tue, Jun 3, 2014 at 4:43 AM, Thomas Covert <[email protected]>
> wrote:
> > I was hoping to find some neat linear algebra trick that would let me
> > compute a DualNumber cholesky factorization without having to resort to
> > non-LAPACK code, but I haven't found it yet.  That is, I figured that I
> > could compute the cholesky factorization of the real part of the matrix
> and
> > then separately compute a matrix which represented the DualNumber part.
> > However, I've not yet found a math text describing such a beast.
>
> I'm not sure exactly where you'd look this up, but here's a go at
> setting the problem up.
>
> Suppose you're trying to factorise
>
>   (A + e*B) = (L + e*M) * (L + e*M)'
>
> where e is the dual imaginary unit.  That is, (L + e*M) is the desired
> Cholesky
> factor of (A + e*B).  Expanding this out using e*e = 0 leads to
>
>   A = L*L'
>   B = L*M' + M*L'
>
> So you can compute the real part L of the Cholesky decomposition exactly as
> usual.  Given that you now have L, you want the lower triangular matrix M.
> Because L and M are lower triangular that's actually quite easy: matrix
> elements of M can be computed from the top left to bottom right in a
> process
> that basically looks like forward substitution.
>
> You probably want this second step to use LAPACK though, since it's still
> O(N^3)...  Ideally the system of equations
>
>   B = L*M' + M*L'
>
> actually has a name and there's a standard way to solve it.  I don't know
> it
> though and a quick search failed to enlighten me.  Perhaps someone else can
> give us a hint?
>
> ~Chris
>

Reply via email to