Task 1: Find the null space of the given matrix $A$ using SVD.
Task 2: Find the null space of the same matrix $A$ using the QR factorization. Use the linear algebra theorem that tells us that the null space of $A$ is equal to the orthogonal complement of the range of the transpose $A^t$. (How would you extract the orthogonal complement from a full QR factorization?)
Task 3: Check that both answers above span the same space.
import numpy as np
from scipy.linalg import svd, qr
A = np.array([[1, -2, 9, 5, 4,], [1, -1, 6, 5, -3], [-2, 0, -6, 1, -2], [4, 1, 9, 1, -9]])
A