最小二乘法求x,并计算残差(用 scipy.optimize 中的 leastsq 函数)。
代码:
import numpy as np
import scipy.linalg as sl
m = 5
n = 3
A = np.matrix(np.random.random((m, n)))
print('A = ')
print(A)
b = np.matrix(np.random.random((m, 1)))
print('b = ')
print(b)
x, res, rnk, s = sl.lstsq(A, b)
print('x =', x)
print('The norm of the residual: ')
print(sl.norm(A * x - b))
结果:
用 scipy.optimize 里的 minimize_scalar() 函数做单变量标量函数的极小化(最大值)。
代码:
import numpy as np
import scipy.optimize as opt
def f(x):
return ((-1) * (np.sin(x - 2) ** 2)) * np.exp(-(x ** 2))
res = opt.minimize_scalar(f)
print((-1) * res.fun)
结果:
求点对之间的距离,用 scipy.spatial.distance 中的 cdist() 函数。
代码:
import numpy as np
import scipy.spatial.distance as dist
m = 2
n = int(input('Please input n: '))
X = np.random.random((n, m))
print('X: ')
print(X)
D = dist.cdist(X, X)
print('distances: ')
print(D)
结果: