Exercise 11.1: Plotting a function
题目描述: 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 math
import matplotlib.pyplot as plt
from numpy import *
x = linspace(0, 2)
y = (sin(x - 2) ** 2) * exp((-x) ** 2)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.title('$f(x) = \sin^2(x-2)e^{-x^2}$')
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 = argmin b ||Xb−y||2
Plot the true parameters b and estimated parameters ˆ b. See Figure 1 for an example plot.
代码:
from scipy.optimize import nnls
import numpy as np
import matplotlib.pyplot as plt
X = np.random.rand(20, 10)
b = np.random.rand(10)*5
z = np.random.standard_normal(20)
y = np.dot(X, b) + z
b_, rnorm = nnls(X, y)
plt.scatter(range(0, 10), b, s = 10, c = 'r', marker = 'x', label = 'True coefficients')
plt.legend(loc = 'upper right')
plt.scatter(range(0, 10), b_, s = 10, c = 'b', label = 'Estimated coefficients')
plt.legend(loc = 'upper right')
plt.xticks(range(0, 10))
plt.xlabel('index')
plt.ylabel('value')
plt.show()
运行结果:
Exercise 11.3: Histogram 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 scipy.stats
import numpy as np
import matplotlib.pyplot as plt
z = scipy.stats.poisson(50).rvs(size = 10000)
plt.hist(z, bins = 25, normed = 1, edgecolor = 'black')
kde_x = np.linspace(20, 80)
kde_y = scipy.stats.gaussian_kde(z).pdf(kde_x)
plt.plot(kde_x, kde_y)
plt.show()
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/f332b3201a87c890849694f0507699f4.png)