В общем, если вы не можете решить матрицу, она однослойная (необратимая). Я полагаю, что способ, которым JAMA делает это, состоит в том, чтобы попытаться решить матрицу, используя факторизацию LU, и в случае неудачи возвращает «true» для isSingular ().
На самом деле не существует общего способа просто посмотреть на элементы матрицы и определить, является ли она единственной - вам нужно проверить каждый столбец, чтобы убедиться, что он ортогонален другим (т. Е. Пустое пространство для матрицы 0). Факторизация LU довольно быстрая, обычно ... однако бывают случаи, когда она занимает большую часть операции.
Есть ли у вас реальная проблема со скоростью, которую вы пытаетесь преодолеть?