题目
10.1
from scipy.optimize import leastsq import numpy as np def err(x, A, b): return b - A * x def main(): A = np.array([np.random.random()for i in range(20)]) b = np.array([np.random.random()for i in range(20)]) x0 = 0.1 x = leastsq(err, x0, args=(A, b)) print(x[0]) main()
10.2
from scipy.optimize import minimize_scalar import numpy as np from math import * def f(x): return -pow(sin(x - 2),2) * exp(-(x*x)) t = minimize_scalar(f) print(-t.fun)
10.3
from scipy.optimize import minimize_scalar from scipy.spatial.distance import pdist import numpy as np from math import * cities = ['beijing', 'shanghai', 'guangzhou', 'shenzhen'] m = 4 n = 4 l = [] for i in range(n): l.append([]) for j in range(m): if i!=j: l[i].append(np.random.randint(0, 100)) else: l[i].append(0) distance = pdist(l) t = 0 for i in range(n): for j in range(i+1, n): print(('distance from ' + cities[i] + ' to ' + cities[j] + ': ' + str(distance[t]))) t += 1