def nullspace(A, eps=1e-15):
u, s, vh = sp.linalg.svd(A,full_matrices=1,compute_uv=1)
# Pad so that we get the nullspace of a wide matrix.
N = A.shape[1]
K = s.shape[0]
if K < N:
s[K+1:N] = 0
s2 = np.zeros((N))
s2[0:K] = s
s = s2
null_mask = (s <= eps)
null_space = sp.compress(null_mask, vh, axis=0)
return sp.transpose(null_space)
# return smallest singular vector of A (or the nullspace if A is 2x3)
评论列表
文章目录