11.1
import numpy as np
import matplotlib.pyplot as plt
import math
x = np.linspace(0, 2, 1000)
y = [math.sin(i-2)**2 * math.exp(-i**2) for i in x]
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('y = $sin^2(x-2){e^{-x^2}}$')
plt.show()
11.2
import numpy as np
import matplotlib.pyplot as plt
import scipy as sp
from scipy.optimize import minimize
def error(b0, X, y):
b0 = np.reshape(b0, (10, 1))
return np.linalg.norm(np.dot(X, b0) - y)
n = 20
m = 10
X = np.random.randint(1, 4, (n, m))
X = np.mat(X)
b = np.random.randint(-2, 2,(1, m))
b_vec = (np.mat(b)).T
z = np.random.randn(1, n)
z_vec = (np.mat(z)).T
y_vec = np.dot(X, b_vec) + z_vec
y = np.array(y_vec)
b0 = np.zeros((10, 1))
Para = minimize(error, b0, args=(X, y))
b_ = Para.x
x1 = np.linspace(0, 9, 10)
fig = pl