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

解题思路
构造函数 A*x - b = Y。生成正太分布随机数作为参数点。运用Python 的 leastsq 函数实现最小二乘。
解题代码
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[0])

Exercise 10.2: Optimization


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

解题思路
构造函数 f(x) = sin2(x - 2)e^-x2 。利用 Python 的 minimize_scalar 函数解方程 。

解题代码
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.

解题思路
运用Python 的 dist.cdist 函数

解题代码
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)

转载请注明原文地址: https://www.6miu.com/read-1950159.html

最新回复(0)