5.30作业(scipy练习)

Exercise 1: Least squares

题意

题解

要求出最小二乘解 x 和残差的范数,用 scipy.linalg.lstsq 函数。

from numpy import random
from scipy import linalg

m = 30
n = 20
A = random.randn(m, n)
b = random.randn(m, 1)

x, residual, rank, s = linalg.lstsq(A, b)
print(x)
print(residual)



Exercise 2: Optimization

题意

题解

求一元函数的最大值,用 scipy.optimize.minimize_scalar 函数。该函数返回一个 OptimizeResult 类,x 和 fun 属性分别是一元函数的最小值点和最小值。先把原函数 f 取反,代入 minimize.scalar 函数,再把求得的最小值取反,就得到了 f 的最大值。

from scipy import optimize
from numpy import sin, power, exp

def f(x):
    return -(power(sin(x - 2), 2) * exp( - power(x, 2)))

res = optimize.minimize_scalar(f)
if res.success:
    print(res.x)
    print(-res.fun)



Exercise 3: Pairwise distances

题意

扫描二维码关注公众号,回复: 1447685 查看本文章
题解

题目让求出矩阵 X 中每两个行向量之间的距离,还不让自己写函数。用 scipy.spatial.distance_matrix 可以求解。

from scipy import spatial
from numpy import random

n = 10
m = 2
X = random.randint(1, 100, (n, m))
dst = spatial.distance_matrix(X, X)
print(X)
print(dst)

猜你喜欢

转载自blog.csdn.net/PerfectCherryBlossom/article/details/80555807