Usted puede utilizar un eigen-descomposición para encontrar las combinaciones lineales de las columnas que se desvanecen, a continuación, extraiga suficiente columnas que participan en estas combinaciones lineales.
Aquí está una matriz con una columna de fuga combinación lineal:
> M <- matrix(c(0, 0, 0, 1, 0, 1, 0, 1, 1, 1, -1, 0), nrow=4, byrow=TRUE)
> M
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 1 0 1
[3,] 0 1 1
[4,] 1 -1 0
Si una combinación lineal de las columnas desaparecen, después de que el mismo es cierto si me cortó la parte inferior de la matriz para hacerla cuadrada:
> sM <- M[1:3, ]
> sM
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 1 0 1
[3,] 0 1 1
Ahora calcular los autovalores y autovectores:
> eigen(sM)
$values
[1] 1.618034 -0.618034 0.000000
$vectors
[,1] [,2] [,3]
[1,] 0.0000000 0.0000000 0.5773503
[2,] 0.5257311 0.8506508 0.5773503
[3,] 0.8506508 -0.5257311 -0.5773503
Así que hay un autovalor cero, lo que nos espera, y que corresponde a la columna de la combinación lineal:
$$ .57 C_1 + .57 C_2 - .57 C_3 = 0 $$
Así que la eliminación de una de estas columnas, el resultado será una columna completa en el rango de la matriz.