-------- svd : Singular value decomposition of a matrix orth : Matrix range Examples -------- 1-D null space: >>> import numpy as np >>> from scipy.linalg import null_space >>> A = np.array([[1, 1], [1, 1]]) >>> ns = null_space(A) >>> ns * np.sign(ns[0,0]) # Remove the sign ambiguity of the vector array([[ 0.70710678], [-0.70710678]]) 2-D null space: >>> from numpy.random import default_rng >>> rng = default_rng() >>> B = rng.random((3, 5)) >>> Z = null_space(B) >>> Z.shape (5, 2) >>> np.allclose(B.dot(Z), 0) True The basis vectors are orthonormal (up to rounding error): >>> Z.T.dot(Z) array([[ 1.00000000e+00, 6.92087741e-17], [ 6.92087741e-17, 1.00000000e+00]]) TrG