Calcular el espacio nulo de una matriz

Estoy tratando de resolver un conjunto de ecuaciones de la forma Ax = 0. Se conoce una matriz de 6x6 y he escrito el siguiente código usando SVD para obtener el vector x que funciona en cierta medida. La respuesta es aproximadamente correcta pero no lo suficientemente buena como para ser útil para mí, ¿cómo puedo mejorar la precisión del cálculo? Bajar eps por debajo de 1.e-4 hace que la función falle.

from numpy.linalg import *
from numpy import *

A = matrix([[0.624010149127497 ,0.020915658603923 ,0.838082638087629 ,62.0778180312547 ,-0.336 ,0],
[0.669649399820597 ,0.344105317421833 ,0.0543868015800246 ,49.0194290212841 ,-0.267 ,0],
[0.473153758252885 ,0.366893577716959 ,0.924972565581684 ,186.071352614705 ,-1 ,0],
[0.0759305208803158 ,0.356365401030535 ,0.126682113674883 ,175.292109352674 ,0 ,-5.201],
[0.91160934274653 ,0.32447818779582 ,0.741382053883291 ,0.11536775372698 ,0 ,-0.034],
[0.480860406786873 ,0.903499596111067 ,0.542581424762866 ,32.782593418975 ,0 ,-1]])

def null(A, eps=1e-3):
  u,s,vh = svd(A,full_matrices=1,compute_uv=1)
  null_space = compress(s <= eps, vh, axis=0)
  return null_space.T

NS = null(A)
print "Null space equals ",NS,"\n"
print dot(A,NS)

Respuestas a la pregunta(2)

Su respuesta a la pregunta