import numpy as np A = np.array([[1, 2, 3, 4], [2, 3, 4, 1], [3, 4, 1, 2], [4, 1, 2, 3]]) B = np.array([[5, 4, 3, 2], [4, 3, 2, 5], [3, 2, 5, 4], [2, 5, 4, 3]]) b = np.array([[1], [2], [3], [4]]) #Task A: print("Ab:\n", A @ b) print("Bb:\n", B @ b) print("A^T:\n", A.T) print("B^T:\n", B.T) print("A^TA:\n", A.T @ A) print("B^TB:\n", B.T @ B)