Exercise 10.1:
#最小二乘法 import numpy as np import scipy.linalg as sl m = int(input("Plz enter m: ")) n = int(input("Plz enter n: ")) if n>m: temp = m m = n n = m A = np.random.rand(m, n) b = np.random.rand(m, 1) A = np.mat(A) b = np.mat(b) x = sl.inv(A.T * A) * A.T * b print(x)
Exercise 10.2: Optimization
Find the maximum of the function
f(x) = sin2(x−2)e−x2
import matplotlib.pyplot as plt import numpy as np import scipy.optimize as so import math ''' 根据图像大约获得最大值的区间 x = np.linspace(-10, 10, 50) y = (np.sin(x-2)**2) * (np.e**(-x**2)) plt.plot(x, y) plt.show() ''' def func(x): return (-(math.sin(x-2)**2)*math.exp(-(x ** 2))) a = so.fminbound(func, -10, 10) print(-func(a))
Exercise 10.3:
Pairwise distances Let X be a matrix with nrows and m columns. How can you compute the pairwise distances between everytwo rows?
As an example application, consider ncities, and we are given their coordinates in two columns. Now we want a nicetable that tells us for each two cities, how far they are apart.
Again, make sure you make use of Scipy’sfunctionality instead of writing your own routine.
扫描二维码关注公众号,回复:
1574958 查看本文章
import numpy as np import scipy.spatial.distance as ssd import math m = int(input("Plz enter m: ")) n = int(input("Plz enter n: ")) X = np.random.rand(m, n) Y = ssd.pdist(X) z = ssd.squareform(Y) print(z)2018/6/5