Exercise 10.1: Least squares
import numpy as np
from scipy import linalg
A = np.random.randint(0,100,(20, 10))
A = np.mat(A)
b = np.random.randint(0,100,size=20)
x_hat = np.linalg.lstsq(A, b)[0]
res = np.dot(A, x_hat) - b
norm = np.linalg.norm(res)
print(norm)
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=0
max1 = - minimize(func, x).fun
print(max1)
Exercise 10.3: Pairwise distances
import numpy as np
from scipy import linalg
import math
A = np.random.randint(1, 10, (4, 2))
distance = np.zeros((4, 4))
for i in range(0, 4):
for j in range(0, 4):
dis= A[i] - A[j]
dis1 = math.sqrt(dis[0] ** 2 + dis[1] ** 2)
distance[i, j] = dis1
print(distance)