# Scipy练习

xiaoxiao2021-02-28  32

### Exercise 10.1: Least squares

##### 题目描述
Generate matrix A belongs to Rm*n with m > n. Also generate some vector b belongs to Rm. Now x = arg min ||Ax -b||2 Print the norm of the residual

##### 解题代码
import numpy as np from scipy.optimize import leastsq def err(x, A, b): return A * x - b x = 1 m = 100 A = np.array([np.random.random() * 10 for i in range(m)]) b = np.array([np.random.random() * 10 for i in range(m)]) result = leastsq(err, x, args = (A, b)) print(result)

### Exercise 10.2: Optimization

##### 题目描述
Find the maximum of the function f(x) = sin2(x - 2)e^-x2

##### 解题代码
import numpy as np from math import sin, exp from scipy.optimize import minimize_scalar def f(x): return ((-1) * (sin(x - 2))**2) * exp(-1 * (x**2)) result = minimize_scalar(f) print((-1) * result.fun)

### Exercise 10.3: Pairwise distances

##### 题目描述
Let X be a matrix with n rows and m columns. How can you compute the pairwise distances between every 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 numpy as np import scipy.spatial.distance as dist n, m = 6, 3 X = np.random.randint(5, 20, size = (n, m)) D = dist.cdist(X, X) print(D)