[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