Exercise 10.1: Least squares
import numpy as np
from scipy.optimize import leastsq
A = np.random.randint(10, 20, (20, 10))
A = np.mat(A)
b = np.random.randint(10, 20, size=20)
residuals = np.linalg.lstsq(A, b.reshape(20, 1), rcond=None)[1]
norm_residuals = np.linalg.norm(residuals)
print(norm_residuals)
Exercise 10.2: Optimization
from scipy.optimize import minimize
import numpy as np
func = lambda x: - (np.sin(x - 2)) ** 2 * np.exp(- x ** 2)
x = np.array(0)
max_value = - minimize(func, x).fun
print(max_value)
Exercise 10.3: Pairwise distances
from scipy.spatial.distance import pdist
import numpy as np
X = np.random.randint(0, 20, (10, 10))
distance = pdist(X, 'euclidean')
print(distance)