本题涉及最小二乘法相关计算,我先使用scipy.linalg.lstsq计算出解x:
再使用numpy.linalg.norm计算出相应2-范数:
import numpy as np
import scipy.linalg
m = int(input("Please input m: "))
n = int(input("Please input n: "))
A = np.random.random(size = (m,n))
b = np.random.random(size = (m,1))
x = scipy.linalg.lstsq(A,b)[0]
print("x=" + str(x))
two_norm = np.linalg.norm(np.dot(A,x)-b,ord=2)
print("2-norm = " + str(two_norm))
import numpy as np
import scipy.optimize
def f(x):
return -1*(np.sin(x-2)**2)*(np.exp(-1*(x**2)))
max = -scipy.optimize.minimize_scalar(f).fun
print (" when x = ", scipy.optimize.minimize_scalar(f).x)
print (" the maximum of f(x) = ", max)
import numpy as np
import scipy.spatial.distance
m = int(input("Please input m: "))
n = int(input("Please input n: "))
X = np.random.random(size = (m,n))
Distance = scipy.spatial.distance.pdist(X)
DistanceTable = scipy.spatial.distance.squareform(Distance)
print(DistanceTable)
2018.06.03