The linear system in Equation 5 is large. Each rigid element in a 3-D model contributes 6 variables to the length of . Each constraint contributes a number of variable to the length of equal to the number of unconstrained degrees of freedom. So for a 5-link upper-body model, is rank 30, and is length 15.
Fortunately the equation has some special structure. is block diagonal and is therefore easy to compute from it's block diagonal inverse, the system mass matrix . The constraint Jacobian is sparse when the number of constraints is O(n), where n is the dimension of q.
The biconjugate gradient descent method for sparse matrix
systems[18] takes advantage of this special structure to solve for
stably and efficiently. The algorithm works by
iteratively searching for the minimum of the potential field: