последняя матрица имеет ступенчатый вид и содержит миноры второго порядка, не равные нулю, например
Зачем опять про миноры, если вы приводили к ступенчатому виду? Миноры можно было бы брать и изначально, не делая никаких преобразований.
Еще раз: Ранг матрицы равен количеству ненулевых строк после приведения матрицы к ступенчатому виду. О минорах речи нет.
Т.е. либо приводите к ступенчатому виду и считайте количество ненулевых строк, либо находите ранг методом окаймляющих миноров. Не надо делать солянку.