'Calculates the inverse using LU decomposition.
See Also
inv
inverse_GE
inverse_ADJ'

def inverse_LU(self, iszerofunc=_iszero):

    if (not self.is_square):
        raise NonSquareMatrixError()
    ok = self.rref(simplify=True)[0]
    if any((iszerofunc(ok[(j, j)]) for j in range(ok.rows))):
        raise ValueError('Matrix    det    ==    0;    not    invertible.')
    return self.LUsolve(self.eye(self.rows), iszerofunc=_iszero)
