Los métodos estándar para determinar el espacio nulo de una matriz son usar una descomposición QR o una SVD. Si la precisión es primordial, se prefiere la SVD; La descomposición QR es más rápida.
Usando la SVD, si , entonces las columnas de correspondientes a pequeños valores singulares (es decir, pequeñas entradas diagonales de ) constituyen la base del espacio nulo. La tolerancia relevante aquí es lo que uno considera un valor singular "pequeño". MATLAB, por ejemplo, toma pequeño para ser , donde está relacionado con la precisión de la máquina (ver aquí en la documentación de MATLAB ).A=UΣVHVΣmax(m,n)⋅εε
Usando la descomposición QR, si , y el rango de es , entonces las últimas columnas de forman el espacio nulo de , asumiendo que la descomposición QR es reveladora de rango. Para determinar , calcule el número de entradas en la diagonal principal de cuya magnitud excede una tolerancia (similar a la utilizada en el enfoque SVD).A r n - r Q A r RAT=QRArn−rQArR
No use la descomposición LU. En aritmética exacta, es un enfoque viable, pero con la aritmética de coma flotante, la acumulación de errores numéricos lo hace inexacto.
Wikipedia cubre estos temas aquí .