Exercise 10.1: Least squares
Generate matrix A 2 Rm×n with m > n. Also generate some vector b 2 Rm.Now find
Print the norm of the residual.
代码:
import numpy as np
import scipy.linalg as sl
A = np.random.randint(0,10,(10,8))
b = np.random.randint(-10,10,(10,1))
x_ = sl.lstsq(A,b)[0]
print(x_)
res = sl.norm(np.dot(A,x_)-b,ord = 2)
print(res)
Exercise 10.2: Optimization
Find the maximum of the function
代码:
import numpy as np
import scipy.optimize as opt
import math
def func(x):
return -math.pow(np.sin(x-2),2)*np.e**(-x * x)
res = opt.minimize_scalar(func,bounds=(-math.pi,math.pi),method='bounded')
print(res.x)
print(-func(res.x))
运行结果:
0.21624229119905022
0.9116854118454336
Exercise 10.3: Pairwise distances
Let X be a matrix with n rows and m columns. How can you compute the pairwise distances betweenevery two rows?
As an example application, consider n cities, and we are given their coordinates in two columns. Now
we want a nice table that tells us for each two cities, how far they are apart.
Again, make sure you make use of Scipy’s functionality instead of writing your own routine.
代码:
import scipy.spatial.distance as ssd
import numpy as np
X = np.random.randint(0,100,(10,5))
print(X)
res = ssd.pdist(X)
print(res)