Exercise 11.1:
Plotting a function Plot the function
f(x) = sin2(x − 2)e−x2 over the interval [0, 2]. Add proper axis labels, a title, etc.
代码如下:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2, 1000)
y = np.power((np.sin(x - 2)), 2) * np.exp(-x * x)
plt.plot(x, y)
plt.show()
画图结果:
Exercise 11.2: Data
Create a data matrix X with 20 observations of 10 variables. Generate a vector b with parameters Then generate the response vector y = Xb+z where z is a vector with standard normally distributed variables. Now (by only using y and X), find an estimator for b, by solving ˆb = arg min |Xb − y|2 Plot the true parameters b and estimated parameters ˆb. See Figure 1 for an example plot.
import numpy as np
import matplotlib.pyplot as plt
import math
X = np.random.randint(10, 20, (20, 10))
b = np.random.random(10)
z = np.random.random(20)
y = np.dot(X, b) + z
b1= np.linalg.lstsq(X, y)[0] #最小二乘法生成线性方程
x = list(range(1, 11))
plt.scatter(x, b, c='r', marker='x', label='true coefficients')
plt.scatter(x, b1, c='b', marker='o', label='estimated coefficients')
plt.legend()
plt.show()
结果:
11.3Histogram and density estimation
Generate a vector z of 10000 observations from your favorite exotic distribution. Then make a plot that shows a histogram of z (with 25 bins), along with an estimate for the density, using a Gaussian kernel density estimator (see scipy.stats). See Figure 2 for an example plot.
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
import math
x = np.random.normal(size=1000)
x=sorted(x)
plt.hist(x, bins=25,normed=1)
kernel = stats.gaussian_kde(x)
plt.plot(x, kernel.pdf(x))
plt.show()
结果