#11.1
import matplotlib
matplotlib.use("TKAgg")
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2, 100)
y = (np.sin(x - 2))**2 * np.exp(-x*x)
plt.plot(x, y, 'r-', label = 'f(x)')
plt.title('$f(x) = sin^2(x-2) * e^{-x^2}$')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()
#11.2
import matplotlib
matplotlib.use("TKAgg")
import matplotlib.pyplot as plt
import numpy as np
X = []
for i in range(10):
x = 10*np.random.random()
X.append(np.random.randn(20)+x)
X = np.array(X)
X = X.T
b = np.random.randint(0, 10, 10).reshape(10, 1)
z = np.random.randn(20).reshape(20, 1)
y = np.dot(X, b)+z
b_hat = np.linalg.lstsq(X, y, rcond=None)[0]
x = list(range(1, 11))
true_b = plt.scatter(x, b, c='b', marker='o', label='true coefficient')
estimated_b = plt.scatter(x, b_hat, c='r', marker='x', label='estimated coefficient')
plt.legend()
plt.xlabel('index')
plt.show()
#11.3
import matplotlib
matplotlib.use("TKAgg")
import matplotlib.pyplot as plt
import numpy as np
import scipy.stats
z = np.random.normal(loc = 0., scale = 1., size = 10000)
x = np.linspace(np.min(z), np.max(z), 10000)
kernel = scipy.stats.gaussian_kde(z)
f, sp = plt.subplots()
sp.hist(z, bins = 25, density = True)
sp.plot(x, kernel.pdf(x))
plt.show()