[ODE] Old Cholesky factorization code

Russ Smith russ at q12.org
Sat Oct 12 12:16:01 2002


> In block-matrix
> form (where each entry is a matrix of the form
> J*InvM*Jt), I realize that the A matrix is
> block-symmetric, BUT, I was wondering...  Are the
> diagonal entries of the block A matrix themselves
> actually symmetric

yes:
	A = J*inv(M)*J'
	A' = (J*inv(M)*J')'
	   = (J')' * inv(M)' * J'
	   = J*inv(M)'*J'

each 6x6 block of M contains a diagonal 3x3 matrix (the mass) and a 3x3
transformed inertia tensor I*.

	I*  = R*I*R'
	I*' = R*I'*R'

I (the inertia tensor) is symmetric, so I* is symmetric, so M is
symmetric, so A is symmetric.

> In other words, did the Cholesky decomp ever work
> properly for A?  Or was it just ditched to incorporate
> LCP constrains (contacts with friction)?

cholesky is not used, i use the L*D*L' factorization instead - but this
also needs a symmetric matrix. the LDLT factorization is used on the
sub-matrix of A that does not have LCP constraints, then LCP is used
incrementally on the rest.

russ.

-- 
Russell Smith
http://www.q12.org